如何中止合并?


85

我搞砸了合并。我想还原然后重试。
有没有办法在提交合并之前还原它?

hg revert不执行我想要的操作,它仅还原文件的文本。Mercurial中止了我的第二次合并尝试,并抱怨仍未提交原始合并。

有没有办法在hg merge命令之后但在提交之前撤消合并?


Answers:


106

hg update -C <one of the two merge changesets>


简单,高效,我认为是最好的方法!:D
Eric-Karl

@JonL。-是,--clean是的同义词-C。我不确定.将引用哪个变更集,但它始终是两个合并的变更集之一。
2012年

3
@无所不能,.在启动合并之前,清理应该清理到您的任何版本。因此,如果您在r42处,尝试与r43合并,但失败,被清理,您将回到原始的r42上。
乔恩·L。

2
hg update --clean有效,.似乎是隐式默认值-尽管没有明确记录
乔尔·普拉

@JoelPurra:.在合并的上下文中的含义相当模糊。
2012年

39

完成操作之后hg merge,但之前hg commit,您的工作副本有两个父级:第一个父级是您在合并之前更新到的变更集,第二个父级是您要与之合并的变更集。hg merge只要您的工作副本有两个父母,Mercurial就不会再允许您这样做。

您有两种选择方法:

  1. 如果要中止合并并返回到开始的位置,请执行

    hg update -C .
    

    这将更新工作副本以匹配第一个父副本:.始终表示工作副本的第一个父副本。

  2. 如果要重新合并一些文件,请执行

    hg resolve fileA fileB
    

    就像您一样,这将重新启动合并工具hg merge。如果您发现hg merge合并工具配置不正确,则resolve命令会很好:修复配置并运行hg resolve --all。您可以运行任意hg resolve多次,直到对合并满意为止。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.