如何解决Mercurial(v1.0.2)中的合并冲突?

时间:2009-04-28 06:42:22

标签: mercurial merge dvcs conflict

我使用Mercurial 1.0.2进行合并冲突:

merging test.h
warning: conflicts during merge.
merging test.h failed!
6 files updated, 0 files merged, 0 files removed, 1 files unresolved
There are unresolved merges, you can redo the full merge using:
  hg update -C 19
  hg merge 18

我无法弄清楚如何解决这个问题。 Google搜索结果指示使用:

hg resolve

但由于某种原因,我的Mercurial(v1.0.2)没有解析命令:

hg: unknown command 'resolve'

如何解决此冲突?

3 个答案:

答案 0 :(得分:79)

要在Hg 1.1 +的评论中突出显示答案:

对于 Hg 1.1 + 手动修复文件,然后执行

hg resolve -m test.h

将文件标记为已合并。

答案 1 :(得分:14)

适用于hg<仅限v1.1

无需调用任何hg命令。与svn不同,Mercurial不会跟踪冲突的文件。如果您致电hg status,您会看到该文件只是标记为已修改。

手动修复文件并提交。

答案 2 :(得分:10)

跟踪冲突是在Mercurial 1.1中引入的,这是您正在使用的较新版本(您应该真正升级,Mercurial 1.1。已于2008年12月发布)。 在该版本中,您获得了resolve命令,该命令与svn resolve的工作方式类似。

我记得,除非您配置了merge tool,否则当发生冲突时,Mercurial会在文件中保留合并标记(<<<<>>>>行)。这也适用于较新的版本 - 我没有配置合并工具,并在发生冲突时获取合并标记。然后,我可以手动修复该文件,并使用hg resolve将其标记为已解决。