Я прочитал статью о трехходовых слияниях (diff3). Он дает пример о том, как выявить конфликт. Пример:Странный конфликт на git
A=[1,4,5,2,3,6]
O=[1,2,3,4,5,6] <<< Origin
B=[1,2,4,5,3,6]
В первый раз он вычисляет различий между ОА и после 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;"
Я получаю это res ии:
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
)! кто-то может объяснить мне, почему у меня этот конфликт?
Записи для; б; в документе в той же строке? – Schleis
НЕТ нет на той же линии! – Mehdi
, если весь документ имеет длину всего 3 строки, тогда, вероятно, недостаточно контекста для diff, чтобы правильно распознать неконфликтный случай. и если diff запутан, это конфликт;) –