如何在应用的MQ补丁上解开/撤消合并?

时间:2011-08-16 12:16:09

标签: mercurial branching-and-merging mercurial-queue

我意外地将分支合并到带有应用补丁的工作区中。

如何清理这个烂摊子?我是否必须清除合并(hg up -C)或者有哪些方法可以保存合并?

1 个答案:

答案 0 :(得分:2)

Mercurial 1.9.1,TortoiseHg 2.1.2

我用新命令重现了这些命令的基础:

echo first > file.txt
hg add
hg ci -m first
hg branch test
echo test1 >> file.txt
hg ci -m test1
hg up 0
echo patch >> file.txt
hg qnew -f patch.diff

然后我执行了hg merge test并解决了冲突,尝试了一些不同的事情:

  • 由于补丁的参与,提交被拒绝:

    abort: cannot commit over an applied mq patch
    
  • 我无法搁置TortoiseHg的合并。

  • 我无法qnew

    abort: cannot manage merge changesets
    

我发现我唯一可以保持合并的方法是完成补丁并提交合并变更集。对于赠品,我认为保留补丁并保持合并是相互排斥的。

我知道pbranch允许与补丁合并,并且可能有一些方法可以将MQ补丁导入其中。但我不认为它在TortoiseHg中得到支持。