NAME
statsvn - SVN repository statistic analysis tool
SYNOPSIS
svn log --xml -v path/to/repos > svn-logfile.xml
statsvn [options] svn-logfile path/to/repos
DESCRIPTION
This manual page documents the statsvn command. This manual page was
written for the Debian distribution because the original program does
not have a manual page.
statsvn is a program that retrieves information from a SVN repository
and generates various tables and charts describing the project
development, e.g. timeline for the lines of code, contribution of each
developer, etc.
The current version of statsvn generates a static suite of HTML
documents containing tables and chart images. statsvn is opens source
software, released under the terms oft the LGPL. statsvn is based on
statcvs(1) (hence the striking similarity between their interfaces and
manual pages) and uses JFreeChart to generate charts.
svn-log-file
path to the output of svn log --xml -v for the given repository.
IMPORTANT NOTE: do not forget the -v option, else statsvn will
crash !!!
path/to/repos
path to a checkout of the repository.
OPTIONS
These programs follow the usual command line syntax, with long options
starting with one dash ("-"). A list of common options is included
below. For more up-to-date information, see statsvn’s website.
General Options
-output-dir <directory>
Specify an output directory. The reports will be generated in
this directory. The directory will be created if it doesn’t
exist.
-include <include-pattern-list>
-exclude <exclude-pattern-list>
Specify filters to exclude files from the analysis. A file will
be ignored if it doesn’t match any of the patterns in include-
pattern-list, or if it matches any pattern in exclude-pattern-
list.
The patterns are lists of Apache Ant-style wildcard patterns,
seperated by colons or semicolons. The wildcards are:
* ’?’ matches a single character
* ’*’ matches zero or more characters
* ’**’ matches zero or more directories
For example, src/**/*.java matches all java files in the src
directory or its subdirectories. Note that *.java only matches
java files in the root directory, because ’*’ does not match
subdirectories.
One more example:
-include **/*.c:**/*.h -exclude legacy/**
This matches all .c and .h files anywhere in the directory tree
except those in the legacy directory and its subdirectories.
For more information on Ant’s wildcard syntax, see the
Patternset section of the Ant manual.
If not specified, all files will be included and no files will
be excluded.
Note: Unix users must put the patterns in quotes, or the shell
will interfere with the wildcards.
-cache-dir <directory>
Specify a cache directory for information retrieved from the
Subversion server (e.g. line counts). The data will be saved in
this directory. The directory will be created if it doesn’t
exist. By default, the current user directory is used.
-username <subversion_username>
Specify a username to use when connecting to the Subversion
server.
-password <subversion_username>
Specify a password to use when connecting to the Subversion
server.
-tags <tags-regularexpression>
Includes information about Subverison tags into the reports.
Only tags matching the regular expression are included. To
include all tags, add -tags ’.*’ to the command line.
Note: Unix users must put the expression in quotes, or the
shell will interfere with the wildcards.
Note: Tags are determined by looking at your repository’s /tags
directory. To be able to use this feature, you must generate the
log file from the root of your repository, so that the log
contains information from both the /tags and the /trunk. The
checked out version does not have to contain the tags directory.
-tags-dir <directory>
Specifies the root directory from which the tags regular
expression is evaluated. The default -tags-dir is /tags/
-no-developer <login-name>
Excludes a Subversion account name from all developer reports.
This is useful to reduce noise from administrative and other
non-developer accounts. Multiple accounts can be excluded by
adding the option to the command line once for each account.
Report Options
-xdoc Generate Maven XDoc instead of HTML. This allows Maven and Maven
2 to integrate the reports when it generates the projects Maven
site. Reports could be placed, for example, into
src/site/statsvn.
-xml Generate XML instead of HTML.
-css <stylesheet>
Optional (default varies for html or xdoc). Specify a Cascading
Style Sheet for the report. This can be a HTTP URL or a local
file. A URL will simply be linked in every page of the report. A
local file will be copied into the report directory.
-notes <notes-file>
The contents of the specified file will be included at the top
of the report’s index page. The file should contain a valid
block-level HTML fragment, for example:
<p>
These are development statistics for the
<a href="http://www.statsvn.org">StatSVN</a>
project, created by StatSVN itself.
</p>
<p>
<strong>Note:</strong>
This report was generated by an unreleased
development version of StatSVN. It might
contain features not yet found in the
official release.
</p>
-title <title>
Specifies a display title to be used in the reports. The name of
the Subversion module will be used as default if no title is
specified.
-config-file <path-to-properties-file>
Allows one to replace the source control username with more
information such as real name, website, email and avatar icon.
See this file for an example.
-charset <charSet>
Specifies the charset to use in HTML or XDOC output. ISO-8859-1
will be used as default if no charset is specified.
-disable-twitter-button
if present, exclude the Twitter "Tweet This" buttons from the
output.
Options for Integration with External Tools
-bugzilla
Specify the URL of a root of a Bugzilla installation. Will
replace ’Bug ###’ in commit logs with a link to the appropriate
bug. (New in StatSVN)
-chora <chora-url>
Specify the URL of a Chora installation for the module. This
must be the URL of the page for the module’s root directory.
StatSVN will create links to Chora for directories, files and
revisions.
-viewvc <viewvc-url>
Specify the URL of a ViewVC installation for the module. This
must be the URL of the page for the module’s root directory.
StatSVN will create links to ViewVC for directories, files and
revisions.
-mantis <mantis-url>
Specify the root URL of a Mantis bug tracker installation. In
commit messages, this will turn âbug.
-trac <trac-url>
Specify the root URL of a Trac installation. In commit messages,
this will turn â
Miscellaneous Options
-debug Output lots of additional progress information.
-verbose
Output additional progress information.
-version
Output the version of StatSVN.
-dump Will output the repository content on console and stop
-concurrency-threshold <millisec>
Switch to concurrent svn diff if the first call takes more than
the threshold (in milliseconds) (default: 4000)
-threads <int>
How many threads for svn diff (default: 25)
-anonymize
Anonymizes committer names.
IMPORTANT NOTES
Unlike its cousin statcvs(1), statsvn can work on distant repositories.
Please note however, that statsvn needs to download many diffs from the
repository, so it is often more network-efficient to simply rsync(1)
the repository to a local host and run it on the local copy.
To compensate for that, however, diffs are cached in the $HOME/.statsvn
directory.
Do not forget the -v option to svn diff !
Finally, note that the default value for the number of concurrent
svn(1) processes might be too much for the target host. If you get
weird error messages about unreachable hosts and similar problems, try
taking down the -threads parameter.
JAVA-WRAPPERS NOTE
This program is a shell script wrapper based on java-wrappers(7). You
therefore benefit from several features; please see the java-
wrappers(7) manual page for more information about them.
SEE ALSO
svn(1), statcvs(1) and java-wrappers(7)
statsvn’s website at http://www.statsvn.org, and most particularly the
user manual at
http://svn.statsvn.org/statsvnwiki/index.php/User_Manual.
AUTHOR
This manual page was adapted by Vincent Fourmond <fourmond@debian.org>
from the one for statcvs(1) written by Christian Bayle
<bayle@debian.org>. It was written for the Debian project, but may be
used by others.
03-04-2008