Log-Dialog

Für jede Änderung, welche sie machen und zum Projektarchiv übertragen müssen Sie eine Logmeldung eingeben, welche die Änderung beschreibt. Damit können Sie später herausfinden, welche Änderungen wer wann gemacht hat. Auf diese Weise haben Sie eine detaillierte Aufzeichnung über den Fortschritt Ihres Projektes.

Der Log-Dialog lädt alle diese Logmeldungen aus dem Projektarchiv und zeigt Ihnen diese, einschließlich einer Liste der Dateien welche in jeder Übertragung verändert wurden. Die Anzeige ist in drei Bereiche aufgeteilt.

Aber das ist noch nicht alles - der Log-Dialog stellt auch viele Funktionen zur Verfügung mit denen Sie noch mehr und noch detailliertere Informationen über die Projektgeschichte herausfinden können.

Den Log-Dialog starten

Abbildung 5.15. Der Log-Dialog

Der Log-Dialog


Es gibt mehrere Orte, von denen Sie den Log-Dialog starten können:

  • Aus dem TortoiseSVN Kontextmenü.

  • Aus der Eigenschaftsseite

  • Aus dem Fortschritts-Dialog, nachdem eine Aktualisierung beendet wurde. Dann jedoch zeigt der Log-Dialog nur die Einträge, welche seit Ihrer letzten Aktualisierung gemacht wurden.

Aktionen im Revisionslog

Der obere Bereich enthält eine Aktionen Spalte, in der Symbole die Änderungen einer Revision zusammenfassen. Es gibt vier verschiedene Symbole, die jeweils in einer eigenen Spalte angezeigt werden.

in der ersten Spalte zeigt an, dass in einer Revision eine Datei oder ein Ordner geändert wurde.

in der zweiten Spalte zeigt an, dass in einer Revision eine Datei oder ein Ordner neu zur Versionskontrolle hinzugefügt wurde.

in der dritten Spalte zeigt an, dass in einer Revision eine Datei oder ein Ordner aus der Versionskontrolle gelöscht wurde.

in der vierten Spalte zeigt an, dass in einer Revision eine Datei oder ein Ordner ersetzt wurde.

Zusätzliche Informationen erhalten

Abbildung 5.16. Das Kontextmenü des Log-Dialogs

Das Kontextmenü des Log-Dialogs


