Angenommen, Sie und Ihr Freund haben beide eine Datei ausgecheckt und einige Änderungen daran vorgenommen. Sie haben am Anfang eine Zeile entfernt und Ihr Freund hat am Ende eine Zeile hinzugefügt. Dann hat er seine Datei festgeschrieben, und Sie müssen seine Änderungen in Ihrer Kopie zusammenführen.
Wenn Sie eine bidirektionale Zusammenführung (mit anderen Worten einen Unterschied) durchführen, kann das Tool die beiden Dateien vergleichen und feststellen, dass die erste und die letzte Zeile unterschiedlich sind. Aber wie würde es wissen, was mit den Unterschieden zu tun ist? Sollte die zusammengeführte Version die erste Zeile enthalten? Sollte es die letzte Zeile enthalten?
Bei einer Drei-Wege-Zusammenführung können die beiden Dateien verglichen werden, aber es kann auch jede mit der Originalkopie verglichen werden (bevor einer von Ihnen sie geändert hat). So kann es sehen, dass Sie die erste Zeile entfernt haben und dass Ihr Freund die letzte Zeile hinzugefügt hat. Und diese Informationen können verwendet werden, um die zusammengeführte Version zu erstellen.
Diese Folie aus einer Perforationspräsentation ist interessant:
quelle
Ich habe einen sehr detaillierten Beitrag darüber geschrieben . Grundsätzlich kann man das Löschen / Hinzufügen nicht in beide Richtungen verfolgen, sehr, sehr unproduktiv.
quelle
Eine Drei-Wege-Zusammenführung, bei der zwei Änderungssätze auf eine Basisdatei zusammengeführt werden, während sie angewendet werden, anstatt eine anzuwenden, und dann das Ergebnis mit der anderen zusammengeführt wird.
Zum Beispiel könnten zwei Änderungen, bei denen eine Zeile an derselben Stelle hinzugefügt wird, als zwei Ergänzungen interpretiert werden, nicht als Änderung einer Zeile.
Beispielsweise
Datei a wurde von zwei Personen geändert, von denen eine Elch und eine Maus hinzufügt.
Wenn wir nun die Änderungssätze zusammenführen, während wir sie anwenden, erhalten wir (3-Wege-Zusammenführung)
Wenn wir jedoch b anwenden, sehen Sie sich die Änderung von b nach c an. Es sieht so aus, als würden wir nur ein 'u' in ein 'o' ändern (2-Wege-Zusammenführung).
quelle