Programmierer, Webentwickler und sogar Autoren müssen oft verschiedene Versionen desselben Codes oder Textes vergleichen, um Änderungen zu verfolgen. Eine effiziente Methode hierfür ist ein Diff-Tool - eine Anwendung, die Dateien oder Ordner vergleicht, Unterschiede zwischen ihnen aufzeigt und Ihnen beim Erstellen einer neuen Datei hilft, indem Sie ihre Versionen zusammenführen oder patchen. Im Allgemeinen können Sie Dateien unter Linux entweder mit einem Befehlszeilentool oder mit einer eigenständigen Anwendung vergleichen.

Diff, Colordiff und Wdiff

Diff

Das Befehlszeilendienstprogramm diff ist Teil des Pakets "diffutils", das in den Repositorys jeder größeren Linux-Distribution vorhanden ist. Es ist ein einfaches Tool, das Dateien Zeile für Zeile vergleicht und Dateien in zwei Ordnern vergleichen kann. Wenn die ausgewählten Dateien identisch sind, druckt diff keine Ausgabe, und Sie können seine Optionen optimieren (z. B. um Leerzeichen oder Groß- / Kleinschreibung zu ignorieren).

Die allgemeine Syntax ist

 diff -option Dateiname1 Dateiname2 

Die Ergebnisse können in zwei Spalten mit der Option -y oder - --side-by-side . Holen Sie sich die vollständige Liste der Diff-Optionen, indem Sie Folgendes eingeben:

 diff - helfen 

Das "diffutils" -Paket enthält auch diff3 - ein Werkzeug, das drei Dateien vergleichen und drei Versionen einer Datei zusammenführen kann. Eine gute Anleitung, um das Beste aus Diff zu machen, finden Sie auf der offiziellen Website.

Colordiff

Colordiff ist technisch gesehen ein "Wrapper" oder ein Skript, das die Ausgabe von diff ändert, indem es entsprechend Ihrer Präferenzen in der Konfigurationsdatei eingefärbt wird ("/ etc / colordiffrc" oder "/home/user/.colordiffrc"). Das colordiff-Paket ist in den Repositorys der meisten Distributionen verfügbar.

Colordiff hat die gleichen Optionen wie diff, und Sie können es entweder direkt verwenden, indem Sie Folgendes eingeben:

 colordiff -options Dateiname1.txt Dateiname2.txt 

oder indem man den Ausgang von diff dorthin leitet:

 diff -u Dateiname1.txt Dateiname2.txt | colordiff 

Wdiff

Ein anderes ähnliches und etwas spezielleres Werkzeug ist wdiff das Dateien Wort für Wort vergleichen kann (es definiert ein Wort als etwas, das von Leerraum umgeben ist). Wdiff kann Groß- / Kleinschreibung ignorieren ( -i ), Statistiken ( -s ) über Änderungen in bestimmten Dateien bereitstellen und Unterschiede zur Formatierung ( -p ) hervorheben. Sie können auch colordiff und wdiff kombinieren, um eine farbkodierte Übersicht der Wortunterschiede zwischen Dateien zu erhalten:

 wdiff -n Dateiname1.txt Dateiname2.txt | colordiff 

Beachten Sie, dass Sie den vollständigen Pfad eingeben müssen, wenn sich Dateien nicht im aktiven Ordner befinden. Um mehr über wdiff zu erfahren, besuchen Sie die offizielle Website.

Diff-Modi in Vim und Emacs

Die beliebten Texteditoren Vim und Emacs haben beide einen eingebauten Diff-Modus. Um es in Vim zu aktivieren, können Sie das Programm mit dem Befehl vimdiff und bis zu vier Dateien zum Vergleichen hinzufügen:

 vimdiff Datei1 Datei2 [Datei3 [Datei4]] 

Vim öffnet jede Datei in einem separaten Fenster und hebt die Unterschiede hervor. Sie können konfigurieren, wie Sie jedes Fenster für eine bessere Übersicht aufteilen.

Emacs-Benutzer können zwischen einer Diff-Erweiterung (genannt "Hauptmodus") oder Ediff wählen, einem etwas fortgeschritteneren Modus, mit dem Sie verglichene Dateien interaktiv ändern können. Ähnlich wie Vim kann Emacs Dateien in separaten Fenstern nebeneinander anzeigen und die Unterschiede hervorheben. Sie können es auch zum Zusammenführen von Dateien verwenden, und es funktioniert auch mit komprimierten Dateien.

Beide Texteditoren haben eine relativ komplexe Syntax, die etwas Lernen erfordert, aber sie zahlt sich aus, da sie sehr leistungsfähig und vollständig anpassbar sind.

Kdiff3

