Unterschiede anzeigen

Eine der häufigsten Anforderungen in der Projektarbeit ist herauszufinden, was sich geändert hat. Entweder möchten Sie die Unterschiede zwischen zwei Revisionen derselben Datei sehen oder aber die Unterschiede zwischen zwei verschiedenen Dateien. TortoiseSVN bietet Ihnen mit TortoiseMerge ein Programm an, das die meisten Anforderungen erfüllt, erlaubt es ihnen aber auch, ein eigenes Programm zum Anzeigen und Bearbeiten von Differenzen zu verwenden. Um Unterschiede von Bilddateien zu erkennen bietet TortoiseSVN ebenfalls ein Programm namens TortoiseIDiff an.

Datei-Unterschiede

Lokale Änderungen

Wenn Sie sehen wollen, welche Änderungen Sie selbst in Ihrer Arbeitskopie haben, verwenden Sie das Kontextmenü des Explorers und wählen Sie TortoiseSVNVergleiche.

Unterschiede zu einem anderen Zweig

Wenn Sie sehen wollen, was sich im Stamm (wenn Sie auf einem Zweig arbeiten) oder in einem bestimmten Zweig (wenn Sie am Stamm arbeiten) geändert hat, können Sie das Explorer Kontextmenü verwenden. Halten Sie die Umsch Taste gedrückt, währen Sie einen Rechtsklick auf die Datei machen. Dann wählen SieTortoiseSVNVergleich mit URL. Im folgenden Dialog geben Sie die URL im Projektarchiv an, mit der Sie die lokale Datei vergleichen wollen.

Sie können auch den Projektarchivbetrachter zum Vergleich zweier Bäume verwenden, indem Sie zwei Marken oder auch einen Zweig und den Stamm auswählen. Das Kontextmenü bietet Ihnen dann die Option an, diese Bäume zu vergleichen Compare revisions. Lesen Sie weiter in „Ordner vergleichen“.

Unterschiede zu einer früheren Revision

Wenn Sie die Unterschiede zwischen einer bestimmten Revision und Ihrer Arbeitskopie sehen wollen, lassen Sie sich den Log-Dialog anzeigen, markieren dort die gewünschte Revision und wählen Vergleiche mit Arbeitskopie aus dem Kontextmenü.

Wenn Sie den Unterschied zwischen der letzten übertragenen Revision und Ihrer Arbeitskopie, unter der Annahme, dass die Arbeitskopie noch nicht verändert wurde, sehen wollen, machen Sie einen Rechtsklick auf die Datei. Dann wählen Sie TortoiseSVNVergleiche mit vorheriger Revision. Dadurch führen Sie einen Vergleich mit der Revision vor dem letzten, in Ihrer Arbeitskopie gespeicherten, Übertragungszeitpunkt und der Arbeitskopie BASE Revision durch. Dieser Vergleich reflektiert die Änderungen, durch die Ihre Arbeitskopie aktualisiert wurde. Sie sehen keine Änderungen neueren Datums.

Unterschiede zwischen zwei vorherigen Revisionen

Wenn Sie die Unterschiede zwischen zwei bereits übertragenen Revisionen sehen wollen, öffnen Sie den Log-Dialog und markieren Sie die beiden Revisionen mit gedrückter Strg Taste. Dann wählen Sie Revisionen vergleichen aus dem Kontextmenü.

Wenn Sie diese Option für das Log eines Ordners wählen, erscheint ein weiterer Dialog, der die geänderten Dateien anzeigt und Ihnen weitere Vergleichsoptionen anbietet. Lesen Sie mehr dazu in „Ordner vergleichen“.

Alle Änderungen einer Übertragung

Wenn Sie die Änderungen in allen Dateien in einer bestimmten Revision auf einen Blick sehen wollen, verwenden Sie das Standard-Diff (GNU Patch). Dieses Format zeigt nur die Unterschiede mit ein paar Zeilen Kontext an. Es ist schwieriger zu lesen als ein visueller Vergleich, aber es zeigt alle Änderungen auf einmal. Markieren Sie dazu im Log-Dialog die gewünschte Revision und wählen Sie Zeige Unterschiede als Standard-Diff aus dem Kontextmenü.

