Mercurial:获得分支的精确副本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mercurial:获得分支的精确副本相关的知识,希望对你有一定的参考价值。
我有一个项目,我有自己的分支,有2个开发分支(让我们称之为“新的”和“旧的”。我与“新的”合并,然后错误地我与“旧的”合并)现在我的分支一团糟。
有没有办法让我的分支看起来像“新的”而不创建新的分支?我不关心失去我的变化,它只有几行,我可以再做一次。
而不是消灭一切,为什么不彻底消灭一个坏合并?
Mercurial允许您删除修订,前提是您还删除了作为该修订的后代的所有提交。这是一个扩展,但它与所有现代版本的Mercurial捆绑在一起(自2.8起),因此您只需要通过将strip =
添加到配置的[extensions]
部分来启用它。
合并(然后提交合并)会创建修订。你说(我认为)你首先运行hg merge <correct thing>
并承诺,然后运行hg merge <incorrect thing>
并承诺。
在这种情况下,最新版本是您想要删除的错误版本。这将删除从合并中下降的任何修订,但如果你做的最后一件事是hg merge <incorrect thing> && hg commit
,那么无论如何都没有这样的修改。
因此,找出错误的修订号是什么 - 运行hg log
来查看最后几个修订版,例如 - 然后运行hg strip -r <wrongrev>
。这将删除该修订版(及其所有后代)。
另见https://www.mercurial-scm.org/wiki/StripExtension和this answer到Mercurial — revert back to old version and continue from there。
以上是关于Mercurial:获得分支的精确副本的主要内容,如果未能解决你的问题,请参考以下文章