我读了一篇关于三向合并(diff3)的文章。它提供了一个关于如何检测冲突的示例。例子是:
A=[1,4,5,2,3,6]
O=[1,2,3,4,5,6] <<< Origin
B=[1,2,4,5,3,6]
它第一次计算 OA 和 OB 之后的差异:
A=[1,4,5,2,3, ,6]
O=[1, ,2,3,4,5,6]
和
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;"
得到以下结果:
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
)更改,我也会发生冲突!有人可以解释我为什么会有这种冲突?