5
我讀了一篇關於三路合併(diff3)的文章。它舉例說明如何檢測衝突。的例子是:git上的奇怪衝突
A=[1,4,5,2,3,6]
O=[1,2,3,4,5,6] <<< Origin
B=[1,2,4,5,3,6]
在第一次計算OA之間和OB後的差異:
和
O=[1,2,3,4,5, ,6]
B=[1,2, ,4,5,3,6]
它使diff3 parse
後:
A=[1,4,5,2, 3 ,6] O=[1, ,2, 3,4,5 ,6] <<< Origin B=[1, ,2, 4,5,3 ,6]
和之後檢測到衝突:
1
4
5
2
<<<<<<<<<A
3
|||||||O
3
4
5
=======
4
5
3
>>>>>>B
6
按照這種方法來檢測衝突,我嘗試一個簡單的例子: 最初我有文件:
a;
b;
我做出更新 用戶1更新"a;"
,到"a=0;"
用戶2更新"b;"
,到"b=0;"
我獲得此資源ULT:
xx
<<<<<<< A
int a=0;
int b;
||||||| O
int a;
int b;
=======
int a;
int b=0;
>>>
當我把這兩個文件合併我有,即使我沒有在同一位置(a and b are not at the same position
)改變衝突!有人可以解釋爲什麼我有這種衝突?
是否爲a; b;在同一行的文件中? – Schleis 2013-05-14 14:45:42
沒有不在同一行! – Mehdi 2013-05-14 14:47:57
如果整個文檔只有3行長,那麼它可能只是沒有足夠的上下文差異來正確識別非衝突的情況。如果差異混淆,這是一個衝突;) – 2013-05-14 14:53:00