svn log — Übergabe-Protokollnachrichten anzeigen.
Zeigt Protokollnachrichten aus dem Projektarchiv an.
Falls keine Argumente angegeben werden, zeigt svn
log die Protokollnachrichten aller Dateien und
Verzeichnisse innerhalb (und inklusive) des aktuellen
Arbeitsverzeichnisses Ihrer Arbeitskopie an. Sie können
das Ergebnis verfeinern, indem Sie einen Pfad, eine oder
mehrere Revisionen oder eine beliebige Kombination davon
angeben. Der Standardbereich für Revisionen eines lokalen
Pfades ist BASE:1
.
Falls Sie nur einen URL angeben, werden
Protokollnachrichten für alles ausgegeben, was unter
diesem URL liegt. Falls Sie nach dem URL Pfade angeben,
werden nur Nachrichten für diese Pfade unterhalb des URLs
ausgegeben. Der Standardbereich für Revisionen eines URLs
ist HEAD:1
.
Mit --verbose
gibt svn
log alle betroffenen Pfade zusätzlich zu jeder
Protokollnachricht aus. Mit --quiet
gibt
svn log den eigentlichen Rumpf der
Protokollnachricht nicht aus (das ist kompatibel mit
--verbose
).
Jede Protokollnachricht wird nur einmal ausgegeben,
auch falls ausdrücklich mehr als einer der betroffenen
Pfade für diese Revision angefordert wurde. Die
Protokolle folgen standardmäßig der Kopiergeschichte.
Verwenden Sie --stop-on-copy
, um dieses
Verhalten abzustellen, was nützlich bei der Ermittlung von
Verzweigungspunkten sein kann.
--change (-c) ARG --incremental --limit (-l) NUM --quiet (-q) --revision (-r) REV --stop-on-copy --targets FILENAME --use-merge-history (-g) --verbose (-v) --with-all-revprops --with-revprop ARG --xml
Sie können die Protokollnachrichten aller Pfade sehen, die
sich in Ihrer Arbeitskopie geändert haben, indem Sie ganz
oben svn log
aufrufen:
$ svn log ------------------------------------------------------------------------ r20 | harry | 2003-01-17 22:56:19 -0600 (Fri, 17 Jan 2003) | 1 line Tweak. ------------------------------------------------------------------------ r17 | sally | 2003-01-16 23:21:19 -0600 (Thu, 16 Jan 2003) | 2 lines …
Untersuchen aller Protokollnachrichten für eine bestimmte Datei in Ihrer Arbeitskopie:
$ svn log foo.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 00:43:13 -0600 (Mon, 13 Jan 2003) | 1 line Added defines. ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines …
Sollten Sie keine Arbeitskopie verfügbar haben, können Sie die Protokolle auch über einen URL abrufen:
$ svn log http://svn.red-bean.com/repos/test/foo.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 00:43:13 -0600 (Mon, 13 Jan 2003) | 1 line Added defines. ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines …
Wollen Sie mehrere getrennte Pfade unterhalb des
gleichen URLs möchten, können Sie die Syntax URL
[PATH...]
verwenden:
$ svn log http://svn.red-bean.com/repos/test/ foo.c bar.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 00:43:13 -0600 (Mon, 13 Jan 2003) | 1 line Added defines. ------------------------------------------------------------------------ r31 | harry | 2003-01-10 12:25:08 -0600 (Fri, 10 Jan 2003) | 1 line Added new file bar.c ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines …
Die Option --verbose
veranlasst
svn log, Informationen über die in
jeder angezeigten Revision geänderten Pfade hinzuzufügen.
Diese Pfade, einer pro Ausgabezeile, werden mit einer
Aktionskennung markiert, die darüber Aufschluss gibt, um
welche Art von Änderung an dem Pfad es sich handelt.
$ svn log -v http://svn.red-bean.com/repos/test/ foo.c bar.c ------------------------------------------------------------------------ r32 | sally | 2003-01-13 00:43:13 -0600 (Mon, 13 Jan 2003) | 1 line Changed paths: M /foo.c Added defines. ------------------------------------------------------------------------ r31 | harry | 2003-01-10 12:25:08 -0600 (Fri, 10 Jan 2003) | 1 line Changed paths: A /bar.c Added new file bar.c ------------------------------------------------------------------------ r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines …
svn log verwendet nur eine handvoll Aktionskennungen, die denjenigen des Befehls svn update ähneln:
A
Das Objekt wurde hinzugefügt.
D
Das Objekt wurde gelöscht.
M
Die Eigenschaften oder der textuelle Inhalt des Objektes wurden geändert.
R
Das Objekt wurde am selben Ort durch ein anderes ersetzt.
Zusätzlich zu den Aktionskennungen, die den geänderten
Pfaden vorangestellt werden, vermerkt svn
log mit der Option --verbose
ob
ein Pfad als Ergebnis einer Kopieroperation hinzugefügt
oder ersetzt wurde. Dabei wird nach solchen Pfaden
(von
ausgegeben.COPY-FROM-PATH
:COPY-FROM-REV
)
Falls Sie die Ausgaben mehrerer Aufrufe des Befehls
verketten möchten, empfiehlt sich die Verwendung der
Option --incremental
. svn
log gibt normalerweise zu Beginn einer
Protokollnachricht, nach jeder weiteren sowie nach der
letzten eine gestrichelte Linie aus. Falls Sie
svn log über einen Bereich von zwei
Revisionen aufgerufen hätten, würden Sie folgendes
bekommen:
$ svn log -r 14:15 ------------------------------------------------------------------------ r14 | … ------------------------------------------------------------------------ r15 | … ------------------------------------------------------------------------
Falls Sie jedoch zwei nicht aufeinanderfolgende Protokollnachrichten in einer Datei sammeln möchten, könnten Sie folgendes aufrufen:
$ svn log -r 14 > mylog $ svn log -r 19 >> mylog $ svn log -r 27 >> mylog $ cat mylog ------------------------------------------------------------------------ r14 | … ------------------------------------------------------------------------ ------------------------------------------------------------------------ r19 | … ------------------------------------------------------------------------ ------------------------------------------------------------------------ r27 | … ------------------------------------------------------------------------
Sie können das störende doppelte Auftreten der
gestrichelten Linien in der Ausgabe durch die Verwendung
der Option --incremental
verhindern:
$ svn log --incremental -r 14 > mylog $ svn log --incremental -r 19 >> mylog $ svn log --incremental -r 27 >> mylog $ cat mylog ------------------------------------------------------------------------ r14 | … ------------------------------------------------------------------------ r19 | … ------------------------------------------------------------------------ r27 | …
Die Option --incremental
bietet bei
Verwendung der Option --xml
eine ähnliche
Ausgabekontrolle:
$ svn log --xml --incremental -r 1 sandwich.txt <logentry revision="1"> <author>harry</author> <date>2008-06-03T06:35:53.048870Z</date> <msg>Initial Import.</msg> </logentry>
Tipp | |
---|---|
Manchmal kann es passieren, dass beim Aufruf von svn log für einen bestimmten Pfad und eine bestimmte Revision keine Protokollinformationen ausgegeben werden wie etwa hier: $ svn log -r 20 http://svn.red-bean.com/untouched.txt ------------------------------------------------------------------------ Das bedeutet nur, dass der Pfad in dieser Revision nicht geändert wurde. Um Protokollinformationen für diese Revision zu erhalten, sollten Sie den Befehl entweder für die Wurzel des Projektarchivs aufrufen oder einen Pfad angeben, von dem Sie wissen, dass er in dieser Revision geändert wurde: $ svn log -r 20 touched.txt ------------------------------------------------------------------------ r20 | sally | 2003-01-17 22:56:19 -0600 (Fri, 17 Jan 2003) | 1 line Made a change. ------------------------------------------------------------------------ |