Der obere Bereich des Log-Dialogs besitzt ein Kontextmenü das Ihnen Zugriff auf weitere Informationen ermöglicht. Einige Funktionen stehen nur bei Dateien, andere bei Ordnern zur Verfügung.

  • Ein Vergleichsprogramm starten, um Ihnen die Änderungen, die seit der gewählten Revision vorgenommen worden, anzuzeigen. Das mit TortoiseSVN installierte Vergleichsprogramm ist TortoiseMerge. Wurde der Log-Dialog für ein Verzeichnis aufgerufen, so wird in TortoiseMerge eine Liste der geänderten Dateien angezeigt. Aus dieser Liste können Sie einen Eintrag wählen, um die Änderungen für jede Datei einzeln zu betrachten.

  • Die Änderungen an allen Dateien in der gewählten Revision im Standard-Diff (GNU Patch) Format anzeigen. 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.

  • Die gewählte Revision mit der vorherigen Revision vergleichen. Dies funktioniert ähnlich wie ein Vergleich mit Ihrer Arbeitskopie.

  • Nur für Dateien: Die gewählte Revision sowie die BASE Version annotieren und das Ergebnis in einem Vergleichsprogramm darstellen. Lesen Sie „Unterschiede annotieren“ für weitere Informationen.

  • Nur für Ordner: Die gewählte sowie die vorherige Revision annotieren und das Ergebnis in einem Vergleichsprogramm darstellen.

  • Nur für Dateien: Die gewählte Revision speichern, so dass Sie eine ältere Version der Datei erhalten.

  • Nur für Dateien: Die markierte Datei entweder mit dem Standardprogramm für den Dateityp oder mit einem von Ihnen gewählten Programm öffnen.

  • Nur für Dateien: Die Datei bis zur gewählten Revision annotieren.

  • Den Projektarchivbetrachter öffnen, um das markierte Objekt in der gewählten Revision des Projektarchivs zu betrachten.

  • Einen Zweig oder eine Markierung für die gewählte Revision erstellen. Dies ist nützlich für den Fall, dass sie vergessen haben eine bestimmte Version Ihres Projektes zu markieren und Sie seitdem bereits weitere Änderungen in das Projektarchiv übertragen haben.

  • Ihre Arbeitskopie auf eine bestimmte Revision aktualisieren. Nützlich wenn Sie möchten dass Ihre Arbeitskopie einen Zustand in der Vergangenheit enthält. Es ist am besten, ein komplettes Arbeitsverzeichnis und nicht nur eine einzelne Datei zu aktualisieren, da andernfalls Ihre Arbeitskopie inkonsistent sein wird und Sie keine Änderungen übertragen können.

  • Änderungen in einer bestimmten Revision rückgängig machen. Die Änderungen werden in Ihrer Arbeitskopie rückgängig gemacht, das Projektarchiv selbst bleibt unverändert! Beachten Sie bitte, dass nur die Änderungen dieser Revision rückgängig gemacht werden. In Ihrer Arbeitskopie werden die Dateien mit der gewählten Revision zusammengeführt. Dieser Befehl ist nützlich, wenn Sie Änderungen zurücknehmen wollen, aber spätere, nicht damit zusammenhängende Änderungen beibehalten möchten.

  • Zu einer früheren Revision zurückkehren. Wenn Sie mehrere Änderungen vorgenommen haben und nun beschließen, dass Sie den Zustand in Revision N wieder herstellen wollen, ist das der Befehl Ihrer Wahl. Wieder werden die Änderungen nur in Ihrer Arbeitskopie rückgängig gemacht. Die Aktion beeinflusst das Projektarchiv zunächst nicht, bis Sie die Änderungen wieder übertragen haben. Beachten Sie, dass diese Aktion alle Änderungen nach der gewählten Revision rückgängig macht und das Objekt durch die gewählte Revision ersetzt. Wenn Ihre Arbeitskopie lokale Änderungen enthält, werden diese mit der früheren Revision zusammengeführt.

  • Führt die gewählten Revisionen in einer anderen Arbeitskopie zusammen. Ein Dialog ermöglicht es Ihnen, die Ziel-Arbeitskopie auszuwählen, aber danach gibt es weder eine Bestätigung noch eine Möglichkeit, einen Trockenlauf durchzuführen. Es ist eine gute Idee, das Zusammenführen in einer unmodifizierten Arbeitskopie zu testen, so dass Sie die Änderungen rückgängig machen können, wenn es nicht geklappt hat! Dies ist eine nützliche Funktion, wenn Sie Revisionen von einem Zweig auf einen anderen übertragen möchten.

  • Eine neue Arbeitskopie des markierten Ordners in der gewählten Revision erstellen. Im folgenden Dialog können Sie die URL und Revision überprüfen und ein Ziel für die Arbeitskopie festlegen.

  • Den markierten Ordner in der gewählten Revision exportieren. Im folgenden Dialog können Sie die URL und Revision überprüfen und ein Ziel für den Export festlegen.

  • Die Logmeldung oder den Autor der Übertragung ändern. Lesen Sie „Ändern der Logmeldung und des Autors“, um herauszufinden wie dies funktioniert.

  • Die Logdetails der gewählten Revisionen in die Zwischenablage kopieren. Dieser Befehl kopiert Revisionsnummer, Autor, Datum, Logmeldung sowie die Liste der geänderten Objekte jeder Revision in die Zwischenablage.

  • Die Logmeldungen durchsuchen. Die von Subversion generierte Liste der geänderten Dateien wird einbezogen. Die Suche ignoriert Groß-/Kleinschreibung.

Abbildung 5.17. Kontextmenü des Log-Dialogs für zwei ausgewählte Revisionen

Kontextmenü des Log-Dialogs für zwei ausgewählte Revisionen


