Sowohl Programmierer als auch gewöhnliche Anwender schätzen die Arbeitserleichterung durch Programme, die zwei oder mehr Versionen eines Textes, seien es Prosa oder Quellcode, miteinander vergleichen. Die Bitparade nimmt dazu fähige Anwendungen mit grafischer Oberfläche ins Visier.
Das Vergleichen zweier Textdateien ist am Computer in der Regel mühsam. Vor allem bei längeren Texten geht schnell der Überblick flöten, wenn der Nutzer mit mehreren Fenstern in Textverarbeitungsprogrammen hantiert. Schon lange tüfteln Entwickler daher an Werkzeugen, die den direkten Textvergleich unter Linux vereinfachen.
Tools, die Unterschiede in Texten grafisch hervorheben, verwenden unter anderem Programmierer, um abweichende Versionen von Quelltext- und Konfigurationsdateien zu vergleichen. Doch auch Autoren von Gebrauchstexten verfolgen damit die Entwicklungsstadien ihrer Werke, wenn sie diese stilistisch oder orthografisch verbessern möchten. Lehrer nutzen die grafischen Vergleichswerkzeuge, um die Testaufgaben ihrer Schüler zu prüfen. Mit denen merken sie schnell, ob ihre Probanden voneinander oder aus fremden Quellen abgeschrieben haben.
Unter Linux basieren die meisten dieser Tools auf Diff [13], das den Inhalt zweier Dateien vergleicht. Zahlreiche Zusatzfunktionen sprechen speziell Entwickler an und runden das Angebot ab. Dazu zählt etwa die Option, eine Patchdatei mit dem veränderten Code anzulegen. Das Linux-Magazin stellt Beyond Compare [1], Eskil [2], Guiffy [3], P4Merge [4], Kompare [5] und Meld [6] vor.
Nicht berücksichtigt
Das vor allem unter KDE-Nutzern aufgrund seiner Funktionalität noch immer sehr beliebte Kdiff3 [7] steht in der aktuellen Version bereits seit Juli 2014 zum Download bereit. Auch an Diffuse [8] arbeitet offenbar seit 2014 niemand mehr. Beide Tools berücksichtigt der Test daher nicht. Die Software Diff-Merge [9] des US-Herstellers Sourcegear erhält seit Oktober 2013 keine Updates mehr. Das Linux-Magazin hat sie daher ebenfalls nicht getestet.
Das proprietäre Programm Semantic-Merge [10] ist in der aktuellen Version 2.0 noch nicht für Linux zu haben. Zudem fokussiert die Software sehr stark auf Entwickler, sodass sie für Endanwender nur eingeschränkt taugt. Auch das letzte Update für die kommerzielle Software Deltawalker [11] erschien bereits im April 2017, EC-Merge [12] hat seit 2015 keine Auffrischung mehr erfahren. Beide berücksichtigt der Artikel ebenfalls nicht.
Beyond Compare
Das von dem US-amerikanischen Unternehmen Scooter Software entwickelte und gepflegte Beyond Compare [1] gehört zu den kommerziellen Lösungen. Es bietet die Software in einer 30 Tage lang nutzbaren Trial-Variante kostenlos zum Download an. Dabei stehen jeweils vorkompilierte Pakete im Deb- und RPM-Format für 32-Bit- und 64-Bit-Architekturen bereit [14]. Die Webseite beschreibt, wie Anwender die Software installieren und wie kompatibel diese zu verschiedenen Linux-Distributionen ist.
Die Installationsroutinen legen in den jeweiligen Desktop-Umgebungen automatisch im Untermenü »Entwicklung« einen eigenen Starter an, der ein aufgeräumt wirkendes Programmfenster öffnet (Abbildung 1).
Anhand eines mehrstufigen, rein grafischen Dialogs erledigt der Anwender die einzelnen Arbeitsschritte zügig ohne den Umweg über Menüs. Dabei fällt sofort auf, dass Beyond Compare nicht nur Textdateien, sondern auch Ordner miteinander vergleicht. Zudem führt es mehrere Versionen zu einer Datei zusammen (Merge) und synchronisiert sogar Verzeichnisse. Um diesen Ablauf anzustoßen, genügt es schon, wenn der Anwender die zu bearbeitenden Dateien oder Ordner einfach per Drag & Drop in das entsprechende Programmfenster zieht.
Zunächst empfiehlt sich jedoch ein Blick auf den Menüpunkt »Tools | Options«. Über diesen nimmt der Anwender nicht nur diverse Programmeinstellungen vor, sondern macht sich auch mit Zusatzfunktionen vertraut: So legt Beyond Compare automatisch Backups geladener Dateien an oder nutzt auch Datei-Archive als Quelle. Unterstützte Archivformate listet die Software im Dialog »Archive Types« des Optionsfensters auf. Zudem vergleicht sie auch multimediale Dateien miteinander: So zieht der Nutzer MP3- und Bilddateien per Drag & Drop in das Programmfenster und klopft sie auf Unterschiede ab (Abbildung 2).
Beyond Compare öffnet dazu jeweils einen Quellen-sensitiv angepassten Dialog, der die Dateien ebenso wie die Unterschiede nebeneinander visualisiert. In Textdateien hebt die Software modifizierte Zeilen farbig hinterlegt hervor. Veränderte Sätze sowie Absätze macht sie durch andere Buchstabenfarben sichtbar. Datenabhängig ändern sich zudem die Buttonleisten in den Dialogen, die es per Mausklick erlauben, die jeweiligen Dateien zu bearbeiten.
Reine Ascii-Textdateien stellt Beyond Compare ohne jegliche Formatierung und somit auch ohne Zeilenumbruch dar. Aufgrund der Zeilenlänge bei herkömmlichen Texten geht aber schnell die Übersicht verloren. Um das zu ändern, klickt der Nutzer in der Buttonleiste auf »Format« und wählt aus der Liste ein Zielformat aus. Nach einer Bestätigung stellt die Software den Text in beiden Fenstern formatiert dar.
Positiv fällt auf, dass Beyond Compare auch freie Dateiformate wie ODT unterstützt. Dabei greift es teilweise auf Fremdprogramme zurück, die der Nutzer extra installieren muss. Fehlen sie, wirft Beyond Compare eine Fehlermeldung, die zum Nachinstallieren auffordert.
Sitzungen
Beyond Compare arbeitet mit so genannten Sitzungen. Stößt der Nutzer einen Datei- oder Ordnervergleich an, behandelt die Software diesen intern als Sitzung. Die erscheint bei einem erneuten Aufruf der Software in einer vertikalen Baumansicht links im Programmfenster. Via Mausklick rekonstruiert der Anwender eine Sitzung umgehend wieder.
Auch beim Zurückschalten in den Startbildschirm über den Button »Home« oben links in der Buttonleiste erscheint das Hauptfenster mit Sitzungsansicht. Um schnell Zugriff auf Sitzungen aus der Vergleichsansicht zu erhalten, kann der Nutzer zudem über den Button »Sessions« jede beliebige Sitzung wiederherstellen, wobei eine Baumansicht diese zeitlich differenziert anzeigt.
Zuordnungen
Um vor allem bei Ordnervergleichen mit zahlreichen Unterschieden den Überblick zu wahren, unterteilt Beyond Compare die gefundenen Abweichungen in Farbschemata. Es stellt beispielsweise nur auf einer Seite vorgefundene Ordner anders dar als beidseitig vorhandene Ordner mit abweichendem Anlagedatum. Auch die Ordnerfarben in der Vergleichsansicht variieren unter Umständen. Um die Farbschemata zuzuordnen, bietet das Programm über den Button »Diffs« zahlreiche Optionen, mit denen der Nutzer Ordner und Dateien nach definierten Kriterien gruppiert. Indem er gleiche Kriterien versammelt, entsteht vor allem bei sehr umfangreichen Verzeichnissen eine bessere Übersicht.
Von Haus aus berücksichtigt die Software beim Vergleich von Ordnerhierarchien unterschiedliche Anlagedaten und Dateigrößen. Über den Button »Rules« ergänzt der Nutzer weitere Kriterien wie etwa Datei-Inhalte. Diese stellt er über einen detaillierten Dialog ein.
Aktionismus
Um mit Dateien zu arbeiten, führt der Anwender in Beyond Compare ähnlich wie bei einem Dateimanager verschiedene Funktionen aus. Diese erreicht er über den Menüpunkt »Actions«. Eine Legende schlüsselt zudem die zahlreichen Farbgebungen auf. Sie erscheint in einem überlappenden Fenster, das der Anwender über den Menüpunkt »View | Legend« öffnet (Abbildung 3).
Texte mit abweichenden Datei-Inhalten erscheinen in der Ordner- und Datei-Ansicht mit einem entsprechenden Icon in einer mittig eingefügten Spalte versehen. Der Anwender überblickt auf diese Weise sofort, welche Dateien inhaltlich nicht identisch sind. Will er aus dieser Ansicht heraus den Textvergleich aufrufen, öffnet er die beiden betroffenen Dateien per Mausklick auf das mittige Icon und kann sie bearbeiten.
Fehlende Bereiche kopiert er per Klick auf die daneben angeordneten gelben Pfeile in den jeweils anderen Text. Die zugeordnete Farbgebung ändert sich, sodass Beyond Compare diesen Bereich nun in beiden Texten als identisch anzeigt.
Über die Menüpunkte »Edit« und »Search« sowie Knöpfe in der Buttonleiste bearbeitet der Anwender die Texte umfangreich und navigiert schnell in ihnen.
Zusammenführen
Beyond Compare bietet die Option, zwei Dateien oder zwei Ordnerhierarchien zusammenzuführen. Dazu nutzt der Anwender entweder im Startbildschirm die entsprechenden Optionen oder bei bereits geöffneten Dateien den Eintrag »Merge Files« im Menü »Session«. Bei Ordnerhierarchien wendet er dazu im Menü »Session« je nach geöffneter Ansicht die Option »Merge Parent Folders« oder »Merge Base Folders« an. Sie fügt jeweils eine dritte Ordnerspalte in das Programmfenster ein, in der die zusammengeführte Version erscheint.
Auch beim Zusammenführen von Texten erscheint der endgültige Text in einem dritten Segment im Programmfenster. Der Anwender kann dabei jeweils Ordner und Texte, die er zusammenführen möchte, auswählen. Ruft er die Merge-Funktion über die Menüs auf, fragt die Applikation bei Mehrfachübernahmen nach, ob sie die markierten Dateien übernehmen soll, bevor sie die Aktion ausführt (Abbildung 4).
Patchdateien
Mit Beyond Compare generieren Entwickler, nachdem sie vorhandenen Code modifiziert haben, auch eine Patchdatei. Die enthält die Unterschiede der einzelnen Versionen. Solche Patchdateien lassen sich nutzen, um veraltete Dateien zu aktualisieren. Um eine Patchdatei zu generieren, wählt der Nutzer im Menü »Session« die Option »Text Compare Report«. Im folgenden Dialogfenster wählt er die Einträge »Patch« und dann »Normal diff« aus. Über »Plain text« und das Sichern über »Save As« legt er die Patchdatei an, diese lässt sich nun weiterverbreiten.
Eskil
Das bereits seit rund 20 Jahren in steter Entwicklung und Pflege befindliche Eskil [2] setzt auf das Kommandozeilen-Programm »diff« auf und ergänzt dies um eine schlichte und übersichtliche grafische Oberfläche.
Die unter der GNU GPL- und der BSD-Lizenz veröffentlichte Software gibt es nicht als vorkompiliertes Deb- oder RPM-Paket, sondern distributionsübergreifend als so genanntes Starpack. Um des einzuspielen, muss der Anwender zuvor die Skriptsprache Tcl/Tk auf seinem System installieren. Er entpackt das Starpack nach dem Download [15] in einem Verzeichnis und macht die herausfallende Datei über »chmod +x eskil.linux« ausführbar. Danach ruft er die Software mit dem Befehl »./eskil.linux« auf.
Die Applikation präsentiert sich in einem schlichten Fenster mit zwei Anzeigebereichen für Textdateien oder Ordnerhierarchien und verfügt zudem am oberen Fensterrand über eine kleine Menüleiste (Abbildung 5). Buttonleisten für den Schnellzugriff fehlen.
Anders als bei Beyond Compare lädt der Nutzer Dateien oder Verzeichnisse hier nicht mit Hilfe eines Assistenten, sondern verwendet die Menüzeile dafür. In der kann er über das Menü »File« und die Optionen »Open Left File« und »Open Right File« über einen kleinen Dateimanager die zu vergleichenden Dateien auswählen. Diese Eskil lädt sie danach in die Fenstersegmente.
Die Software stellt dann unterschiedliche Zeilen farbig hinterlegt und in blauen Buchstaben dar. Zusätzlich nummeriert sie alle Zeilen aufsteigend durch, wobei sie Zeilen mit unterschiedlichen Inhalten mit roter Farbe hinterlegt. Auch die Zeilennummern selbst zeigt sie rot an. Das erlaubt es, die entsprechenden Zeilen schnell anzuspringen. Eskil versieht Ergänzungen, Änderungen und fehlende Textteile in einem der beiden Fenstersegmente mit unterschiedlichen Farbmarkierungen, wobei der User die Farben über den Dialog »Options | Colours« aussucht.
Über den Menüpunkt »Options | Toolbar« blendet das Programm eine kleine Werkzeugleiste ein, die zur Navigation dient. Über die darin vorhandenen Schaltflächen »Prev Diff« und »Next Diff« springt der Anwender in den Texten zwischen den unterschiedlichen Zeilen und Absätzen hin und her und verschafft sich auf diese Weise einen Überblick über die Unterschiede.
Standardmäßig aktiviert Eskil jedoch keine Bearbeitungsfunktionen. Um Texte zu modifizieren, muss der Anwender zunächst über die Option »Tools | Edit Mode« diesen Modus freischalten. Dann darf er die Texte in den beiden Fenstersegmenten bearbeiten.
Merge
Auch Eskil führt unterschiedliche Texte zusammen. Für diesen Zweck steht in der Menüleiste die Option »Tools | Merge« bereit. Ein gesondert geöffnetes kleines Fenster präsentiert den automatisch zusammengefügten Text, wobei eine kleine Werkzeugleiste wiederum eine Sprungfunktion in beide Richtungen anbietet (Abbildung 6).
Indem er das Ursprungsfenster auswählt, erfährt der Nutzer, welche Textteile aus welcher Ursprungsdatei stammen. Diese hebt Eskil farblich verschieden hervor. Über die Option »RL« fügt es zudem Änderungen aus der linken Ansicht hinter den Text aus dem rechten Fenstersegment ein; die Option »LR« dreht die Reihenfolge um. In allen Fällen lässt sich der Text im Merge-Fenster auch bearbeiten. Über die Buttons »Save« und »Close« speichern Nutzer den zusammengeführten Text ab und schließen das Fenster.
Druck
Eskil ermöglicht es, den Textvergleich in eine PDF-Datei zu konvertieren. Die enthält die Texte dann ebenfalls in nebeneinander angeordneter Form, nummeriert aber nicht alle Zeilen durch, sondern nur Absätze. Auch farbige Hervorhebungen verwendet die PDF-Datei sparsamer, was den Überblick für den Betrachter selbst bei umfangreichen Unterschieden verbessert (Abbildung 7).

