Textdateien
Beim Vergleich von Dateien im Textmodus können Sie das Vergleichsergebnis entweder im Text- oder XML-Format anzeigen. Werfen Sie zum besseren Verständnis der Art, wie DiffDog Server Unterschiede zwischen Textdateien anzeigt, einen Blick auf die folgenden zwei Textdateien, die Seite an Seite nebeneinander verglichen werden.
apples peaches grape bananas strawberries | apples nuts peaches grapes bananas |
file1.txt | file2.txt |
Anmerkung: | Bei den Dateien in diesem Beispiel handelt es sich um Textdateien mit der Erweiterung .txt; es können jedoch auch andere Nicht-Binärdateien wie .html, .json, .js, .cs usw. verglichen werden. |
Wenn die Dateien mit einem Vergleichstool wie DiffDog über eine grafische Benutzeroberfläche verglichen werden, werden die Unterschiede zwischen den beiden Dateien wie unten gezeigt, dargestellt. Wie Sie in der Abbildung unten sehen, gibt es insgesamt drei Unterschiede: Eine Zeile wurde hinzugefügt, eine geändert und eine gelöscht.
DiffDog-Vergleichsbericht
In DiffDog Server können Sie diese beiden Dateien mit dem folgenden Befehl vergleichen:
<executable> diff file1.txt file2.txt --mode=text --output-mode=text --output-file=report.txt |
Anmerkung: | Mit der Option --mode wird das Programm angewiesen, die verglichenen Dateien als Text (und nicht als XML- oder Binärdateien) zu behandeln. Über die Option --output-mode können Sie das Format des Vergleichsberichts (Text oder XML) definieren. |
In dem nach Ausführung des Vergleichs erzeugten Textbericht werden die Unterschiede folgendermaßen angegeben:
1a2 > nuts 3c4 < grape --- > grapes 5d5 < strawberries |
DiffDog Server-Vergleichsbericht (Text)
"a" im obigen Bericht kennzeichnet eine Hinzufügung, "c" eine Änderung und "d" eine Löschung. Das Zeichen ">" verweist auf die rechte Seite des Vergleichs, "<" auf die linke Seite des Vergleichs. Die Ergebnisse sind als Anweisungen zu verstehen, die befolgt werden müssten, um beide Dateien einander anzugleichen. Dabei bedeutet:
•1a2: "Füge nach Zeile 1 in der linken Datei Text hinzu, um ihn an den Text in Zeile 2 der rechten Datei anzugleichen". In der nächsten Zeile wird der genaue Text angezeigt, der hinzugefügt werden muss - in diesem Fall der Text "nuts" aus der rechten Datei.
•3c4: "Ersetze Zeile 3 aus der linken Datei durch Zeile 4 aus der rechten Datei". In den nächsten Zeilen wird der entsprechende Inhalt aus beiden Dateien, getrennt durch "---" angezeigt.
•5d5: "Lösche Zeile 5 aus der linke Datei, um diese an Zeile 5 aus der rechten Datei anzugleichen". In der nächsten Zeile wird der zu löschende Text angezeigt (in diesem Fall "strawberries").
XML-Bericht
Sie können dieselben beiden Dateien auch vergleichen und den Bericht in Form einer XML-Datei erhalten. Führen Sie dazu den folgenden Befehl aus:
<executable> diff file1.txt file2.txt --mode=text --output-mode=xml --output-file=report.xml |
Wenn Sie XML als Berichtsformat wählen, wird derselbe Bericht folgendermaßen ausgegeben:
<?xml version="1.0" encoding="UTF-8"?> |
DiffDog Server-Vergleichsbericht (XML)
Der XML-Bericht enthält ganz oben das Element diff_info. Das Element diff_info enthält Informationen über verglichene Dateien (darunter den Vergleichsmodus und den Pfad der verglichenen Dateien). Dieses Element kommt nur einmal vor. Das Attribut comparison_mode gibt Auskunft über den Wert der Option --mode zum Zeitpunkt des Vergleichs; dies ist auch nützlich, wenn Sie wissen müssen, welcher Standardvergleichsmodus von DiffDog Server verwendet wird, wenn in der Befehlszeile keine --mode-Option definiert wurde.
Als nächstes werden dieselben drei Unterschiede wie im Textbericht aufgelistet. Die Informationen über die vorhandenen Unterschiede werden mit Hilfe der Attribute left_location und right_location angegeben, während der eigentliche Inhalt innerhalb der Elemente left_content oder right_content steht. In diesem Beispiel bildet jeder Unterschied eine Zeile (line). Ein Unterschied umfasst aber nicht immer eine einzige Zeile, sondern kann in einige Fällen auch aus mehreren Zeilen bestehen - in solchen Fällen würde der Bericht mehrere aufeinander folgende line-Elemente enthalten.