Wenn Sie (mit Strg) zwei Revisionen auf einmal auswählen, reduziert sich das Kontextmenü auf folgende Funktionen:

  • Die gewählten Revisionen vergleichen. Das Standard Vergleichsprogramm ist TortoiseMerge, welches mit TortoiseSVN installiert wird.

    Wenn Sie diese Funktion für einen Ordner wählen, erscheint ein Folgedialog, der die geänderten Dateien anzeigt und Ihnen weitere Vergleichsoptionen anbietet. Lesen Sie mehr dazu in „Ordner vergleichen“.

  • Die gewählten Revisionen annotieren und die Ergebnisse mit einem Vergleichsprogramm darstellen. Lesen Sie „Unterschiede annotieren“ für weitere Details.

  • Die gewählten Revisionen vergleichen und als Standard-Diff anzeigen. Diese Funktion steht sowohl für Dateien, als auch für Verzeichnisse zur Verfügung.

  • Die Logmeldungen, wie oben beschrieben, in die Zwischenablage kopieren.

  • Die Logmeldungen durchsuchen. Näheres dazu siehe oben.

Wenn Sie mehrere aufeinander folgende Revisionen (mittels der üblichen Strg oder Umsch Tasten) markieren, bietet das Kontextmenü eine Funktion an, alle Änderungen innerhalb des Revisionsbereiches rückgängig zu machen. Dies ist der einfachste Weg, einen Satz von Änderungen in einem Schritt zurückzunehmen.

Sie können, wie bereits oben beschrieben, die gewählten Revisionen auch in einer anderen Arbeitskopie zusammenführen.

Abbildung 5.18. Kontextmenü der Dateiliste des Log-Dialogs

Kontextmenü der Dateiliste des Log-Dialogs


Die Liste der veränderten Dateien besitzt ebenfalls ein Kontextmenü mit folgenden Funktionen:

  • Die Änderungen der markierten Datei in der gewählten Revision anzeigen. Nur für Dateien verfügbar, die als Verändert gekennzeichnet sind.

  • Die markierte sowie die vorherige Revision der gewählten Datei annotieren und Ergebnisse mit einem Vergleichsprogramm darstellen. Lesen Sie „Unterschiede annotieren“ für weitere Informationen.

  • Die gewählte Datei entweder mit dem Standardprogramm für den Dateityp oder mit einem von Ihnen gewählten Programm öffnen.

  • Die Änderungen der gewählten Datei in dieser Revision rückgängig machen.

  • Die Subversion-Eigenschaften für das ausgewählte Objekt anzeigen.

  • Die Logmeldungen für die ausgewählte Datei anzeigen.

  • Die gewählte Revision speichern, so dass Sie eine ältere Version der Datei erhalten.

Tipp

Sie werden bemerkt haben, dass wir manchmal von Änderungen und manchmal von Unterschieden sprechen. Worin liegt der Unterschied?

Subversion verwendet Revisionsnummern in zwei verschiedenen Zusammenhängen. Zum Einen referenziert eine Revisionsnummer den Status eines Projektarchives zu einem gewissen Zeitpunkt. Zum Anderen wird damit auch der Satz von Änderungen bezeichnet, der diese Revision erzeugt hat. „Erledigt in Revision r1234“ bedeutet z.B. das Funktion X in Revision 1234 implementiert wurde. Um die Bedeutung klarer zu machen, verwenden wir zwei verschiedene Begriffe.

Wenn Sie zwei Revisionen N und M wählen, wird das Kontextmenü Ihnen die Unterschiede zwischen diesen Revisionen anbieten. In Subversion Terminologie also diff -r M:N.

Wenn Sie eine einzelne Revision N wählen, wird das Kontextmenü Ihnen die Änderungen in dieser Revision anbieten. In Subversion Terminologie also diff -r N-1:N oder diff -c N.

Der untere Bereich zeigt die in allen gewählten Revisionen veränderten Dateien, so dass über das Kontextmenü stets Änderungen angezeigt werden können.

Weitere Logmeldungen holen