Unterschiede zwischen Dateien

Wenn Sie die Unterschiede zwischen zwei Dateien sehen wollen, können Sie das direkt im Explorer tun, indem Sie die beiden Dateien markieren und aus dem Explorer Kontextmenü TortoiseSVNVergleiche wählen.

Wenn die zu vergleichenden Dateien sich nicht im selben Ordner befinden, verwenden Sie den Befehl TortoiseSVNSpäter vergleichen, um die erste Datei für den Vergleich zu markieren. Dann wechseln Sie zur zweiten Datei und rufen TortoiseSVNVergleiche mit "Pfad/der/markierten/Datei" auf. Um die gemerkte Datei zu löschen, halten Sie die Strg Taste gedrückt, während Sie TortoiseSVNSpäter vergleichen wählen.

Unterschiede zwischen Arbeitskopie Datei/Ordner und URL

Wenn Sie die Unterschiede zwischen einer Datei in der Arbeitskopie und einer Datei im Subversion Projektarchiv sehen möchten, können sie das erreichen, indem Sie die Umsch Taste drücken, während sie einen Rechtsklick auf die Datei machen. Wählen sie dann TortoiseSVNVergleichen mit URL. Sie können diese Aktion ebenso für einen Ordner in der Arbeitskopie durchführen. TortoiseMerge wird Ihnen die Unterschiede wie eine Patchdatei anzeigen - eine Liste von Dateien, die Sie einzeln betrachten können.

Unterschied mit Annotierungsinformation

Wenn Sie nicht nur die Unterschiede, sondern auch Autor, Revision und Datum der Änderung sehen wollen, können Sie Vergleichen und Annotieren über den Log-Dialog miteinander kombinieren. Lesen Sie „Unterschiede annotieren“ für weitere Informationen.

Unterschiede zwischen Ordnern

Die mit TortoiseSVN gelieferten Programme unterstützen keinen Vergleich von Verzeichnissen. Wenn Sie über ein externes Programm verfügen, das diese Funktionalität bietet, können Sie das stattdessen benutzen. In „Externe Programme“ stellen wir Ihnen einige Programme vor, die wir mit TortoiseSVN getestet haben.

Wenn Sie ein externes Vergleichsprogramm konfiguriert haben, können Sie die Umsch-Taste beim Vergleichen drücken, um das alternative Vergleichsprogramm aufzurufen. Lesen Sie in „Einstellungen für externe Programme“ nach, wie weitere Vergleichsprogramme eingerichtet werden.

Zeilenende- und Leerzeichenoptionen

Manchmal werden Sie während eines Projektes die Zeilenenden von CRLF auf LF umstellen oder Sie werden die Einrückung eines Abschnitts ändern. Unglücklicherweise wird dadurch eine große Anzahl Zeilen als verändert markiert obwohl diese Unterschiede die Bedeutung des Programmcodes nicht beeinflussen. Mit den folgenden Optionen können Sie einstellen, wie diese Unterschiede beim Vergleichen behandelt werden sollen. Sie finden die Einstellungen in den Zusammenführen- und Annotieren-Dialogen sowie in den Einstellungen für TortoiseMerge.

Ignoriere Zeilenende schließt Änderungen aus, die nur aus unterschiedlichen Zeilenumbrüchen bestehen.

Vergleiche Leerzeichen schließt Änderungen in Leerzeichen und Einrückung als gelöschte / hinzugefügte Zeilen ein.

Ignoriere Änderungen in Leerzeichen schließt Änderungen in der Anzahl oder dem Typ von Leerzeichen, z.B. Änderung der Einrückung oder Wechsel von Tab zu Leerzeichen aus. Komplett neue oder vollständig gelöschte Leerzeichen werden weiterhin als Änderung angezeigt.

Ignoriere alle Leerzeichen schließt sämtliche Änderungen, die nur aus Leerzeichen bestehen, aus.

Selbstverständlich wird jede Zeile mit geänderten Inhalten stets als Differenz angezeigt.

Ordner vergleichen

Abbildung 4.29. Der Dialog zum Vergleichen von Revisionen

Der Dialog zum Vergleichen von Revisionen


Wenn Sie zwei Bäume im Projektarchivbetrachter markieren oder wenn Sie zwei Revisionen einer Datei im Logdialog wählen, können Sie KontextmenüRevisionen vergleichen aufrufen.

Dieser Dialog zeigt eine Liste aller Dateien, die geändert wurden und erlaubt Ihnen, sie mit Hilfe des Kontextmenüs einzeln zu Vergleichen oder zu annotieren.

Sie können einen Änderungsbaum exportieren. Das ist nüztlich, wenn Sie jemandem Ihre Projektstruktur schicken wollen, die aber nur die geänderten Dateien enthalten soll. Diese Funktion arbeitet nur auf den markierten Dateien. Das bedeutet, dass Sie die gewünschten Dateien - normalerweise alle - markieren und dann per KontextmenüExportiere Auswahl in... in den im folgenden Dialog abgefragten Ort herausschreiben.

Sie können auch die Liste der geänderten Dateien in eine Textdatei herausschreiben, indem Sie KontextmenüSpeichere Liste der gewählten Dateien in... wählen.

Wenn Sie die Liste der Dateien und der Aktionen (verändert, hinzugefügt, gelöschte) exportieren wollen, können Sie dies KontextmenüAuswahl in Zwischenablage kopieren erreichen.

Die obere Schaltfläche ermöglicht es Ihnen, die Richtung des Vergleichs festzulegen. Sie können sich entweder die Änderungen anzeigen lassen, um von A nach B zu kommen oder umgekehrt.

Die Schaltflächen mit den Revisionsnummern dienen dazu, einen anderen Revisionsbereich auszuwählen. Wenn Sie den Bereich ändern, wird die Liste der Objekte, die sich darin geändert haben, aktualisiert.

Wenn die Liste der Dateien sehr lang ist, kann sie mit Hilfe des Suchfeldes auf die Dateien mit einer bestimmten Zeichenfolge beschränkt werden. Es wird eine einfache Textsuche durchgeführt. Wenn Sie z.B. nur C Quelltexte angezeigt haben wollen, geben Sie .c anstatt *.c ein.

Bilder mit TortoiseIDiff vergleichen

Es gibt viele Programme, einschließlich unseres TortoiseMerge, mit denen Unterschiede zwischen Textdateien angezeigt werden können. Wir haben uns aber schon des öfteren zu sehen gewünscht, wie sich ein Bild geändert hat. Deshalb haben wir TortoiseIDiff entwickelt.

Abbildung 4.30. Ein Programm zum Vergleichen von Bildern

Ein Programm zum Vergleichen von Bildern


TortoiseSVNVergleich für jedes übliche Bildformat, wird TortoiseIDiff starten, um die Unterschiede anzuzeigen. In der Standardansicht werden die Bilder nebeneinander dargestellt. Mit der Symbolleiste oder dem Menü können Sie die Bilder auch übereinander darstellen beziehungsweise überlagern. Der Schieber ermöglicht es Ihnen, die Transparenz der Überlagerung einstellen.

Außerdem können Sie die Ansicht vergrößern oder verkleinern und den aktuellen Bildausschnitt mit der Maus verschieben. Wenn Sie Bilder verknüpfen aktivieren, werden die Bewegungssteuerelemente (Rollbalken, Mausrad) der Bilder miteinander verknüpft.

Die Infobox im Bild zeigt Details, wie Größe, Auflösung und Farbtiefe des Bildes an. Wenn sie Ihnen im Weg liegt, kann sie mit AnsichtBildinformation ausgeblendet werden. Die Bildinformation wird als Hinweistext angezeigt, wenn Sie mit der Maus über den Bildtitel fahren.

Wenn die Bilder überlagert sind, wird die relative Intensität der Bilder (Alpha Überblendung) durch einen Schieber am linken Rand gesteuert. Sie können direkt auf den Schieber klicken, um einen Wert einzustellen, Sie können den Schieber auf einen bestimmten Wert ziehen oder per Strg+Umsch-Mausrad einstellen.

Die Schaltfläche oberhalb des Schiebers schaltet zwischen 0% und 100% Überblendung um. Wenn Sie die Schaltfläche doppelklicken, wird die Überblendung im Sekundentakt umgeschaltet, bis Sie die Schaltfläche erneut betätigen. Diese Funktion kann ihnen helfen, kleine Änderungen in Bildern zu entdecken.

