4

我不小心将一个分支合并到一个带有应用补丁的工作区中。

我该如何收拾这个烂摊子?我是否必须清理合并(hg up -C)或者有什么方法可以保存我的合并?

4

1 回答 1

2

Mercurial 1.9.1,TortoiseHg 2.1.2

我在一个新的 repo 上用这些命令重现了这种情况的基础:

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 不支持它。

于 2011-08-16T15:01:27.817 回答