Frage

Es sei angenommen, dass die Dateien meine und deine Nachkommen von OLD.

FILE_MINE =

abc
def
ghi

FILE_OLD =

abc
jkl
ghi

FILE_YOURS =

abc
def
ghi

Befehl diff3 -m MIND OLD YOURS gibt:

abc
<<<<<<< OLD
jkl
=======
def
>>>>>>> YOURS
ghi

diff3 nicht lösen kann, dass meine und deine identische Änderungen vorgenommen.

Warum? Und gibt es eine Möglichkeit, dieses Problem zu lösen?

Tickle Ihr Gehirn mit diesem:

diff OLD MIND und diff OLD YOURS haben identische große Stücke in ihrer Ausgabe.

2c2
< jkl
---
> def

Falls diese großen Stücke nicht "cancel-out" während des Drei-Wege-Merge?

War es hilfreich?

Lösung

Was haben Sie erwartet zu haben?

Als Artikel beschreibt diff3 sagt:

  

... Diese (Verschmelzung) nicht wahr sein , wenn alle drei Eingabedateien unterscheiden oder , wenn nur ältere unterscheidet ; wir nennen dies eine Konflikt . Wenn alle drei Eingabedateien unterscheiden, nennen wir den Konflikt ein Überlappung

Daher ist der Fall, dass Sie beschrieben haben, ist als Konflikt behandelt. ‚Warum?‘ Sie könnten fragen. Wegen des diff3 Algorithmus. Beschreibung Sie auf der gleichen Seite finden:

  

Sie können daran denken (Verschmelzung) als Subtraktion älter von Ihr und Addieren des Ergebnisses zu mein , oder wie in meine Zusammenführung der Änderungen, die würde sich älter in Ihr

Es kann nicht richtig Unterschiede lösen, weil es keinen richtigen Kontext von Veränderungen hat gemacht werden.

würde ich Ihnen zustimmen, wenn Sie gehen zu sagen, dass es funktionieren sollte einen anderen Ansatz. Aber ... es ist was es ist. diff3 ist nicht perfekt, ich würde mit anderen Tool empfehlen, wenn Sie es richtig, wie beschrieben in den Artikeln tun mögen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top