StatSVN介绍
StatSVN是一个Java写的开源代码统计程序,从statCVS移植而来,能够从Subversion版本库中取得信息,然后生成描述项目开发的各种表格和图表。比如:代码行数的时间线;针对每个开发者的代码行数;开发者的活跃程度;开发者最近所提交的;文件数量;平均文件大小;最大文件;哪个文件是修改最多次数的;目录大小;带有文件数量和代码行数的Repository tree。StatSVN当前版本能够生成一组包括表格与图表的静态HTML文档。
StartSVN官网地址为:http://www.statsvn.org/index.html
StartSVN的下载页面为:http://www.statsvn.org/downloads.html
现在官网上最新的版本为:statsvn-0.7.0
使用须知
StatSVN的运行需要Java的运行环境支持,所以大家需要安装Java的运行环境(Java Runtime Environment)。JRE可以从Sun的网站上下载。
Statsvn在使用中需要使用SVN的客户端,因此需要确保机器上可以访问到SVN的客户端命令
Checkout工作拷贝
首先从SVN仓库中checkout一个需要统计的项目(如果在工作目录下进行统计,需要将代码更新到最新版,请更新,确保统计结果的准确性),例如我把我的项目checkout在我的电脑上E:\workspace\1-dev\business_sales路径下。
生成svn log文件
首先通过命令行进入工作目录:E:\workspace\1-dev\business_sales,再使用svn log -v --xml > logfile.log的命令,其中 logfile.log为log文件的名称,可以根据需要自行定义。这样就在工作拷贝的目录下生成一个名称为logfile.log的文件。
注:要在命令行中使用svn命令,在安装TortoiseSVN时必须选择安装commend组件,可以在cmd命令行里输入svn help测试一下该组件是否安装,如果未安装是无法使用svn log命令的。如果能够操作svn server的话也可以直接在服务器上生成svn log然后下载到本地来使用
调用StatSVN进行统计
首先我们把从官网上下载的statsvn-0.7.0.zip包解压缩到E:\statsvn-0.7.0目录下
通过命令行进入E:\statsvn-0.7.0目录
调用命令java -jar statsvn.jar E:\workspace\1-dev\business_sales\logfile.log E:\workspace\1-dev\business_sales,命令运行成功即完成了统计工作。
<logfile> path to the svn logfile of the module
<directory> path to the directory of the checked out module
Some options:
-version print the version information and exit
-output-dir <dir> directory where HTML suite will be saved
-include <pattern> include only files matching pattern, e.g. **/*.c;**/*.h
-exclude <pattern> exclude matching files, e.g. tests/**;docs/**
-tags <regexp> show matching tags in lines of code chart, e.g. version-.*
-title <title> Project title to be used in reports
-viewvc <url> integrate with ViewVC installation at <url>
-trac <url> integrate with Trac at <url>
-bugzilla <url> integrate with Bugzilla installation at <url>
-username <svnusername> username to pass to svn
-password <svnpassword> password to pass to svn
-verbose print extra progress information
-xdoc optional switch output to xdoc
-xml optional switch output to xml
-threads <int> how many threads for svn diff (default: 25)
-concurrency-threshold <millisec> switch to concurrent svn diff if 1st call>threshol
-dump dump the Repository content on console
-charset <charset> specify the charset to use for html/xdoc
-tags-dir <directory> optional, specifies the director for tags (default '/tags/')
Full options list: http://www.statsvn.org
查看统计结果
上图为命令结果,已经成功,可以在E:\statsvn-0.7.0目录下看到生成一组包括表格与图表的静态HTML文档。可以直接双击index.html用浏览器查看统计结果。
示例图片:
优点
StatSVN会把当前SVN库的状态用图片和图表的方式展现出来,可以按不同分类分别展开,功能强大。
缺点
StatSVN统计的是所有代码行,包括注释和空行,但一般度量要求是有效代码行,在分析时需要注意这一点。
StatSVN不考虑修改的代码行数,只考虑与上一版本相比新增(+)与删除(-)的代码行数。
StatSVN只能是SVN下的一个项目,如果想看所有项目需要一个一个单独处理,或者将statsvn-0.7.0这个JAR包多复制几个文件夹。