Abbildung 7: Eskil generiert auf Wunsch auch eine PDF-Datei, die die Differenzen überschaubarer darstellt.
Dateiverzeichnisse
Eskil vergleicht auch Dateiverzeichnisse. Dazu öffnet die Software nach einem Klick auf die Option »Tools | Directory Diff« ein eigenes Fenster, in das es die zu vergleichenden Verzeichnisse einbindet. Auch hier stellt es die Unterschiede farbig hervorgehoben dar.
Patchdateien
Eskil erzeugt auch Patchdateien, die der Nutzer mit Hilfe des Kommandozeilenbefehls »diff -c« oder »diff -u« anlegt. Mit ihrer Hilfe verschafft sich der Entwickler einen Überblick über Umfang und Tiefe von Code-Modifikationen. Um eine Patchdatei anzuzeigen, wählt der User den Menüpunkt »File | Open Patch File«.
Guiffy
Das unter einer proprietären Lizenz angebotene, kommerzielle Guiffy [3] des US-amerikanischen Herstellers Guiffy Software gibt es für Linux in einer 32- und einer 64-Bit-Version. Die Software steht auf der Herstellerseite [16] zum Download bereit.
Das Java-Programm bringt die passenden Laufzeitumgebungen bereits mit und steht 21 Tage lang zur Evaluation bereit. Danach darf der Nutzer für weitere 21 Tage einen temporären Lizenzschlüssel anfordern, bevor er die Software bei Gefallen erwirbt.
Das rund 50 MByte große TGZ-Archiv entpackt der Anwender in ein Verzeichnis seiner Wahl. Er versieht die Datei »guf118ins.bin« mit Ausführungsrechten und startet sie mit »./guf118ins.bin« im Terminal.
Die Installationsroutine schiebt zunächst die Java-Laufzeitumgebung auf den Massenspeicher und leitet den Nutzer dann in wenigen Schritten über einen grafischen Dialog zu einem funktionsfähigen Programm.
Dies ruft der User danach im Terminal mit dem Befehl »./guiffy« auf. Das Programm öffnet nun nach Abfrage der zu vergleichenden Dateien einen übersichtlichen Zwei-Fenster-Bildschirm mit einer Menü- und Buttonleiste im typischen Java-Design (Abbildung 8).

