100 % lokal — Ihre Daten verlassen nie Ihren Browser

Text-Diff — ein Patch fürs Ticket

Zwei Texte Zeile für Zeile vergleichen und einen Unified Diff bekommen, genau in der Form, die git ausgibt — fertig fürs Ticket oder das Review.

Sofort Privat Null Cookies

Original

Geändert

Unterschiede

Was dieses Werkzeug tut

Zwei Texte hinein, ein Unified Diff heraus.

version: 1          version: 2
name: demo          name: demo
port: 8080          port: 8080
                    debug: true
@@ -1,3 +1,4 @@
-version: 1
+version: 2
 name: demo
 port: 8080
+debug: true

Der Vergleich benutzt den Myers-Algorithmus — denselben wie git diff —, sodass das Ergebnis die kleinste Menge an Änderungen ist und nicht die erstbeste. Gleiche Texte ergeben ein leeres Ergebnis, und genau das wollten Sie wissen.

Die Ausgabe lesen

  • @@ -1,3 +1,4 @@ — wo die Änderung sitzt: drei Zeilen ab Zeile 1 links, vier ab Zeile 1 rechts.
  • - — die Zeile steht im ersten Text und nicht im zweiten.
  • + — die Zeile steht im zweiten und nicht im ersten.
  • Ein führendes Leerzeichen — die Zeile ist unverändert und steht als Kontext da. Drei davon auf jeder Seite, wie Git es vorgibt.

Wenn zwei gleich aussehende Zeilen sich unterscheiden

-a
+a

Nichts zu sehen, und doch ist es nicht dieselbe Zeile. Die üblichen Verdächtigen: ein Leerzeichen am Zeilenende, ein Tabulator gegen Leerzeichen und ein Windows-\r\n gegen ein Unix-\n — eine Datei, die auf zwei Rechnern bearbeitet wurde, sammelt alle drei. Verglichen werden die genauen Zeichen, also meldet der Vergleich einen Unterschied, den er Ihnen nicht zeigen kann.

cat -A zeigt unter Unix ein $ am Zeilenende und ein ^M für einen Wagenrücklauf; die meisten Editoren haben einen Schalter „Leerraum anzeigen“. Beides macht den Unterschied in einer Sekunde sichtbar.

Was er nicht tut

  • Hervorhebung auf Wortebene. Ein geändertes Zeichen markiert die ganze Zeile.
  • Erkennen von Umbenennungen oder Verschiebungen. Ein verschobener Block liest sich als Entfernen und Hinzufügen, nicht als Verschieben.
  • Eine Drei-Wege-Zusammenführung. Er vergleicht zwei Texte; er führt sie nicht zusammen.
  • Die Markierung \ No newline at end of file. Ein Text, der mit einem Umbruch endet, gegen einen, der es nicht tut, erscheint als hinzugefügte Leerzeile — dieselbe Auskunft in schlichterer Form.

Datenschutz ab Werk

Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.

Häufige Fragen

Zwei Zeilen sehen gleich aus, erscheinen aber als `-` und `+`. Warum?
Weil der Unterschied unsichtbar ist. Ein Leerzeichen am Zeilenende, ein Tabulator gegen Leerzeichen oder ein Windows-Zeilenende (`\r\n` gegen `\n`) verändern die Zeile, ohne zu verändern, was Sie sehen. Verglichen werden die genauen Zeichen, wie bei Git. Um sie zu sehen, schicken Sie den Text unter Unix durch `cat -A` oder schalten Sie im Editor „Leerraum anzeigen“ ein.
Was bedeuten die `@@`-Zeilen?
Sie verorten die Änderung: `@@ -1,3 +1,4 @@` heißt „ab Zeile 1 drei Zeilen links; ab Zeile 1 vier Zeilen rechts“. Darunter wurde eine Zeile mit `-` entfernt, eine mit `+` hinzugefügt, und ein Leerzeichen heißt unverändert — drei Zeilen Kontext bleiben um jede Änderung stehen, dieselbe Vorgabe wie bei Git.
Hebt er das geänderte Wort hervor?
Nein — verglichen wird Zeile für Zeile. Ändern Sie ein Zeichen, erscheint die ganze Zeile als entfernt und wieder hinzugefügt. Das ist ein Unified Diff, und deshalb lässt sich die Ausgabe sauber in ein Review-Werkzeug einfügen; eine Ansicht auf Wortebene ist etwas anderes und ein anderes Werkzeug.

Ähnliche Konverter