Angenommen, ich habe zwei Dateien. Der erste hat den Inhalt:
line 1
foo
line 2
line 1
bar
line 2
Und der zweite hat einen neuen Abschnitt in der Mitte eingefügt, so sieht es aus:
line 1
foo
line 2
line 1
new text
line 2
line 1
bar
line 2
Wenn ich jetzt ein "diff -u" mache, bekomme ich folgende Ausgabe:
--- file1 2013-06-25 16:27:43.170231844 -0500
+++ file2 2013-06-25 16:27:59.218757056 -0500
@@ -1,7 +1,11 @@
line 1
foo
line 2
line 1
+new text
+line 2
+
+line 1
bar
line 2
Dies spiegelt nicht richtig wider, dass die mittlere Zeilengruppe eingefügt wurde. Stattdessen sieht es so aus, als ob die zweite Zeilengruppe geändert und am Ende eine neue hinzugefügt wurde (dies liegt daran, dass der Algorithmus in der ersten abweichenden Zeile beginnt).
Gibt es eine Möglichkeit, diff (entweder für sich oder mithilfe von git diff) zu erhalten, um stattdessen diese Ausgabe anzuzeigen?
--- file1 2013-06-25 16:27:43.170231844 -0500
+++ file2 2013-06-25 16:27:59.218757056 -0500
@@ -1,7 +1,11 @@
line 1
foo
line 2
+
+line 1
+new text
+line 2
line 1
bar
line 2
Dies ist meistens ein Problem beim Generieren eines Patches für eine Überprüfung, bei dem eine neue Funktion in eine Gruppe ähnlicher Funktionen eingefügt wird. Das Standardverhalten spiegelt nicht wider, was sich wirklich geändert hat.
--unified 5
oder größere Werte?
sdiff file1 file2
vielleicht, dass dies das ist, wonach Sie suchen.