Open Source im professionellen Einsatz

© Klaus Eppele, Fotolia.com

Vier Tools zum Vergleich von Textdateien

Entdecke die Unterschiede

Textdateien oder Verzeichnisinhalte miteinander vergleichen, die Unterschiede übersichtlich anzeigen, Funktionen zum automatischen oder manuellen Abgleich oder Zusammenführen - das alles und noch viel mehr bieten diverse Diff-Tools.

Entwickler, die gemeinsam an einem Projekt arbeiten, Admins bei der Wartung von Konfigurationsdateien und Redakteure von Linux-Zeitschriften, fast alle, die mit Text in irgendeiner Form zu tun haben, stehen über kurz oder lang immer vor dem Problem, zwei oder sogar mehrere Dateien miteinander vergleichen zu müssen. Manchmal sind es gar ganze Verzeichnishierarchien, die Gemeinsamkeiten und Unterschiede enthalten. Wer mühsam von Hand vergleicht, verbringt nicht nur viel Zeit mit dieser Aufgabe, sondern macht auch Fehler und übersieht Details. Verschiedene Diff-Programme, ob auf der Shell oder grafisch, helfen schnell und zuverlässig bei dieser Aufgabe.

Schnell auf der Shell

Die Klassiker Diffutils ([1], [2]) enthalten Kommandozeilentools zum Vergleichen von Textdateien. Mit im Paket sind Diff (vergleicht zwei Textdateien), Diff3 (gibt die Unterschiede zwischen drei Dateien aus), Sdiff (führt zwei Textdateien interaktiv zusammen) und Cmp (vergleicht binäre Dateien).

Etliche Aufrufoptionen beeinflussen die Arbeit von Diff: So bietet »-c« mehr Kontext, um die Ausgabe besser lesbar zu machen, und »-y« präsentiert beide Vergleichskandidaten nebeneinander statt untereinander im Terminal. Interessant sind auch die Parameter, die den Leerraum beeinflussen: Leere Zeilen ignoriert Diff über »-B«, Tabulatoren mit »-E«, einfache Leerzeichen mit »-b« und sämtliche Leerzeichen mit »-w«. Diff vergleicht darüber hinaus ganze Verzeichnisstrukturen und schließt auf Wunsch bestimmte Dateien vom Vergleich aus.

Hat Diff erst einmal die Unterschiede herausgefunden, stellt sich die Frage, wie es weitergeht. Das Ergebnis der Vergleichsanalyse präsentieren optional Pager oder Texteditoren; ein manueller Abgleich längerer Texte ist jedoch äußerst mühsam. Hier kommt das Kommando »patch« ins Spiel: Hat der Anwender eine Diff-Ausgabe im so genannten Unified Format (Option »-u« oder »-U Zeilenanzahl«) erstellt, bringt »patch« den Flicken an. Entwickler freier Software wissen diese Technik seit Jahren zu schätzen, da sie Beiträge von Anwendern ohne Schreibzugriff auf die Versionsverwaltung des Projekts auf diese Weise problemlos einpflegen können.

Zahlreiche grafische Diff-Programme, darunter Frontends der Diffutils und eigenständige Implementierungen, stehen als Alternativen zu den Shelltools bereit. Alle Testkandidaten bestechen vor allem durch ihr Syntax-Highlighting und die übersichtliche Darstellung der Unterschiede und Gemeinsamkeiten. Einige haben zusätzliche interessante Features im Gepäck.

Kompare

Das KDE-Tool Kompare [3] setzt im Hintergrund auf die Diffutils, und so verwundert die Featureliste des Diff-Frontends nicht: Kompare vergleicht zwei Textdateien miteinander, schaut rekursiv in Verzeichnisse herein, zeigt mit Diff erstellte oder selbst gemachte Patches an und wendet diese Flicken auf Wunsch auch an.

Der Anwender gibt beim Start entweder die Vergleichskandidaten an oder wählt die beiden Dateien in einem Dialog aus. Der Weg über das Dialogfenster ist flexibler: Außer der Kodierung legt der Anwender hier direkt die farbliche Gestaltung und verschiedene Diff-Optionen fest. Dazu gehören neben dem Ausgabeformat (Kontext, normal oder Unified) auch die Einstellungen zum Leerraum und zum Ausschluss bestimmter Dateien. Alle hier getroffenen Entscheidungen revidiert der Benutzer im Zweifelsfall über das Menü »Einstellungen«.

Seite an Seite präsentiert Kompare die beiden Textdateien anschließend im Hauptfenster. Alle Unterschiede sind farblich hervorgehoben und leicht zu entdecken. Das GUI bietet verschiedene Möglichkeiten zur Navigation in den Änderungen: Über die Werkzeugleiste, über einen Klick mit der Maus auf den Farbbalken oder über Tastenkombinationen. Der Anwender übernimmt entweder gezielt einzelne Änderungen oder bestätigt im Rundumschlag alle Änderungen. Einzelne oder gleich alle Schritte lassen sich rückgängig machen.

Besonders praktisch ist die Funktion, Quelle (linke Fensterhälfte) und Zieldatei (rechter Bereich) zu vertauschen - stellt der Anwender nach dem ersten prüfenden Blick fest, dass er Anpassungen an der jeweils anderen Datei vornehmen möchte, muss er das Programm nicht neu starten und die beiden Vergleichskandidaten nicht neu einlesen.

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook