git union merge bringt einige gelöschte Zeilen zurück

9

Ich versuche, ein verwirrendes Verhalten mit git union merge zu verstehen. Um zu repro starten Sie mit einer hello.txt die folgendes hat:

%Vor%

Fügen Sie in einem weiteren Commit eine Zeile hinzu, z. B.

%Vor%

Löschen Sie in einem anderen foo Zweig des ursprünglichen Commits die mittlere Zeile:

%Vor%

Hier würde ich erwarten, dass die Zusammenführung die gelöschte Zeile nicht enthält, auch wenn die Vereinigungszusammenführung verwendet wird. Aber ich sehe es enthalten (nach dem Ausführen von git merge foo während auf Master.):

%Vor%

Es ignoriert also meine Zeilenlöschung. Missverständnis ich nur, wie Union Merge funktioniert? Beispiel Repo hier: Ссылка

Noch eine Anmerkung: Wenn Sie Zeile 1 löschen, statt die Zeile 2 zu löschen, dann geschieht die Zusammenführung wie erwartet und endet mit:

%Vor%

Die Seltsamkeit scheint also nur in Szenarien aufzutreten, die unter Standard (nicht gewerkschaftlicher) Zusammenführung Konflikte verursachen würden.

    
David Ebbo 18.10.2012, 05:01
quelle

1 Antwort

4

Die Zusammenführung von --union funktioniert genau so, wie sie sollte. Weitere Informationen finden Sie in der git-merge-file Manpage:

  

Statt Konflikte in der Datei zu belassen, lösen Sie Konflikte, die beide -Seiten der Zeilen bevorzugen.

Das zweite Szenario zählt überhaupt nicht als Konflikt. Die modifizierten Linien sind nicht benachbart (# 1 und # 3).

    
Tsvetomir Tsonev 18.10.2012, 06:45
quelle

Tags und Links