Der Log-Dialog zeigt aus mehreren Gründen nicht immer alle Änderungen die jemals gemacht wurden an:

  • Bei einem großen Projektarchiv können hunderte oder gar tausende von Änderungen gespeichert sein. Alle diese Änderungen auf einmal zu laden kann sehr lange dauern. Normalerweise ist man auch nur an den letzten Meldungen interessiert. Standardmäßig werden beim ersten Aufruf des Log-Dialogs die letzten einhundert Logmeldungen angezeigt. Dieser Wert kann im Einstellungs-Dialog geändert werden. TortoiseSVNEinstellungen („TortoiseSVN Dialoge Seite 1“),

  • Wenn die Option Bei Kopien/Umbenennen anhalten gewählt ist, werden keine weiteren Logmeldungen mehr geholt, falls der Ordner / die Datei von einer anderen Stelle des Projektarchivs kopiert wurde. Dies ist insbesondere dann von Nutzen, wenn man Zweige oder Marken betrachtet und nur die Änderungen innerhalb des Zweiges sehen möchte.

    Normalerweise werden Sie diese Option nicht aktivieren. TortoiseSVN merkt sich die von Ihnen gewählte Einstellung.

    Wenn der Log-Dialog aus dem Zusammenführen-Dialog heraus aufgerufen wird, ist diese Option standardmäßig aktiviert. Der Grund dafür ist, dass beim Zusammenführen meistens Änderungen auf Verzweigungen betrachtet werden. Es ist normalerweise nicht sinnvoll, über die Wurzel der Verzweigung hinaus in die Vergangenheit zu gehen.

    Beachten Sie, dass Subversion Umbenennen derzeit als aufeinanderfolgende Kopieren/Löschen Aktionen implementiert, so dass die Log Anzeige ebenfalls anhält, wenn ein Ordner / eine Datei umbenannt wurde, falls diese Option gewählt ist.

Wenn Sie mehr Logmeldungen sehen wollen, klicken Sie auf die Nächste 100 Schaltfläche um weiter 100 Meldungen zu holen. Sie können dies so oft wie nötig wiederholen.

Daneben befindet sich eine Mehrfachschaltfläche, die sich den letzten gewählten Zustand merkt. Klicken Sie auf den Pfeil, um die anderen Möglichkeiten zu sehen.

Wählen Sie Zeige Bereich, wenn Sie einen bestimmten Revisionsbereich betrachten wollen. Ein Dialog wird dann die Anfangs- und Endrevision von Ihnen abfragen.

Wählen Sie Zeige Alle, wenn Sie alle Logmeldungen von HEAD zurück bis zur Revision 1 sehen möchten.

Datenintegration protokollieren

Subversion 1.5 und neuer speichern die in einem Zweig zusammengeführten Revisionen in einer Eigenschaft des Zweiges ab. Dies ermöglicht es, eine detaillierte Historie von bereits durchgeführten Integrationsschritten zu erhalten. Wenn Sie zum Beispiel eine neue Funktion in einem Zweig entwickeln und die fertige Entwicklung im Stamm zusammenführen, wird das Log für den Stamm nur eine Revision anzeigen, obwohl darin vielleicht 1000 Revisionen des Zweiges enthalten sind.

Abbildung 5.19. Der Log-Dialog mit bereits zusammengeführten Revisionen

Der Log-Dialog mit bereits zusammengeführten Revisionen

Wenn Sie im Detail sehen wollen, welche Revisionen als Teil einer Übertragung integriert wurden, markieren Sie die Option Versionen vom Zusammenführen einschließen. Damit werden die Logmeldungen erneut geholt und die Einträge aus den zusammengeführten Revisionen dazwischen sortiert. Zusammengeführte Revisionen werden in grau angezeigt, weil es sich um Änderungen an einem anderen Teil des Baumes handelt.

Datenintegration ist niemals einfach! Während Sie eine Funktion auf dem Zweig entwickeln, werden Sie dort sicher ab und zu Änderungen aus dem Stamm zusammenführen, um mit der Hauptentwicklung synchron zu bleiben. Deshalb wird die Historie des Zweiges eine weitere Ebene an Informationen über Datenintegration enthalten. Diese verschiedenen Ebenen werden durch unterschiedlich tiefe Einrückungen im Log-Dialog angezeigt.

Ändern der Logmeldung und des Autors

