簡體   English   中英

相鄰線上的Mercurial合並沖突

[英]Mercurial merge conflict on adjacent lines

我發現以下案例。

$ hg init
$ echo '
> line 1
> line 2
> ' > file.txt
$ hg add file.txt
$ hg commit -m 'added'
$ echo '
> line 11
> line 2
> ' > file.txt
$ hg commit -m 'changed line 1'
$ hg update 0
$ echo '
> line 1
> line 21
> ' > file.txt
$ hg commit -m 'changed line 2'
$ hg merge 1

結果:

合並file.txt失敗了!

hg diff file.txt

diff -r bc62305d407b file.txt
--- a/file.txt  Fri Jun 17 22:53:22 2011 +0300
+++ b/file.txt  Fri Jun 17 22:53:46 2011 +0300
@@ -1,4 +1,9 @@

+<<<<<<< local
line 1
line 21
+=======
+line 11
+line 2
+>>>>>>> other

如果我們嘗試上面的場景,但有3行並且更改在1和2行,則合並將成功。 那么,我的問題為什么會這樣呢? 這是合並算法或其他問題嗎?

Mercurial無法自動合並,因為人類必須解決沖突。 Mercurial應該如何知道合並版本是否應該包含

line 1
line 21

要么

line 11
line 2

Mercurial並未將合並的一方視為可以優先考慮的權威。 file.txt中的標記是Mercurial為您提供需要的提示。

但是,您可以通過配置要在沖突中使用的交互式合並工具來避免此類文件內標記。 另外看看這個相關的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM