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.
Wenn Sie sehen wollen, welche Änderungen Sie selbst in Ihrer Arbeitskopie haben, verwenden Sie das Kontextmenü des Explorers und wählen Sie → .
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 Sie → . 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 Markierungen oder auch eine Verzweigung und den Stamm auswählen. Das Kontextmenü bietet Ihnen dann die Option an, diese Bäume zu vergleichen . Lesen Sie weiter in „Ordner vergleichen“.
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 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 → . 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.
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 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“.
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 aus dem Kontextmenü.
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ü → wählen.
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 → . 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.
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.
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.
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.
Wenn Sie zwei Bäume im Projektarchivbetrachter markieren oder wenn Sie zwei Revisionen einer Datei im Logdialog wählen, können Sie → 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 die Liste der geänderten Dateien in eine Textdatei oder auch die Änderungen selbst in einen Ordner exportieren. Die Aktion wird nur mit den gewählten Dateien durchgeführt, so dass sie nur die gewünschten Dateien - meistens alle - zu markieren brauchen.
Wenn Sie die Liste der Dateien und der Aktionen (verändert, hinzugefügt, gelöschte) exportieren wollen, können Sie mit Hilfe der Tastaturkürzel Strg-A alle Einträge markieren und mit Strg-C die Liste in die Zwischenablage kopieren.
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.
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.
→ 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 → 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 zwei voreingestellten Werten um, die durch Marken an beiden Seiten des Schiebers angezeigt werden. Per Vorgabe steht eine Marke am oberen und eine am unteren Ende des Schiebers, so dass zwischen den beiden Bildern hin und her geschaltet wird. Sie können die Marken mit der Maus auf die beiden Helligkeitswerte setzen, zwischen denen Sie umschalten möchten.
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.
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 ist ein großartiger Open Source Vergleichs- und Konflikteditor, der auch mit Verzeichnissen umgehen kann.
Perforce ist ein kommerzielles Versionskontrollsystem, aber Sie können den Vergleichs- und Konflikteditor kostenlos nutzen. Weitere Informationen finden sich auf der Perforce Webseite.
KDiff3 ist ein freier Vergleichs- und Konflikteditor, der auch Verzeichnisse vergleichen kann. Den Download finden Sie hier.
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.
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 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.
Dieser Texteditor bietet farbige Syntaxhervorhebung für Standard-Diffs, was diese leichter lesbar macht. Sie können ihn hier herunterladen.
Notepad2 ist dazu gedacht, das normale Windows Notepad zu ersetzen und basiert auf dem Open Source Scintilla Edit Control. Außer zum Betrachten von Standard-Diffs ist es viel besser als das normale Notepad. Sie können es hier herunterladen.
Lesen Sie „Einstellungen für externe Programme“ für Informationen wie Sie diese Programme in TortoiseSVN einbinden/einrichten können.