Manchmal ist es notwendig, eine Logmeldung nachträglich zu ändern. Sei es weil die Meldung Rechtschreibfehler enthält oder weil Sie die Meldung mit mehr Informationen erweitern müssen oder aus anderen Gründen Oder Sie müssen den Autor der Revision ändern, weil Sie vielleicht vergessen haben eine Authentifizierung für Übertragungen auf dem Server einzurichten oder...

Subversion lässt Sie beides, Logmeldungen und den Autor einer Revision, ändern. Aber da solche Änderungen nicht wieder rückgängig gemacht werden können (diese Änderungen werden nicht aufgezeichnet) ist diese Funktion standardmäßig deaktiviert. Um diese Funktion zu aktivieren, müssen Sie eine pre-revprop-change Aktion für das Projektarchiv einrichten. Bitte lesen Sie dazu das entsprechende Kapitel Hook Scripts im Subversion Buch, wie das gemacht wird. Lesen Sie auch „Aktionsskripte“, um mehr Informationen über das Einrichten von Aktionen auf einem Windows PC zu erhalten.

Sobald Sie die gewünschten Aktionen für das Projektarchiv eingerichtet haben, können Sie sowohl den Autor als auch die Logmeldung einer jeden Revision nachträglich ändern, indem Sie den entsprechenden Eintrag aus dem Kontextmenü des Log-Dialogs auswählen.

Warnung

Da die Revisionseigenschaften (z.B. svn:log für Logmeldungen) in Subversion nicht aufgezeichnet werden, überschreiben Änderungen den alten Wert für immer.

Logmeldungen filtern

Mit Hilfe der Filter am oberen Rand des Log-Dialogs können Sie die Logmeldungen auf diejenigen einschränken, die Sie interessieren. Die Von und Bis ermöglichen es, die Ausgabe auf einen bestimmten Zeitraum zu reduzieren. Die Suchmaske filtert die Meldungen heraus, die die angegebene Zeichenfolge beinhalten

Klicken Sie auf das Suchsymbol, um auszuwählen welche Werte Sie durchsuchen möchten und um die Suche mit regulären Ausdrücken zu aktivieren. Normalerweise benötigen Sie nur eine einfache Textsuche, aber falls Sie komplexere Suchbegriffe formulieren wollen, können Sie reguläre Ausdrücke verwenden. Wenn Sie mit dem Mauszeiger über das Eingabefeld fahren, erscheint ein Hinweistext zu den regulären Ausdrücken. Unterhttp://www.regular-expressions.info/ stehen eine Dokumentation und Übungen zur Verfügung.

Beachten Sie dass diese Filter nur auf die bereits heruntergeladenen Meldungen wirken. Sie haben keinen Einfluss darauf, welche Meldungen aus dem Projektarchiv heruntergeladen werden.

Sie können auch die Pfade in der unteren Liste filtern indem sie die Geänderte Pfade ohne Bezug ausblenden Option nutzen. Pfade mit Bezug sind Pfade welche den Pfad für welchen sie den Log anzeigen drin haben. Wenn sie den Log für einen Ordner anzeigen heißt dies dass alle Pfade unterhalb dieses Ordners einen Bezug haben, alle anderen Pfade nicht. Bei Dateien hat nur die Datei selbst einen Bezug mit sich selbst. Das Optionsfeld hat drei Zustände: sie können entweder alle Pfade anzeigen, Pfade ohne Bezug grau anzeigen oder ganz ausblenden.

Manchmal erfordern es Ihre Arbeitsgewohnheiten, dass Logmeldungen ein bestimmtes Format haben. Dadurch ist unter Umständen der Text, der die Änderungen beschreibt in der Zusammenfassung von TortoiseSVN nicht sichtbar. Die Eigenschaft tsvn:logsummary kann dazu verwendet werden, einen Teil der Logmeldung zu extrahieren und als Zusammenfassung anzuzeigen. In „TortoiseSVN Projekteigenschaften“ wird beschrieben, wie die Eigenschaft benutzt wird.

Statistiken anzeigen

