假设我有这个:
hg clone public_repo my_repo
touch a b c d
hg add .
hg commit -m a a
hg commit -m b b
hg commit -m c c
hg commit -m d d
hg push
# let's say revX is the revision that added a
hg strip revX
Run Code Online (Sandbox Code Playgroud)
在我的存储库的历史记录中,提交已经消失.但是,如果我尝试在条带之后进行推动,它会告诉我no changes found.这条带可以应用于公共仓库吗?
编辑:问题只是假设:).我不是在这种情况下,我只是觉得找出它如何工作会很有趣.
让我假装你问一个稍微不同的问题:我已经删除了部分存储库历史记录,如何将此更改传播到其他开发人员的存储库?
Mercurial无法以与传播添加更改集相同的方式传播剥离.所以你必须想出自己的方式.
例如,Bitbucket有一个更新列表(在repo摘要页面上,如果我的记忆能很好的话).如果你做一个条带,Bitbucket会显示如下:
Changeset 12345abcdef已从存储库中删除,请在
hg strip 12345abcdef本地运行.
当我们不得不在我们的商店中传播剥离旧分支的一部分时,这就是我们所做的:
strip.bat就default包含我们会在服务器上运行,即命令回购的分支hg strip 1234567890.strip.bat.如果我们需要再次剥离某些东西,我们只需hg strip在批处理文件中添加另一个.
PS是的最好不要剥离,例如使用backout来提交逆变换集.有时候,这是不是一种选择:如果你误合并分支a到分支b当你想要合并b到a,你困.即使您退出合并变更集feature,合并的变更集a也已标记为已合并,您将很难再进行这些分支的合并.
| 归档时间: |
|
| 查看次数: |
5861 次 |
| 最近记录: |