Utilia

Code vergleichen (Diff)

Zwei Codeversionen nebeneinander oder untereinander vergleichen – mit Syntaxhervorhebung, Zeilennummern, Leerraum-Optionen und einem Unified Diff zum Kopieren.

So vergleichen Sie zwei Codeversionen

  1. Fügen Sie die alte Version in Ursprünglicher Code und die neue Version in Geänderter Code ein.
  2. Wählen Sie die Sprache oder belassen Sie es bei Automatisch erkennen: Das Tool errät die Sprache aus dem Code und zeigt sie neben der Statistik an.
  3. Wählen Sie eine Ansicht: Nebeneinander oder Untereinander (unified).
  4. Stellen Sie die gewünschten Optionen ein: Leerraum und Einrückung ignorieren, Groß-/Kleinschreibung ignorieren, Geänderte Wörter hervorheben und Nur Änderungen zeigen (3 Zeilen Kontext).
  5. Klicken Sie auf Vergleichen. Nach dem ersten Vergleich folgt das Ergebnis Ihren Änderungen, während Sie tippen.
  6. Klicken Sie auf Als Unified Diff kopieren oder .diff herunterladen, um die Änderung als Patch weiterzuverwenden.

Seiten tauschen vertauscht die beiden Versionen – aus Hinzufügungen werden dann Löschungen und umgekehrt.

Den Diff lesen

Entfernte Zeilen sind rot hinterlegt und gehören zum Original, hinzugefügte Zeilen sind grün hinterlegt und gehören zur neuen Version. Jede Zeile behält ihre Zeilennummer aus der jeweiligen Datei, sodass Sie in Ihrem Editor direkt dorthin springen können.

  • Nebeneinander stellt die beiden Dateien in zwei nummerierten Spalten dar. Eine geänderte Zeile steht neben ihrer neuen Fassung. Mit Geänderte Wörter hervorheben werden die geänderten Wörter innerhalb der Zeile markiert; ohne die Option behalten beide Zeilen ihre vollständige Syntaxfärbung.
  • Untereinander (unified) zeigt eine einzige Spalte wie in einem Code-Review: Für jeden geänderten Block kommen zuerst die entfernten Zeilen (−), dann die hinzugefügten (+), jeweils mit alter und neuer Zeilennummer.
  • Nur Änderungen zeigen (3 Zeilen Kontext) klappt lange unveränderte Abschnitte zu einer Markierung „⋯ N unveränderte Zeilen“ zusammen. Große Dateien lassen sich so deutlich leichter prüfen.

Die Statistikzeile zählt hinzugefügte, entfernte und unveränderte Zeilen.

Syntaxhervorhebung

Die Hervorhebung erledigt highlight.js direkt in Ihrem Browser. Beim ersten Vergleich wird nur die Grammatik der gewählten Sprache geladen, damit die Seite schlank bleibt. Unterstützt werden unter anderem JavaScript, TypeScript, Python, Java, C#, C / C++, Go, Rust, PHP, Ruby, CSS, HTML / XML, JSON, YAML, SQL, Bash / Shell und Markdown. Die automatische Erkennung stützt sich auf einfache Hinweise (Schlüsselwörter, Klammern, JSON-Parsing); liegt sie daneben, wählen Sie die Sprache selbst oder nehmen Sie Reiner Text.

Leerraum, Einrückung und Zeilenenden

Leerraum und Einrückung ignorieren vergleicht die Zeilen, nachdem Leerraum am Anfang und Ende entfernt und Folgen von Leerzeichen und Tabulatoren zusammengefasst wurden. Eine Datei, die von 2 auf 4 Leerzeichen oder von Tabulatoren auf Leerzeichen umgestellt wurde, zeigt so keinen Unterschied. Zeilenenden von Windows (CRLF) und Unix (LF) werden vor dem Vergleich vereinheitlicht; eine Datei, bei der sich nur die Zeilenenden geändert haben, gilt daher als identisch. Beachten Sie, dass Leerraum in Python, YAML und Makefiles eine Rolle spielen kann: Schalten Sie die Option aus, wenn die Einrückung bedeutsam ist.

Das Unified-Diff-Format

Der exportierte Patch verwendet das Standardformat „unified“, das git apply, patch und Code-Review-Werkzeuge lesen: einen Kopf mit den beiden Dateinamen, dann Blöcke (Hunks), die mit @@ -a,b +c,d @@ beginnen, mit jeweils drei Zeilen Kontext um jede Änderung. Die Dateien heißen original und changed, mit einer zur Sprache passenden Endung.

Häufige Fragen

Wird mein Code auf einen Server hochgeladen?

Nein. Vergleich und Hervorhebung laufen lokal in Ihrem Browser; der Code verlässt Ihr Gerät nie.

Worin unterscheidet sich das vom Textvergleich?

Es verwendet dieselbe zeilenweise Vergleichs-Engine, bietet aber zusätzlich Syntaxhervorhebung, eine Unified-Ansicht, das Zusammenklappen von Kontext und eine auf Code zugeschnittene Behandlung von Leerraum.

Warum werden zwei Zeilen als geändert angezeigt, obwohl sie gleich aussehen?

Wahrscheinlich unterscheiden sie sich in unsichtbaren Zeichen: Leerzeichen am Zeilenende, Tabulatoren statt Leerzeichen oder ein geschütztes Leerzeichen. Aktivieren Sie Leerraum und Einrückung ignorieren, um das zu überprüfen.

Kann ich den heruntergeladenen Patch mit Git anwenden?

Ja. Speichern Sie ihn und führen Sie patch original.js < changes.diff aus, oder passen Sie die Dateinamen im Kopf an und verwenden Sie git apply.

Wie groß dürfen die Codeausschnitte sein?

Mehrere Tausend Zeilen werden schnell verglichen. Sind zwei sehr große Dateien völlig verschieden, bricht das Tool nach einigen Sekunden ab und bittet Sie, kleinere Teile zu vergleichen.