Texte vergleichen
Fügen Sie das Original und die geänderte Fassung ein, dann wird jeder Unterschied hervorgehoben, bis hin zu einzelnen Wörtern.
Fügen Sie in beide Felder Text ein, um sie zu vergleichen.
So funktioniert es
Der Vergleich sucht die kürzeste Folge hinzugefügter und entfernter Zeilen, die den einen Text in den anderen überführt, mit dem Algorithmus von Eugene Myers aus dem Jahr 1986. Dasselbe Verfahren verwendet git standardmäßig. Geänderte Zeilen werden anschließend Wort für Wort verglichen, damit Sie genau sehen, was sich unterscheidet.
Hinzugefügte Zeilen haben einen grünen Hintergrund, entfernte einen roten. Eine geänderte Zeile zählt als eine entfernte und eine hinzugefügte, wie in anderen Diff-Werkzeugen auch.
Groß-/Kleinschreibung ignorieren behandelt Hallo und hallo als gleich. Leerraum ignorieren übergeht Leerzeichen am Anfang und Ende einer Zeile sowie mehrere Leerzeichen hintereinander, was hilft, wenn sich die Einrückung geändert hat.
Unified Diff ist das Textformat, das diff -u ausgibt, mit drei Zeilen Kontext um jede Änderung. Es lässt sich in einen Fehlerbericht einfügen oder von patch und git apply einlesen.
Ihre Texte verlassen nie Ihren Browser. Sehr lange Texte, die sich fast vollständig unterscheiden, werden nicht Zeile für Zeile verglichen; dann werden alle Zeilen als geändert angezeigt.
So vergleicht das Werkzeug
Zuerst werden gleiche Zeilen am Anfang und am Ende beiseitegelegt, weil sie zu keiner Änderung gehören können. Dazwischen findet der Algorithmus von Myers die kürzeste Folge entfernter und hinzugefügter Zeilen. Zeilenenden als CR LF oder als einzelnes CR werden vorher zu LF, derselbe Text aus Windows und vom Mac gilt also als gleich. Innerhalb einer Änderung stehen entfernte Zeilen vor hinzugefügten, und sie werden der Reihe nach für den Vergleich Wort für Wort gepaart. Wörter werden an Leerzeichen und Satzzeichen getrennt, ein geändertes Komma wird also für sich markiert.
Rechenbeispiel
Vergleichen Sie die Zeilen Apfel, Birne, Kirsche mit Apfel, Birne Helene, Kirsche, Dattel, beide mit einem Zeilenumbruch nach der letzten Zeile. Der Algorithmus behält Apfel und Kirsche, entfernt Birne und fügt Birne Helene und Dattel hinzu: zwei Zeilen hinzugefügt und eine entfernt. Die Zeile Birne Helene wird mit Birne gepaart, und nur das Wort Helene mit dem Leerzeichen davor wird als neu markiert. Im Unified Diff ist das ein einziger Abschnitt mit der Überschrift @@ -1,3 +1,4 @@: Er beginnt in beiden Texten bei Zeile 1 und umfasst drei Zeilen des alten und vier des neuen Textes.
Fehlt der Zeilenumbruch nach der letzten Zeile, ändert sich das Ergebnis. Nach GNU Diffutils ist eine letzte Zeile ohne Zeilenumbruch nicht gleich derselben Zeile mit Zeilenumbruch, und Kirsche war nur im alten Text die letzte Zeile. Das Werkzeug zeigt Kirsche dann als entfernt und hinzugefügt, drei Zeilen hinzugefügt und zwei entfernt, und schreibt wie diff -u nach der letzten Zeile jedes Textes \ No newline at end of file. Nebeneinander und einspaltig trägt die entfernte Zeile Kirsche den Hinweis „kein Zeilenumbruch am Ende“, weil sie sonst unverändert aussähe. Leerraum ignorieren übergeht den Unterschied.
Grenzen
Die Arbeit ist auf Zeilenebene auf 4000 Änderungen begrenzt. Zwei Texte mit je 2001 völlig verschiedenen Zeilen überschreiten die Grenze, und alle Zeilen erscheinen dann ohne Vergleich als entfernt und hinzugefügt. Auf Wortebene liegt die Grenze bei 2000 Änderungen pro Zeilenpaar, und haben sich mehr als 80 % der Zeichen geändert, wird die Zeile als Ganzes gezeigt, ohne Markierung einzelner Wörter.
Was nicht zu sehen ist
Verschobene Blöcke werden nicht erkannt, weil der Algorithmus nur Entfernen und Hinzufügen kennt. Verschieben Sie die ersten beiden Zeilen eines Textes mit fünf Zeilen bis vor die letzte, zeigt das Werkzeug zwei Zeilen als entfernt und zwei als hinzugefügt. Leerraum ignorieren fasst Leerzeichen innerhalb einer Zeile zusammen, entfernt sie aber nicht: a,b und a, b gelten weiterhin als verschieden.