STATSVN(1)
π statsvn π
okay bestie, welcome to STATSVN(1) β that's this page's name, and it lives in the General Commands Manual (section 1, the commands girlies, iykyk). buckle up, we're doing Subversion statistics and we're doing them cutely π
β¨ NAME β¨
statsvn β SVN repository statistic analysis tool. that's it, that's the name, short and iconic π
π¦ SYNOPSIS π¦
svn log --xml -v path/to/repos > svn-logfile.xml
statsvn [options] svn-logfile path/to/repos
two steps, bestie. first you get the log, then you feed it to statsvn. the order matters, don't get creative π
πΈ DESCRIPTION πΈ
so this manual page documents the statsvn command. it was written for the Debian distribution because the original program does not have a manual page at all β so Debian said "fine, we'll do it ourselves" and honestly? slay π«Ά
statsvn is a program that pulls information out of an SVN repository and generates various tables and charts describing the project development β like a timeline for the lines of code, the contribution of each developer, that kind of thing. the receipts, basically π
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 (yes, the typo is canon, we don't fix the original's whole vibe π). statsvn is based on statcvs(1) β hence the striking similarity between their interfaces and manual pages β and it uses JFreeChart to generate charts. so it's giving family resemblance, on purpose β¨
- svn-log-file β path to the output of
svn log --xml -vfor the given repository. IMPORTANT NOTE: do not forget the-voption, elsestatsvnwill crash !!! like actually crash. not a vibe. do not skip-v. π - 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-dirdirectory β Specify an output directory. The reports will be generated in this directory. The directory will be created if it doesn't exist. it makes its own folder, self-sufficient queen β¨-includeinclude-pattern-list-excludeexclude-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. sneaky little detail, bestie, don't sleep on it π
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. the shell is nosy and it WILL touch your wildcards π€
-cache-dirdirectory β 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.-usernamesubversion_username β Specify a username to use when connecting to the Subversion server.-passwordsubversion_username β Specify a password to use when connecting to the Subversion server. (yes, the placeholder in the original says subversion_username for the password too. we keep it exactly as written, no editing the source material π)-tagstags-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/tagsdirectory. 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/tagsand the/trunk. The checked out version does not have to contain the tags directory. root-of-repo log or it doesn't count, periodt π
-tags-dirdirectory β Specifies the root directory from which the tags regular expression is evaluated. The default-tags-diris/tags/-no-developerlogin-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. one flag per account, stack 'em up π§
π 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, intosrc/site/statsvn.-xmlβ Generate XML instead of HTML.-cssstylesheet β 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. link vs. copy β know the difference bestie π-notesnotes-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>
-titletitle β 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-filepath-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. avatar icons?? we love a glow-up π«Ά-charsetcharSet β Specifies the charset to use in HTML or XDOC output.ISO-8859-1will be used as default if no charset is specified.-disable-twitter-buttonβ if present, exclude the Twitter "Tweet This" buttons from the output. no tweeting today, we're being mysterious π
π 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) π₯-chorachora-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.-viewvcviewvc-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.-mantismantis-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.-tractrac-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. lots. like, a lot lot.-verboseβ Output additional progress information.-versionβ Output the version of StatSVN.-dumpβ Will output the repository content on console and stop.-concurrency-thresholdmillisec β Switch to concurrentsvn diffif the first call takes more than the threshold (in milliseconds) (default:4000)-threadsint β How many threads forsvn diff(default:25)-anonymizeβ Anonymizes committer names. everyone becomes a mystery, iconic honestly π΅οΈ
π 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. the network is not your friend here, bestie π‘
To compensate for that, however, diffs are cached in the $HOME/.statsvn directory. your cache, your safe space π
Do not forget the-voption tosvn diff! seriously. again. it will break. this is the third warning, it's giving main character energy in the error logs π
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. too many threads = too much drama π
β 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. go read the user manual, it's the director's cut β¨
π 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. π«Ά
and that's the whole page, bestie! this one's dated 03-04-2008 and it's STATSVN(1) from the General Commands Manual β go forth and generate some charts, you absolute icon πππ¦
π¦ where this page comes from
- debian bookworm: statsvn 0.7.0.dfsg-10 Β· LGPL-2.1-or-later
- debian trixie: statsvn 0.7.0.dfsg-11 Β· LGPL-2.1-or-later
- ubuntu jammy: statsvn 0.7.0.dfsg-10 Β· LGPL-2.1-or-later
- ubuntu noble: statsvn 0.7.0.dfsg-10 Β· LGPL-2.1-or-later
- ubuntu questing: statsvn 0.7.0.dfsg-11
- ubuntu resolute: statsvn 0.7.0.dfsg-11build1 Β· LGPL-2.1-or-later
- ubuntu stonking: statsvn 0.7.0.dfsg-12 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms