2009-04-28 36 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 

將文件標記爲已合併。