Manchmal möchten Sie lieber die Unterschiede anstatt einer Überblendung angezeigt bekommen, z.B. weil Sie das Layout zweier Versionen einer Platine miteinander vergleichen wollen. Wenn Sie die Überblendung deaktivieren, werden stattdessen die Unterschiede durch ein XOR der Bildpunkte hervorgehoben. Änderungen werden dadurch farbig, unveränderte Bereiche Weiß dargestellt.

Office-Dokumente vergleichen

Wenn Sie nicht-Text-Dokumenten vergleichen wollen, müssen Sie normalerweise die Software verwenden, mit der das Dokument erstellt wurde, da diese das Dateiformat kennt. Für die häufig verwendeten Microsoft Office und Open Office Programme existiert in der Tat einige Unterstützung für das Anzeigen von Unterschieden und TortoiseSVN enthält Skripte, die diese mit den richtigen Einstellungen aufrufen, wenn Sie Dateien mit bekannten Erweiterungen vergleichen. Sie können sehen, welche Erweiterungen unterstützt werden und Ihre eigenen hinzufügen indem Sie TortoiseSVNEinstellungen klicken und die Erweitert... Seite im Abschnitt Externe Programme aufrufen.

Probleme mit Office 2010

Wenn Sie die Click-to-Run Version von Office 2010 installiert und versuchen, Dokumente zu vergleichen, erhalten Sie möglicherweise eine Fehlermeldung des Windows Script Host, die etwa wie folgt lautet: ActiveX-Komponente kann Objekt nicht erstellen: word.Application. Es scheint, dass Sie die MSI-basierte Version von Office verwenden müssen, um die Diff-Funktionalität zu erhalten.

Externe Programme

Wenn TortoiseMerge nicht all das kann, was Sie benötigen, versuchen Sie es doch mit einem der vielen Open Source und kommerziellen Programme. Jeder hat seine Lieblingsanwendung und diese Liste ist keinesfalls vollständig, aber hier sind ein paar Beispiele, die Sie sich anschauen sollten:

WinMerge

WinMerge ist ein großartiger Open Source Vergleichs- und Konflikteditor, der auch mit Verzeichnissen umgehen kann.

Perforce Merge

Perforce ist ein kommerzielles Versionskontrollsystem, aber Sie können den Vergleichs- und Konflikteditor kostenlos nutzen. Weitere Informationen finden sich auf der Perforce Webseite.

KDiff3

KDiff3 ist ein freier Vergleichs- und Konflikteditor, der auch Verzeichnisse vergleichen kann. Den Download finden Sie hier.

SourceGear DiffMerge

SourceGear Vault ist ein kommerzielles Versionskontrollsystem, aber Sie können den Vergleichs- und Konflikteditor kostenlos nutzen. Weitere Informationen finden sich auf der from SourceGear.

ExamDiff

ExamDiff Standard ist Freeware. Es kann Dateien, aber keine Verzeichnisse vergleichen. ExamDiff Pro ist Shareware und hat eine Menge an Extras einschließlich dem Vergleichen von Verzeichnissen und der Möglichkeit des Editierens. In beiden Ausführungen ab Version 3.2 ist auch Unterstützung für Unicode vorhanden. Sie können sie von PrestoSoft herunterladen.

Beyond Compare

Dies ist ähnlich wie ExamDiff Pro eine exzellente Shareware, die auch Verzeichnisse vergleichen kann und Unicode-Unterstützung besitzt. Sie können sie von Scooter Software herunterladen.

Araxis Merge

Araxis Merge ist ein sehr nützliches kommerzielles Programm, das sowohl Vergleichen als auch Zusammenführen von Dateien und Ordnern unterstützt. Es kann einen Drei-Wege Vergleich beim Zusammenführen und besitzt Abgleichsfunktionen falls Sie die Reihenfolge von Programmblöcken vertauscht haben. Sie können es von Araxis herunterladen.

Lesen Sie „Einstellungen für externe Programme“ für Informationen wie Sie diese Programme in TortoiseSVN einbinden/einrichten können.