Mercurial:获得分支的精确副本

时间:2017-12-20 14:13:13

标签: mercurial

我在一个项目中有自己的分支,其中有2个开发分支(让我们称之为“新的”和“旧的”。我与“新的”合并,然后错误地我合并了“旧的“现在我的分支一团糟。

在没有创建新分支的情况下,有没有办法让我的分支看起来像“新的分支”?我不关心失去我的变化,只有几行,我可以再做一次。

1 个答案:

答案 0 :(得分:1)

而不是消灭所有内容,为什么不彻底消灭一个糟糕的合并?

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/StripExtensionthis answerMercurial — revert back to old version and continue from there