Diff

Textänderungen zeilenweise vergleichen

Über dieses Tool

Original und bearbeiteten Text eingeben, dann Vergleichen (Ctrl/Meta+Enter im Editor). Auf großen Bildschirmen stehen die Eingaben nebeneinander; das Ergebnis ist ein gemeinsamer Zeilenvergleich. Live vergleicht nach einer kurzen Schreibpause. Änderungen verwerfen das alte Ergebnis sofort; Abbrechen beendet den Hintergrundvergleich und erhält die Eingaben. Seiten tauschen kehrt den Vergleich um, Leeren leert beide Editoren.

Zunächst werden nur geänderte Zeilen gezeigt. Unter Anzeige lassen sich unveränderte Kontextzeilen einblenden und lange Zeilen umbrechen. Die Nummernspalten beziehen sich auf Original und neuen Text. + bedeutet hinzugefügt, − entfernt; Änderungen sind neben der Farbe für Hilfstechnik beschriftet. Leerzeilen und ein fehlender Schlusszeilenumbruch sind ausdrücklich sichtbar. CRLF und CR werden zu LF vereinheitlicht; Leerzeichen, Tabulatoren, Groß-/Kleinschreibung und Unicode-Normalisierung bleiben relevant. Dies ist ein Zeilenvergleich, kein Vergleich einzelner Zeichen innerhalb einer Zeile.

Vergleich kopieren übernimmt alle Vergleichszeilen, auch unveränderte und solche auf anderen Seiten, mit Leerzeichen/+/-Präfixen und einem Hinweis bei fehlendem Zeilenumbruch. Das ist Referenztext, kein anwendbarer Patch mit Dateinamen und Hunk-Köpfen. Eingaben bleiben nur im Seitenspeicher und werden nicht hochgeladen.

Die vorhandene lokale Myers-Implementierung (jsdiff) läuft in einem abbrechbaren Worker. Je Text: höchstens 1.000.000 UTF-16-Codeeinheiten und 20.000 Zeilen. Schwierige Vergleiche können nach 1,5 Sekunden Algorithmuszeit oder 4.000 Zeileneinfügungen/-löschungen enden; eine äußere Frist von 5 Sekunden umfasst auch das Laden des Workers. Kein Näherungsergebnis wird als exakt ausgegeben. Pro Seite werden höchstens 200 Ergebniszeilen aufgebaut. Dies sind Produktgrenzen, keine allgemeine Dateigrößengrenze des Algorithmus.

Datei laden öffnet UTF-8-Text lokal (höchstens 4 MB kodiert, innerhalb der Textgrenzen). Ein UTF-8-BOM bleibt als Zeichen erhalten. Eine ungültige/zu große Datei lässt die bisherige Eingabe unverändert. Große Einfügevorgänge können im nativen Browsereditor langsam sein; das Laden einer Datei umgeht diesen Einfügevorgang. Verspätetes Lesen ersetzt keine späteren Eingaben oder geleerten/getauschten Texte.