Version control 如何在mercurial中中止合并?

Version control 如何在mercurial中中止合并?,version-control,mercurial,merge,dvcs,undo,Version Control,Mercurial,Merge,Dvcs,Undo,我搞砸了一次合并。我想恢复,然后再试一次。 有没有办法在提交合并之前将其还原 hg revert不做我想做的事情,它只还原文件的文本。Mercurial中止了我的第二次合并尝试,并抱怨原始合并尚未提交 有没有一种方法可以在执行hg merge命令后但在提交之前撤消合并?hg update-C在执行hg merge命令后但在提交hg commit之前,您的工作副本有两个父项:第一个父项是您在合并之前更新到的变更集,第二个父项是您正在合并的变更集。只要您的工作副本有两个父副本,Mercurial就不

我搞砸了一次合并。我想恢复,然后再试一次。
有没有办法在提交合并之前将其还原

hg revert
不做我想做的事情,它只还原文件的文本。Mercurial中止了我的第二次合并尝试,并抱怨原始合并尚未提交


有没有一种方法可以在执行
hg merge
命令后但在提交之前撤消合并?

hg update-C
在执行
hg merge
命令后但在提交
hg commit
之前,您的工作副本有两个父项:第一个父项是您在合并之前更新到的变更集,第二个父项是您正在合并的变更集。只要您的工作副本有两个父副本,Mercurial就不会让您再次执行
hg merge

关于如何继续,您有两个选项:

  • 如果要中止合并并返回开始位置,请执行以下操作

    hg update -C .
    
    这将更新工作副本以匹配第一个父级:
    始终表示工作副本的第一个父级

  • 如果要重新合并某些文件,请执行以下操作

    hg resolve fileA fileB
    
    这将重新启动合并工具,就像您执行
    hgmerge
    时一样。如果您在
    hg merge
    时发现合并工具配置不正确,那么resolve命令很好:修复配置并运行
    hg resolve--all
    。您可以根据需要多次运行
    hg resolve
    ,直到您对合并感到满意为止


  • 简单、高效,我认为这是最好的方式D@JonL. - 是的,
    --clean
    -C
    的同义词。我不确定哪个变更集
    将引用,但它将始终是两个合并的变更集之一。@Omnifarious,cleaning
    应在启动合并之前清除到您所处的任何修订版。因此,如果您在r42,尝试与r43合并,失败,清理,您将回到原始的r42。
    hg update--clean
    工作,因为
    似乎是隐含的默认值-但是。@JoelPurra:
    在合并上下文中的含义相当模糊。可能重复