Abbildung 8: Auch Guiffy kommt – wie die meisten Diff-Anwendungen – im Zwei-Fenster-Look, ist aber schlecht übersetzt.
Unterschiede in den Texten hebt Guiffy farbig hervor, Zeilennummern erleichtern die Navigation in den Texten. Das Tool gestattet das Springen zu unterschiedlichen Textstellen über die Schaltflächen »Vorherige Änderung« und »Nächste Änderung«. Die genaue Position im Text zeigt ein blaues Quadrat am Beginn der entsprechenden Zeile an.
Die Software erlaubt es auch, Texte im Programmfenster selbst zu bearbeiten, ohne einen externen Editor aufrufen zu müssen. Dabei erscheinen die geänderten Textstellen jedoch nicht automatisch im anderen Textfenster. Der Anwender muss dazu zunächst den Text speichern und anschließend neu laden, damit Guiffy die durch Modifikationen entstandenen neuen farbigen Markierungen im anderen Textsegment darstellt.
Über den Menüpunkt »Bearbeiten« übernimmt der Nutzer auch Unterschiede, die in einer Datei bestehen, global in die andere. Dabei ist eine Zwei-Wege-Übernahme möglich, die also in beide Richtungen funktioniert. Das Menü erlaubt zudem das Löschen, Kopieren und Einfügen kompletter Zeilen in das jeweils andere Textsegment.
Auffallend ist allerdings auch eine aufgrund einer teils ungewöhnlichen Semantik schwer verständliche deutsche Übersetzung in den Menüs von Guiffy. Sie erschwert es Endanwender ein wenig, die Software zu verwenden.
Suchen
Guiffy-Anwender navigieren also anhand von Unterschieden in den Texten. Daneben stellt die Software auch eine Suchfunktion für Begriffe und Zeichenfolgen bereit, die der Nutzer über »Extras | Suchen« erreicht. Hier gibt er Suchbegriffe frei ein. Außerdem aktiviert er an dieser Stelle spezifische Suchparameter, um etwa die Groß- und Kleinschreibung zu berücksichtigen. Zu beachten ist, dass Guiffy dann ausschließlich im aktiven Textsegment nach den Suchbegriffen fahndet (Abbildung 9).
Voreingestellt durchforstet Guiffy stets erst die links im Programmfenster angeordnete Textansicht. Möchte der Anwender im zweiten Textsegment suchen, klickt er mit der Maus in das Segment. Die folgende Suche berücksichtigt dann automatisch die Position des Cursors.
Reports und Patchdateien
Die Software bietet zahlreiche Möglichkeiten, die Ergebnisse von Textvergleichen zu speichern. Patchdateien für Entwickler legt der Anwender über das Menü »Datei« in vielerlei Formaten ab. Für einen aussagekräftigen Überblick der Unterschiede in Texten bietet Guiffy zudem die Option an, HTML-Dateien zu generieren. Der Browser zeigt dann das Programmfenster mit den unterschiedlichen Textstellen (Abbildung 10).
Der Nutzer springt über die automatisch integrierten Buttons »Previous difference« und »Next difference« im Text von Unterschied zu Unterschied, ohne den Browser verlassen zu müssen. Er erreicht diese Funktion über das Menü »Datei | Vergleichen Bericht (HTML) Vorbetrachtung/Drucken«. Der Menüpunkt »Difference als HTML speichern« speichert die Datei dauerhaft.
Merger
Guiffy führt über das »Merge«-Menü auch zwei oder drei Dateien zusammen. In Dialogen ergänzt der Nutzer Parameter für diesen Schritt. Dabei verkleinert das Programmfenster die vorhandenen Textanzeigen und ergänzt sie um eine weitere für den zusammengeführten Text. Der Nutzer nimmt dann bei Bedarf über mehrere Schaltflächen Änderungen in den jeweiligen Segmenten vor, indem er Textbereiche jeweils aus einem Segment oder beiden in den zusammengeführten Text übernimmt.
P4Merge
Das vom US-amerikanischen Unternehmen Perforce Software angebotene Helix Visual Merge and Diff Tool (P4Merge, [4]) setzt auf das Qt-5-Framework. Auf alten Linux-Systemen läuft es daher nicht. P4Merge reiht sich mit mehreren Software-Applikationen von Perforce in einen Kanon von Entwicklerwerkzeugen ein, die das Warten von Programmcode erleichtern sollen.
Perforce bietet die unter einer proprietären Lizenz stehende Software in der Desktop-Variante kostenfrei als ein rund 65 MByte großes TGZ-Archiv an. Der Anwender entpackt es und setzt mit dem Befehl »ln -s /Programmverzeichnis/bin/p4merge /usr/local/bin/p4merge« einen symbolischen Link, um die Software Verzeichnis-unabhängig zu starten. Bei Bedarf legt er zusätzlich einen entsprechenden Eintrag in der Menüstruktur seiner Desktopumgebung an.
Startet der Nutzer das Programm mit »p4merge«, öffnet sich ein kleines Fenster. Dort gibt er die zu vergleichenden Dateien an. Voreingestellt visualisiert der Reiter »Diff« die Unterschiede. Will der Nutzer zwei Dateien zusammenführen, aktiviert er den Reiter »Merge«. Hat er den Datenpfad zu den Dateien ergänzt, öffnet sich die eigentliche Programmoberfläche mit zwei Anzeigefenstern für die Texte, einer Buttonleiste und einer kleinen Menüleiste (Abbildung 11).
P4Merge hinterlegt die unterschiedlichen Textsequenzen verschiedenfarbig, ohne jedoch voreingestellt Zeilen- oder Absatznummern zu vergeben. Will er die Texte der besseren Übersicht halber zeilenweise durchnummerieren, klickt der Nutzer auf »Show line numbers« rechts in der Buttonleiste. Die Software blendet nun die Zeilennummern links von beiden Anzeigebereichen ein.
Durch die Texte navigiert der Anwender mit Hilfe der Buttonleiste und springt über die Pfeile-Schaltflächen »Next diff« und »Previous diff« zu den einzelnen Textstellen. Der Button »Go to line number« blendet einen Eingabedialog zur Angabe der Zeilennummer ein und springt dann zu dieser Zeile.
Den Bearbeitungsmodus schaltet der Nutzer über die Buttons »Edit file in right pane« und »Edit file in left pane« ein. So nimmt er bei Bedarf Modifikationen vor, die auch das andere Fenstersegment optisch anzeigt. Über »Show inline differences« visualisiert der Nutzer zudem innerhalb von Zeilen bestehende Unterschiede in den Texten. Dazu hinterlegt P4Merge die betreffenden Stellen wortweise in grauer Farbe.
Die Suchfunktion für frei einzugebenden Text unterstützt die Vorwärts- und Rückwärtssuche. Die gefundenen Begriffe zeigt P4Merge mit blauer Farbe hinterlegt an. Als besonderes Feature vergleicht es Dateien, die im Microsoft-Word-Format vorliegen. Das klappt aber nur mit der neuesten Variante des Office-Open-XML-Dateiformats, das die Erweiterung ».docx« trägt. Ältere Microsoft-Formate unterstützt P4Merge nicht.
Bildliches
P4Merge untersucht auch Bilder auf Unterschiede, wobei es die Formate BMP, JPG, Jpeg, PNG, Gif und Tiff abdeckt. Diese liest der Anwender beim Start der Software über den herkömmlichen Dateidialog ein. Die Abbildungen zeigt sie dann nebeneinander im Programmfenster an und blendet links vertikal eine kleine Vorschau ein.
Exif-Daten, wie sie moderne Digitalkameras als Metadaten speichern, kann das Programm nicht auslesen. Es zeigt unterhalb der Abbildungen lediglich einige Grunddaten wie Bildgröße, Auflösung in DPI und Dateigröße an. Über »View | Highlight Differences« betrachtet der Anwender zudem die Unterschiede in beiden Abbildungen farbig hervorgehoben. Im Test führte diese Option aber zu großflächig abgedunkelten Abbildungen, ohne die einzelnen Unterschiede sichtbar zu machen.
Zusammenführung
Aktiviert der Nutzer nach dem Programmstart den Reiter »Merge«, führt P4Merge Dateien zusammen. Dabei unterstützt es den so genannten »Three-way merge« und setzt die Enddatei aus einer Basisdatei und zwei Derivaten aus dieser zusammen.
Folglich fragt die Applikation erst nach der Basisdatei und ihren Derivaten. Danach öffnet P4Merge ein Fenster mit vier Textsegmenten, wobei es die Unterschiede in der Basisdatei und den beiden Derivaten nebeneinander und optisch gekennzeichnet in einer Zeile darstellt. Unten im Programmfenster findet sich der zusammengeführte Text.
Die einzelnen Segmente stellt die Software oberhalb der Textsegmente in einer Baumansicht mit verschiedenen Symbolen dar. Klickt der Nutzer auf ein Symbol für eines der Textderivate, landet es komplett in der zusammengeführten Datei. Eine Warnmeldung begleitet diesen Vorgang und verweist dabei auf die »Undo«-Funktion. Die erreicht der Anwender über den Menüpunkt »Edit« (Abbildung 12).
Eine nützliche Aufgabe, die P4Merge im Gegensatz zu einigen seiner Mitbewerber nicht erledigt, ist das Generieren von Patchdateien, von denen vor allem Entwickler profitieren.
Kompare
Das unter der GNU GPLv2 angebotene Kompare [5] dient als grafisches Frontend für das Kommandozeilen-Programm »diff« und vergleicht Texte und Dateiverzeichnisse miteinander. Die Applikation gehört zum KDE-Programmfundus und lässt sich bequem aus den Software-Repositories der meisten Linux-Distributionen installieren.
Kompare zeigt nach dem Start ein Programmfenster mit zwei Segmenten zur Anzeige der zu vergleichenden Texte oder Ordnerhierarchien an. Unterschiede markiert es mehrfarbig. Zusätzlich zeigt das Fenster in vier kleinen Segmenten die Quell- und Zielpfade sowie die Dateinamen und die Anzahl der vorhandenen Abweichungen an. Eine oben im Fenster horizontal angeordnete Buttonleiste dient zur Navigation, während der Anwender das Programm über eine kleine Menüleiste steuert.
Die Software öffnet nach dem Start zunächst einen KDE-typischen Dialog. In ihm gibt der Nutzer mit Hilfe des KDE-Dateimanagers die zu vergleichenden Dateien und den verwendeten Zeichensatz an. Zusätzlich passt er über das seitlich angebrachte Symbol »Erscheinungsbild« das Aussehen des Programms primär über Fonts und Farbeinstellungen individuell an (Abbildung 13).
Um Abweichungen in den Textdateien leichter zu finden, nummeriert Kompare in beiden Anzeigesegmenten die Zeilen aufsteigend durch. Indem es etwa längere Ergänzungen in einem Textsegment zeilenrichtig mit dem anderen kombiniert, macht es die Unterschiede für den Nutzer sichtbar. Der springt über die Pfeilbuttons in der Symbolleiste am oberen Bildschirmrand schnell zwischen den Abweichungen hin und her.
Zudem offeriert die Buttonleiste ein rudimentäres Bearbeiten: Der Nutzer kann abhängig von der Vergleichsrichtung eine »Abweichung annehmen«, »Alle annehmen«, eine »Annahme rückgängig« machen oder »Alle Änderungen zurücknehmen«.
Übernahmen zeigt das Programm oben rechts im kleinen Fensterbereich der Abweichungen an, passt sie aber in die Tabellenform ein.
Über einen Mausklick auf einen der Einträge springt der Anwender auch innerhalb der Texte über größere Entfernungen hin und her, um etwaige geänderte Passagen einmal mehr zu modifizieren. Über »Datei | Statistik anzeigen« lässt er sich zudem Änderungen und Unterschiede benennen. Ein direktes Bearbeiten des Textes in den einzelnen Segmenten unterstützt Kompare allerdings nicht.
Druck machen
Kompare druckt über den herkömmlichen KDE-Druckdialog im Menü »Datei« auch die Textdateien inklusive der farbig hervorgehobenen Unterschiede und Zeilennummern aus. Eine Druckvorschau ist ebenfalls an Bord. Über die Option »In Datei drucken« lassen sich zusätzlich je nach Systemkonfiguration auch PDF- oder Postscript-Dateien generieren (Abbildung 14).
Patchdateien
Kompare stellt bei Bedarf ebenfalls die für Entwickler interessanten Patch- oder Diffdateien zusammen. Das gelingt über den Menüpunkt »Datei | Diff speichern«. Ein Dialog bietet in diesem Fall unterschiedliche Optionen zum Speichern der Diffdateien an. In ihm erscheint zudem die genaue Befehlszeile – inklusive aller Parameter –, mit der Kompare den Befehl »diff« im Anschluss aufruft. Unterschiedliche Formate gibt der Anwender auf Wunsch ebenfalls hier ein (Abbildung 15).
Über den Menüpunkt »Datei | Diff öffnen« liest die Software nicht zuletzt auch Patchdateien ein. Das verschafft Entwicklern einen besseren Überblick über die vorgenommenen Änderungen.
Meld
Das auf Python und dem GTK+-Toolkit basierende Meld [6] richtet sich ebenfalls vorwiegend an Entwickler und steckt in den Repositories der meisten Linux-Distributionen. Meld steht unter der GNU GPLv2. Neben Texten vergleicht Meld auch Datei- und Ordnerhierarchien und bietet eine Versionskontrollansicht für Entwickler.
Die Applikation startet mit einem Assistenten, dem der Nutzer zunächst per Klick auf einen Button mitteilt, was er vergleichen möchte. Dann wählt er die zu vergleichenden Dateien aus, wobei Meld einen Zwei- und einen Drei-Wege-Vergleich bei Texten und Ordnern anbietet. Die tauchen dann in separaten Segmenten des Programmfensters auf, wobei Meld gefundene Unterschiede farblich hervorhebt (Abbildung 16).
Dabei hinterlegt Meld unterschiedliche Zeilen oder Textteile in verschiedenen Blautönen. Fehlen in einem der Textsegmente komplette Zeilen, zeigt Meld die jeweis zu ergänzende Zeile mit grünem Hintergrund an. Vor den unterschiedlich markierten Zeilen finden sich mittig zwischen den beiden Fenstersegmenten Pfeile nach links und rechts. Ein Klick auf einen davon übernimmt den jeweiligen Text in das andere Textsegment, wo es das vorherige ersetzt oder das fehlende ergänzt. Sind zwei Texte identisch, zeigt Meld eine Hinweismeldung über den Textsegmenten an.
Meld absolviert dank seiner modernen Tab-Oberfläche auf verschiedenen Registern mehrere Vergleiche simultan. Eine kleine Buttonleiste erlaubt eine rudimentäre Navigation. Um wirklich alle Navigationsmöglichkeiten in den Fensterbereichen zu verwenden, nutzt der Anwender das Menü »Änderungen«. Die hier vorhandenen Funktionen dienen nicht nur dazu, zwischen den Unterschieden in den Texten zu navigieren. Sie erlauben es auch, Textbestandteile zu kopieren, zu ziehen und zu schieben. Sprungmarken in Gestalt von Zeilennummern bietet die Ansicht nicht.
Um sich im Text frei zu bewegen, platziert der Nutzer die Maus in den mittleren freien Bereich zwischen die beiden Textsegmente und darf dann scrollen. Der Text scrollt in beiden Textfenstern mit. Die Texte bearbeitet er problemlos in den jeweiligen Fenstersegmenten, wobei das jeweils andere in Echtzeit die Unterschiede anzeigt. Das Menü »Bearbeiten« bietet weitere Funktionen zum Modifizieren.
Eine weitere Möglichkeit, den Text zu bearbeiten, bietet der Menü-Eintrag »Änderungen | Extern öffnen«. Er startet den im Betriebssystem verankerten grafischen Editor und öffnet den Text ohne farbliche Markierungen. Hier stehen nun die üblichen Editierfunktionen bereit. Auf diesem Weg druckt der Anwender die Dateien auch aus, Meld ermöglicht das nicht.
Suchen und patchen
Meld bietet unter dem Menüpunkt »Bearbeiten | Suchen« zudem eine komfortable Suche für Begriffe und Zeichenfolgen. Daneben wartet im Menü »Bearbeiten« eine »Ersetzen«-Option, die auch global funktioniert.
Über »Datei | Als Patch formatieren« legt Meld auch Patchdateien an. Diese Option ruft ein gesondertes Fenster auf den Plan, das die Patchdatei inklusive farbiger Hervorhebungen anzeigt. Mit der gespeicherten Datei aktualisieren Entwickler dann ihre Software (Abbildung 17).
Fazit
Alle besprochenen Programme sind darauf spezialisiert, vorhandene Textunterschiede komfortabel zu analysieren. Optisch gleichen sich die grafischen Anwendungen. Sie bringen meist eine Zwei- oder Drei-Fenster-Ansicht mit sowie eine Menü- und teils auch eine Buttonleiste mit Schnellfunktionen zur Navigation. Alle Testteilnehmer sind zudem in der Lage, die Unterschiede in Verzeichnissen anzuzeigen (Tabelle 1).
|
Beyond Compare |
Eskil |
Guiffy |
P4Merge |
Kompare |
Meld |
|
|---|---|---|---|---|---|---|
|
Lizenz |
proprietär |
GPL/BSD |
proprietär |
proprietär |
GPL |
GPL |
|
Vergleich von |
||||||
|
Texten |
ja |
ja |
ja |
ja |
ja |
ja |
|
Multimedialen Dateien |
ja |
nein |
nein |
eingeschränkt |
nein |
nein |
|
Verzeichnissen |
ja |
ja |
ja |
nein |
ja |
ja |
|
Features |
||||||
|
Assistent |
ja |
nein |
ja |
ja |
ja |
ja |
|
Patchdateien |
ja |
ja |
ja |
nein |
ja |
ja |
|
Zwei-Wege-Merge |
ja |
ja |
ja |
ja |
nein |
ja |
|
Drei-Wege-Merge |
ja |
ja |
ja |
ja |
nein |
ja |
|
Bearbeitungsfunktion |
ja |
ja |
ja |
ja |
nein |
ja |
|
Generieren von PDFs |
nein |
ja |
nein |
nein |
eingeschränkt |
nein |
|
Generieren von HTML-Dateien |
nein |
nein |
ja |
nein |
nein |
nein |
|
Druckfunktion |
nein |
nein |
nein |
nein |
ja |
nein |
Die Unterschiede zeigen sich erst im Detail, denn die Werkzeuge konzentrieren sich meist auf spezielle Nutzergruppen: So eignen sich Meld und Eskil primär für Entwickler, da sie zahlreiche Software-Revisionssysteme wie Git, CVS, Perforce oder Subversion unterstützen. Beyond Compare und P4Merge richten sich hingegen auch an Endanwender, weil sie unter anderem Abbildungen vergleichen können. Beyond Compare beherrscht darüber hinaus auch den Vergleich von Binärdateien.
Differenzen zeigen sich ebenfalls bei den Druck- und Exportfunktionen: Anwender möchten vor allem die Dateien mit den Differenzen ausdrucken oder zumindest als PDF-Datei Plattform- und System-übergreifend speichern.
Das beherrschen nicht alle getesteten Anwendungen. Möchten Entwickler wie Anwender lediglich zuverlässig und deutlich Textunterschiede auf einen Blick erkennen, eignen sich alle Pakete gleichermaßen.
Infos
-
Beyond Compare: https://www.scootersoftware.com
-
Eskil: http://eskil.tcl.tk/index.html/doc/trunk/htdocs/index.html
-
Guiffy: https://www.guiffy.com
-
P4merge: https://www.perforce.com
-
Kompare: https://www.kde.org/applications/development/kompare/
-
Meld: http://meldmerge.org
-
Kdiff3: http://kdiff3.sourceforge.net
-
Diffuse: http://diffuse.sourceforge.net
-
Diff-Merge: https://sourcegear.com/diffmerge/
-
Semantic-Merge: https://www.semanticmerge.com
-
Deltawalker: https://www.deltawalker.com
-
EC-Merge: http://www.elliecomputing.com/en/Products/merge_overview.asp
-
Beyond Compare zum Download: https://www.scootersoftware.com/download.php
-
Eskil-Download: http://eskil.tcl.tk/index.html/doc/trunk/htdocs/download.html
-
Guiffy zum Download: https://www.guiffy.com/download/download.html






















Für Freunde von MELD bzw GTK-Programmen:
MELD lernte ich über den Gnome-Commander kennen (GCMD, “two-pane” graphical file manager, https://gcmd.github.io). Dort läßt sich der Dateivergleich bequem durch Markieren zweier Dateien aufrufen. Feine Sache und beide Tools passen aufgrund ihrer Entwicklung mit GTK gut zusammen. Leider hat es der GCMD aufgrund Nutzung eines (oder mehrerer?) veralteten Pakete nicht mehr ins aktuelle Debian Buster geschafft, wird hoffentlich aber wieder kommen…
Gnome Commander ist wieder in Debian Testing.