2009-04-28 110 views
33

我有一个合并冲突,使用水银1.0.2:如何解决Mercurial中的合并冲突(v1.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 

我无法弄清楚如何解决这个问题。谷歌搜索结果中指导使用方法:

hg resolve 

但由于某种原因我的水银(V1.0.2)不具有resolve命令:

hg: unknown command 'resolve' 

我怎样才能解决这个矛盾呢?

+0

我认为你必须标记一个不同的答案作为正确的一个.. – Lipis 2011-12-06 19:57:39

回答

13

有效期为汞< V1.1仅

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

只需手工修复文件并提交。

+0

所以它看起来像Mercurial移动我的本地副本test.h.orig和test.h现在从另一头...有没有防止创建.orig文件的方法,以防止意外添加? – lajos 2009-04-28 06:52:48

+0

我不确定这是可能的,但可以将* .orig添加到.hgignore文件中。 – avakar 2009-04-28 07:42:34

10

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

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

75

要对Hg 1.1+评论强调答案:

对于汞柱1.1+解决手工文件,然后做

hg resolve -m test.h 

将文件标记为已合并。