Sieh genau, was sich zwischen zwei Fassungen geändert hat.
Vergleiche zwei Texte oder zwei Fassungen einer Datei und sieh genau, was sich geändert hat: ausgerichtete Spalten, die umgeschriebenen Wörter innerhalb jeder Zeile hervorgehoben und ein anwendbarer vereinheitlichter Patch.
Noch kein Vergleich
Lege auf jede Seite eine Fassung und drücke auf Vergleichen. Alles passiert in diesem Tab — nichts wird hochgeladen.
So funktioniert es
Beide Fassungen hereinholen
Einfügen, zwei Dateien ablegen oder ein anderes Werkzeug eine übergeben lassen. Nichts wird hochgeladen, und verglichen wird noch gar nichts.
Festlegen, was als Änderung zählt
Zeilen, Wörter oder Zeichen; Einrückung, Groß-/Kleinschreibung oder Leerzeilen ignorieren. Dann auf Vergleichen drücken — der teure Schritt läuft nur, wenn du ihn verlangst.
Das Ergebnis lesen
Ausgerichtete Spalten mit hervorgehobenen umgeschriebenen Wörtern, unberührte Blöcke eingeklappt und Sprung zur nächsten Änderung auf einen Tastendruck.
Mitnehmen
Ein vereinheitlichter Patch, den git apply annimmt, ein eigenständiger HTML-Bericht oder der überarbeitete Text direkt im nächsten Werkzeug.
Myers, in linearem Speicher
Der klassische O(ND)-Algorithmus mit der Teile-und-herrsche-Verfeinerung. Der Speicherbedarf bleibt flach, egal wie weit die beiden Dateien auseinanderliegen: 5.000 Zeilen brauchen rund 7 ms statt der 590 ms und 200 MB einer gewöhnlichen LCS-Matrix.
Hervorhebung auf Wortebene
Eine umgeschriebene Zeile wird ein zweites Mal verglichen, Wort für Wort. Aufleuchten die drei Zeichen, die sich wirklich bewegt haben — nicht ein roter Block gegenüber einem grünen.
Einrückung ist optional
Rücke eine Datei neu ein und ein buchstabengetreuer Vergleich erklärt jede Zeile für verschieden. Ignoriere Leerzeichen am Zeilenende, jeden Leerraum, die Groß-/Kleinschreibung oder Leerzeilen, und übrig bleiben nur die echten Änderungen.
Unberührte Blöcke klappen ein
Eine Änderung in einer Datei mit 4.000 Zeilen sollte nicht bedeuten, 4.000 Zeilen durchzublättern. Behalte eine, drei oder acht Zeilen Kontext und öffne jeden eingeklappten Block per Klick.
Die Zuordnung selbst feststecken
Wenn zwei verschobene Blöcke falsch zusammenfinden, klicke auf jeder Seite eine Zeilennummer an, um sie festzustecken. Jede Seite einer Stecknadel wird danach für sich gelöst, eine Korrektur bringt also nie den Rest durcheinander.
Syntaxfarben bleiben erhalten
Zweiundzwanzig Grammatiken, geladen nur wenn die Datei eine braucht. Ein geändertes Wort innerhalb einer Zeichenkette behält die Farbe der Zeichenkette und bekommt zusätzlich den Änderungshintergrund, statt dass eines das andere überschreibt.
Ein Patch, der sich wirklich anwenden lässt
Echte vereinheitlichte Diff-Ausgabe mit korrekten Blockköpfen, also nehmen git apply und patch sie an. Oder exportiere einen eigenständigen HTML-Bericht ohne Schriften, Skripte oder Dateien zum Hosten.
Große Dateien bleiben bedienbar
Große Vergleiche wandern in einen Web Worker, damit die Editoren ansprechbar bleiben, nur die sichtbaren Zeilen entstehen überhaupt, und das Rückgängigmachen speichert die geänderten Zeichen statt einer Kopie des Dokuments.
Sieh genau, was sich zwischen zwei Fassungen geändert hat.
Ein Diff ist meist das Erste, was man auf etwas loslässt, das man gar nicht weitergeben darf: eine Konfiguration mit Zugangsdaten, ein Vertrag vor der Unterschrift, ein Klinikexport, das Angebot eines Mitbewerbers. DiffSnap berechnet den Vergleich in diesem Tab, also bleiben beide Dokumente auf dem Gerät, auf dem du sie geöffnet hast.
Der Myers-Algorithmus, ausgeführt auf deinem Gerät
Der Vergleich ist der O(ND)-Differenzalgorithmus von Myers mit der Verfeinerung für linearen Speicher, in JavaScript geschrieben und auf deinem eigenen Gerät ausgeführt. Es gibt keinen Upload-Schritt, keinen Server und keine Anfrage, die deinen Text transportiert: trenne nach dem Laden der Seite die Verbindung und alles läuft weiter.
Ein Vergleichswerkzeug für die Dateien, die wirklich verglichen werden.
Prüfen, was eine Kollegin in einer Konfiguration angefasst hat, bevor sie ausgeliefert wird; die Klausel finden, die zwischen zwei Vertragsentwürfen verrutscht ist; belegen, dass eine Übersetzung zu ihrer Vorlage passt; einen Patch auf einem Rechner ohne git durchsehen; und klären, welcher von zwei Exporten der aktuelle ist.
Die Dokumente, die einen Vergleich wert sind, sind selten öffentlich: Umgebungsdateien mit Schlüsseln darin, Vereinbarungen unter Verschwiegenheit, Exporte mit Kundendaten. Wer das in einen gehosteten Vergleichsdienst einfügt, übergibt beide Fassungen vollständig dem Server eines Fremden. Hier verlassen sie den Tab nie, es gibt also nichts zu protokollieren, zwischenzuspeichern oder zu verlieren.
Häufige Fragen
QWie groß dürfen die Dateien sein?+
Dateien bis 32 MB lassen sich öffnen, und alles über 512 KB wartet hinter einem Klick, statt unangekündigt im Editor zu landen. Ab etwa 120.000 Zeichen wandert der Vergleich in einen Web Worker, damit die Seite ansprechbar bleibt. Zwei Dateien, die fast nichts gemeinsam haben, stoßen an eine Arbeitsgrenze und werden als komplett neu geschrieben ausgewiesen — das Werkzeug sagt es auf dem Bildschirm, statt so zu tun als ob.
QWerden meine Dateien an einen Server geschickt?+
Nein. Es gibt keinen Upload und keinen Server: Vergleich, Einfärbung und sämtliche Exporte laufen in deinem Browser-Tab. Du kannst nach dem Laden der Seite die Netzverbindung trennen und weiterarbeiten.
QWarum heißt es, alles habe sich geändert, obwohl ich nur neu eingerückt habe?+
Weil standardmäßig jedes Zeichen zählt, Leerzeichen und Tabulatoren eingeschlossen. Stelle die Leerraum-Option auf „Jeden Leerraum ignorieren“, dann bleiben nur die echten Änderungen. Für Groß-/Kleinschreibung und Leerzeilen gibt es entsprechende Optionen.
QFärbt es die Syntax ein?+
Ja — zweiundzwanzig Grammatiken, erkannt an der Dateiendung oder an der Form des Textes und erst geladen, wenn ein Vergleich sie braucht. Syntaxfarbe und die Hervorhebung geänderter Wörter werden zusammen gezeichnet, keine verdeckt die andere.
QKann ich das Ergebnis exportieren?+
Ja. Ein vereinheitlichter .patch mit korrekten Blockköpfen, den git apply und patch annehmen, ein eigenständiger HTML-Bericht ohne externe Abhängigkeiten, eine Zusammenfassung als reiner Text für eine Commit-Nachricht oder ein Ticket, und der überarbeitete Text für sich allein.
QDie beiden Fassungen wurden falsch zugeordnet. Kann ich das richten?+
Ja. Klicke auf einer Seite eine Zeilennummer an und dann die zugehörige Zeile auf der anderen — das Paar ist festgesteckt. Alles vor und nach jeder Stecknadel wird unabhängig verglichen, eine Korrektur verschiebt also nie den Rest der Datei.