Kdiff3 ist ein grafisches Frontend für diff, was bedeutet, dass es diff und alle seine Optionen bietet. Sie können zwei Dateien mit einer Basisdatei vergleichen und ganze Ordner, Dateien oder nur ausgewählte Textteile zusammenführen, teilen und verbinden. Kdiff3 lässt sich gut in KDE integrieren (unterstützt Dolphin-Service-Menüs), funktioniert aber auf allen Linux-Distributionen, Windows und Mac OS X. Im Dialogfeld "Einstellungen -> Kdiff3 konfigurieren" können Sie Parameter für den Dateivergleich in Ordnern (nach Datum, Größe) festlegen, binärer Vergleich oder vollständiger Inhalt) und zwischen Dateien (Groß- / Kleinschreibung, Zahlen und Leerraum ignorieren). Sie können die Umbruch- und Zeilennummern für eine bessere Übersicht umschalten und die Farbeinstellungen anpassen, um die Unterschiede zu markieren.

Das Tolle an Kdiff3 ist, dass Sie Text aus jeder Datei direkt in das Hauptfenster einfügen können, sodass Sie keine Dateien erstellen müssen, wenn Sie Text "on-the-fly" vergleichen möchten. Ein ausführliches Kdiff3-Handbuch ist online verfügbar.

Diffus

Auf den ersten Blick scheint es einfach zu sein, aber Diffuse ist genauso leistungsfähig wie andere Werkzeuge auf dieser Liste. Es kann eine unbegrenzte Anzahl von Dateien in einer Side-by-Side-Ansicht vergleichen und die Unterschiede zusammenfassen. Sie können Dateien direkt aus Diffuse bearbeiten und Zusammenführungen und Zeilenabgleich durchführen. Es unterstützt auch (begrenzte) Syntaxhervorhebung und bietet die Integration mit verschiedenen Versionskontrollsystemen - einschließlich Git, Mercurial und Subversion - um Dateien synchron zu halten. Diffuse funktioniert unter Linux, Windows und Mac OS X, und Sie können die Installationspakete von der Projektwebsite herunterladen.

Diffmerge

Diese Anwendung funktioniert unter Linux, Windows und OS X, integriert sich gut in Windows Explorer und bietet Installer-Pakete für einige Distributionen. Sie können Dateien in Diffmerge bearbeiten, Dateiversionen automatisch zusammenführen und Unterschiede in eine neue Datei exportieren. Er kann bis zu drei Dateien und zwei Ordner vergleichen und anzeigen, ob die Dateien identisch sind. Dies kann nützlich sein, wenn geprüft wird, ob eine Rsync-Sicherung korrekt ausgeführt wurde.

Im Einstellungsdialog können Sie benutzerdefinierte Regeln für die Handhabung verschiedener Dateitypen definieren. Diffmerge ist kostenlos, wird aber gelegentlich nach einem kostenpflichtigen Registrierungsschlüssel fragen. Dies könnte einige Benutzer abweisen; Zum Glück können sie ein anderes Werkzeug aus dieser Liste wählen, da sie alle mehr oder weniger die gleichen Optionen bieten.

Meld

Meld packt Features aus anderen Diff-Tools in eine von Python erstellte Schnittstelle. Sie können die Quell- und die Windows-Version herunterladen und das Paket in den Repositories finden, wenn Sie ein Ubuntu-, Fedora- oder SUSE-Benutzer sind. Eine tolle Sache bei Meld ist, dass Sie es nicht installieren müssen - führen Sie einfach die ausführbare Datei aus und verwenden Sie sie als portable Anwendung.

Meld unterstützt die Bearbeitung von Dateien, das Filtern mit regulären Ausdrücken, das Vergleichen und Zusammenführen von drei Dateien sowie den Vergleich von zwei oder drei Ordnern und deren Inhalten und bietet außerdem eine hilfreiche Visualisierung der Unterschiede mithilfe von Pfeilen und Farbcodierung. Wenn Sie ein Versionskontrollsystem wie Git, Mercurial oder SVN verwenden, kann Meld Ihre Dateien verwalten, nach Änderungen suchen und Commits und Updates durchführen. Meld wird regelmäßig aktualisiert, so dass wir in zukünftigen Versionen auf neue Funktionen hoffen können.

Andere Optionen

Wenn Sie keine neue Anwendung für diesen Zweck installieren möchten und keine erweiterten Dateivergleichsfunktionen benötigen, können Sie einige der vielen Online-Diff-Tools ausprobieren, die kostenlos sind und nur einen Webbrowser benötigen.

Verwenden Sie ein Diff-Tool, das nicht in dieser Liste enthalten ist? Erzähl uns darüber in den Kommentaren.

Bildnachweis: Teaser Bildquelle