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, separated 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.
- -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 ####” into a link to the
appropriate bug.
- -trac <trac-url>
- Specify the root URL of a Trac installation. In commit messages, this will
turn “Bug ####” into a link to the appropriate bug.
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.