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

svnlook Reference—Subversion Repository Examination

svnlook is a command-line utility for examining different aspects of a Subversion repository. It does not make any changes to the repository—it's just used for peeking. svnlook is typically used by the repository hooks, but a repository administrator might find it useful for diagnostic purposes.

Since svnlook works via direct repository access (and thus can be used only on the machine that holds the repository), it refers to the repository with a path, not a URL.

If no revision or transaction is specified, svnlook defaults to the youngest (most recent) revision of the repository.

Options in svnlook are global, just as they are in svn and svnadmin; however, most options apply to only one subcommand since the functionality of svnlook is (intentionally) limited in scope:

svnlook Options


Causes svnlook changed to show detailed copy source information.

--diff-cmd CMD

Specifies an external program to use to show differences between files. When svnlook diff is invoked without this option, it uses Subversion's internal differencing engine, which provides unified diffs by default. If you want to use an external differencing program, use --diff-cmd. You can then pass options to the specified program using the --extensions (-x) option.


Print differences for copied items against the copy source.

--extensions (-x) ARG

Specifies customizations which Subversion should make when performing difference calculations. Valid extensions include:

--ignore-space-change (-b)

Ignore changes in the amount of white space.

--ignore-all-space (-w)

Ignore all white space.


Ignore changes in EOL (end-of-line) style.

--show-c-function (-p)

Show C function names in the diff output.

--unified (-u)

Show three lines of unified diff context.

The default value is -u.

Note that when Subversion is configured to invoke an external diff command, the value of the --extension (-x) option isn't restricted to the previously mentioned options, but may be any additional arguments which Subversion should pass to that command. If you wish to pass multiple arguments, you must enclose all of them in quotes.


Causes svnlook tree to display full paths instead of hierarchical, indented path components.


Instructs svnlook diff to show only property changes.

--limit (-l) ARG

Limit output to a maximum number of ARG items.


Prevents svnlook diff from printing differences for deleted files. The default behavior when a file is deleted in a transaction/revision is to print the same differences that you would see if you had left the file but removed all the content.


Prevents svnlook diff from printing differences for added files. The default behavior when you add a file is to print the same differences that you would see if you had added the entire contents of an existing (empty) file.

--non-recursive (-N)

Operate on a single directory only.


Instructs svnlook diff to suppress output of property changes.

--revision (-r)

Specifies a particular revision number that you wish to examine.


Operates on a revision property instead of a property specific to a file or directory. This option requires that you also pass a revision with the --revision (-r) option.


Works with svnlook propget and svnlook proplist to display the versioned properties inherited by a path.

--transaction (-t)

Specifies a particular transaction ID that you wish to examine.


Shows the filesystem node revision IDs for each path in the filesystem tree.

--verbose (-v)

Be verbose. When used with svnlook proplist, for example, this causes Subversion to display not just the list of properties, but their values also.