Dieser Text befindet sich gegenwärtig in Bearbeitung, unterliegt ständigen Änderungen und kann dadurch nicht stets akkurat irgendeine freigegebene Version der Software Apache™ Subversion® beschreiben. Das Speichern dieser Seite als Lesezeichen oder andere auf diese Seite zu verweisen, ist keine so gute Idee. Besuchen Sie http://www.svnbook.com/, um stabile Versionen dieses Buchs zu erhalten.

Name

svn blame (praise, annotate, ann) — Autor- und Revisions-Informationen innerhalb der angegebenen Dateien oder URLs ausgeben.

Übersicht

svn blame TARGET[@REV]...

Beschreibung

Autor- und Revisions-Informationen innerhalb der angegebenen Dateien oder URLs ausgeben. Jede Textzeile erhält am Zeilenanfang eine Anmerkung mit dem Autor (Anwendernamen) und der Revisionsnummer der letzten Änderung.

Optionen

Beispiele

Wenn Sie den Quelltext von readme.txt in Ihrem Test-Projektarchiv mit Anmerkungen sehen wollen:

$ svn blame http://svn.red-bean.com/repos/test/readme.txt
     3      sally This is a README file.
     5      harry Don't bother reading it.  The boss is a knucklehead.
     3      sally 
…

Nur weil svn blame behauptet, dass Harry readme.txt zuletzt in Revision 5 geändert habe, sollten Sie verstehen, das dieser Unterbefehl standardmäßig sehr pingelig bei der Bewertung, was eine Änderung ist. Bevor Harry für die anscheinende Aufmüpfigkeit Prügel bezieht, sollten Sie bedenken, dass die Änderung, die er an der Datei vornahm, sich auf den Zeicheninhalt und nicht auf den gesamten semantischen Inhalt bezog. Vielleicht war seine Änderung das Ergebnis einer unbedachten Behandlung dieser Datei durch ein Skript zur Leerraum-Bereinigung. Zum genauen Verständnis dessen, was Harry an dieser Datei in Revision 5 geändert hat, sollten Sie die einzelnen Änderungen und die damit verbundenen Protokollnachrichten untersuchen.

$ svn log -c 5 http://svn.red-bean.com/repos/test/readme.txt
------------------------------------------------------------------------ 
r5 | harry | 2008-05-29 07:26:12 -0600 (Do, 29. May 2008) | 1 Zeile

Commit the results of 'double-space-after-period.sh'.

------------------------------------------------------------------------
$ svn diff -c 5 http://svn.red-bean.com/repos/test/readme.txt
Index: http://svn.red-bean.com/repos/test/readme.txt
===================================================================
--- http://svn.red-bean.com/repos/test/readme.txt	(revision 4)
+++ http://svn.red-bean.com/repos/test/readme.txt	(revision 5)
@@ -1,5 +1,5 @@
 This is a README file.
-Don't bother reading it. The boss is a knucklehead.
+Don't bother reading it.  The boss is a knucklehead.

 INSTRUCTIONS
 ============
$

Klar, dass Harry nur die Leerzeichen in dieser Zeile geändert hat. Glücklicherweise kann Ihnen die Option --extensions (-x) dabei helfen, besser herauszufinden, wann eine bedeutende Änderung an einer Textzeile vorgenommen wurde. Hier ist beispielsweise die Anmerkung ohne Berücksichtigung von bloßen Leerraum-Änderungen::

$ svn blame -x -b http://svn.red-bean.com/repos/test/readme.txt
     3      sally This is a README file.
     4       jess Don't bother reading it.  The boss is a knucklehead.
     3      sally 
…

Falls Sie die Option --xml benutzen, bekommen Sie die Anmerkungen als XML-Ausgabe, jedoch nicht den eigentlichen Inhalt der Zeilen:

$ svn blame --xml http://svn.red-bean.com/repos/test/readme.txt
<?xml version="1.0"?>
<blame>
<target
   path="readme.txt">
<entry
   line-number="1">
<commit
   revision="3">
<author>sally</author>
<date>2008-05-25T19:12:31.428953Z</date>
</commit>
</entry>
<entry
   line-number="2">
<commit
   revision="5">
<author>harry</author>
<date>2008-05-29T13:26:12.293121Z</date>
</commit>
</entry>
<entry
   line-number="3">
…
</entry>
</target>
</blame>
$