Die Statistiken Schaltfläche zeigt eine Dialogbox mit interessanten Informationen über die angezeigten Revisionen an. Es zeigt zum Beispiel wie viele Autoren (Personen welche Übertragungen gemacht haben) am Werk waren, wie viele Übertragungen jeder von ihnen gemacht hat, wöchentlicher Projektfortschritt und vieles mehr. Endlich haben Sie die Möglichkeit zu überprüfen, wer fleißig am Projekt mitarbeitet und wer hinterherhängt ;-)

Statistik Seite

Diese Seite zeigt Ihnen sämtliche vorstellbaren Zahlen an. Insbesondere der Datumsbereich und die zugehörigen Revisionen sowie einige Min-/Max-/Mittelwerte.

Übertragungen per Autor

Abbildung 5.20. Übertragungen per Autor als Histogramm

Übertragungen per Autor als Histogramm


Dieser Graph zeigt welche Autoren aktiv am Projekt gearbeitet haben als einfaches Histogramm, überlagertes Histogramm oder Kuchendiagramm.

Abbildung 5.21. Übertragungen per Autor als Tortendiagramm

Übertragungen per Autor als Tortendiagramm


Wenn es einige wenige Hauptautoren und viele Autoren mit wenigen Beiträgen gibt, kann die Anzahl der kleinen Segmente den Graphen unleserlich machen. Der Schieber am unteren Rand erlaubt es Ihnen, einen Schwellwert festzulegen (Prozentwert der gesamten Übertragungen) unterhalb dessen die Übertragungen in der Gruppe Andere zusammengefasst.

Die Seite Übertragungen nach Datum

Abbildung 5.22. Übertragungen nach Datum

Übertragungen nach Datum


Diese Seite zeigt Ihnen eine Zusammenfassung der Projektaktivität in Hinblick auf Übertragungen und Autoren an. Damit können Sie auf einen Blick erkennen, wann und durch wen am Projekt gearbeitet wurde.

Sobald es mehrere Autoren gibt, werden Sie entsprechend viele Linien im Diagramm sehen. Es gibt zwei verschiedene Ansichten: normal, in der die Aktivität eines Autors relativ zur Grundlinie angezeigt wird und gestapelt, bei der die Aktivität eines Autors relativ zur vorherigen Linie angezeigt wird. Die zweite Option vermeidet sich kreuzende Linien, erschwert es aber auch, die Aktivität eines einzelnen Autors zu bewerten.

Standardmäßig wird Groß-/Kleinschreibung bei der Analyse berücksichtigt, so dass PeterEgan und PeteRegan als zwei verschiedene Autoren erkannt werden. In vielen Fällen werden Benutzernamen inkonsistent eingegeben, Deshalb können Sie den Vergleich mit Groß-/Kleinschreibung bei Autoren ignorieren entsprechend anpassen.

Beachten Sie, dass die Statistiken dieselbe Zeitperiode überdecken wie Revisionen im Log-Dialog angezeigt werden. Wenn also nur eine Revision angezeigt wird, sagen die Statistiken nicht sehr viel aus.

Offline Modus

Wenn der Server nicht erreichbar ist und Sie den Log-Puffer aktiviert haben, können Sie den Log-Dialog und den Revisionsgraphen auch offline benutzen. Dabei werden die Daten aus dem Puffer gelesen, so dass Sie wie gewohnt weiterarbeiten können. Allerdings können die angezeigten Informationen nicht aktuell oder unvollständig sein.

Die Ansicht aktualisieren

Wenn Sie den Server auf neue Logmeldungen überprüfen wollen, können Sie die Sicht einfach per F5 aktualisieren. Falls Sie den Log-Puffer verwenden (standardmäßig aktiv), wird das Projektarchiv auf neue Meldungen abgefragt und nur diese werden geholt. Falls der Log-Puffer offline war, wird gleichzeitig versucht, ihn wieder online zu schalten.

Falls Sie den Log-Puffer verwenden und denken, dass sich der Inhalt oder der Autor einer Logmeldung geändert haben, können Sie Umsch-F5 oder Strg-F5 benutzen, um die angezeigten Meldungen erneut vom Server zu holen. Beachten Sie, dass das nur die gerade angezeigten Meldungen betrifft und dass nicht der gesamte Puffer für das Projektarchiv ungültig wird.