This text is a work in progress—highly subject to change—and may not accurately describe any released version of the ApacheTM Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.

svn blame (praise, annotate, ann)
Prev svn Reference—Subversion Command-Line Client Next

Name

svn blame (praise, annotate, ann) — Show author and revision information inline for the specified files or URLs.

Synopsis

svn blame TARGET[@REV]...

Description

Show author and revision information inline for the specified files or URLs. Each line of text is annotated at the beginning with the author (username) and the revision number for the last change to that line.

Options

--extensions (-x) ARG
--force
--incremental
--revision (-r) REV
--use-merge-history (-g)
--verbose (-v)
--xml

Examples

If you want to see blame-annotated source for readme.txt in your test repository:

$ 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 
...

Now, just because svn blame says that Harry last modified readme.txt in revision 5, understand that this subcommand is by default very picky about what constitutes a change. Before clubbing Harry over the head for what appears to be insubordination, first consider that perhaps the change he made to the file might have been only to its specific character content, not to its overall semantic meaning. Perhaps his changes were the result of blindly running a whitespace cleanup script on this file. You might need to examine the specific differences and related log message to understand exactly what Harry did to this file in revision 5.

$ svn log -c 5 http://svn.red-bean.com/repos/test/readme.txt
------------------------------------------------------------------------
r5 | harry | 2008年05月29日 07:26:12 -0600 (2008年5月29日) | 1 line
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
 ============
$

Sure enough, Harry only changed the whitespace in that line. Fortunately, the --extensions (-x) option can help you better determine the last time that a meaningful change was made to a given line of text. For example, here's how you can see the annotation information while disregarding mere whitespace changes:

$ 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 
...

If you use the --xml option, you can get XML output describing the blame annotations, but not the contents of the lines themselves:

$ 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月25日T19:12:31.428953Z</date>
</commit>
</entry>
<entry
 line-number="2">
<commit
 revision="5">
<author>harry</author>
<date>2008年05月29日T13:26:12.293121Z</date>
</commit>
</entry>
<entry
 line-number="3">
...
</entry>
</target>
</blame>
$

Prev Up Next
svn add Home svn cat

AltStyle によって変換されたページ (->オリジナル) /