Я прочитал статью о трехсторонних слияниях (diff3). Это дает пример того, как обнаруживает конфликт. Пример:
A=[1,4,5,2,3,6]
O=[1,2,3,4,5,6] <<< Origin
B=[1,2,4,5,3,6]
В первый раз он вычисляет разницу между O-A и после 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
)! кто-нибудь может объяснить мне, почему у меня этот конфликт?