一,简介

代码统计在项目管理中经常运用,这样可以在一定程度上通过量来考核项目成员的绩效,同时广义上的统计则可以方便项目各种指标的追踪统计分析等。而StatSVN则是一款强大的工具,它可以基于SVN对以下数据进行统计:

1)程序员工作量统计

2)SVN提交日志统计

3)代码行

4)文件统计

5)文件夹大小统计

6)代码提交Tag云

等等方面进行统计,统计结果以表格和图表的方式进行。

这个工具的官方主页:http://statsvn.org/,而SVN相关工具可以从我之前的文章中的链接下载:http://hi.baidu.com/1987raymond/blog/item/d668ce1f7dc61f6ef724e468.html

本文主要举例阐述StatSVN的使用方法,但并完全叙述其所有内容,详细内容,请参看官方使用手册:http://wiki.statsvn.org/User%20Manual.ashx。这个工具使用Java编写,你需要确认的电脑上安装了Java1.4.x或者以上版本,可以在cmd.exe中运行 java -version 确定,以下是我本机的情况:

java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)

二,准备测试SVN版本库和代码

我在本机的Visual SVN Server上创建测试版本库STATSVN_TEST,并且创建两个测试账户TestUserA以及TestUserB。


将SVN迁出到E:\Apps下:


用这两个账号在Trunk下创建一个测试项目并且进行几次代码签入更改等操作。


最终的版本如下:


三,准备STATSVN执行的批处理文本

针对本文的例子,我写了一个批处理文件STATSVN_TEST.bat:

echo begin generating stat
echo ---------------------

cd /d "E:\Apps\STATSVN_TEST"
svn log --xml -v > svn.log

cd /d E:\Raymond\statsvn-0.7.0

java -jar statsvn.jar -disable-twitter-button -include

"**/*.cs;**/*.aspx;**/*.js;" -exclude

"**/Bin/**;**/*.dll;" -output-dir "E:\Raymond\statsvn-

0.7.0\Result\STATSVN_TEST
"

"E:\Apps\STATSVN_TEST\svn.log" "E:\Apps\STATSVN_TEST"

echo ---------------------

echo generating stat succeed
pause

E:\Raymond\statsvn-0.7.0\Result\STATSVN_TEST\index.html
exit

请注意以上红色标注的内容:

"E:\Apps\STATSVN_TEST"是SVN签出的地址;E:\Raymond\statsvn-0.7.0 是我的statsvn工具的文件statsvn.jar所在地址; -include参数指需要统计的文件的类型,**表示0/多个文件夹,*表示0/多个字符,?代表单一字符,路径以;隔开;-exclude参数指不包含的,与include一致,只不过设置了include后就不用再设置exclude参数了;-output-dir 参数指输出结果的路径,statsvn将生成很多的文件包括统计的图片、html文档等等;"E:\Apps\STATSVN_TEST\svn.log" "E:\Apps\STATSVN_TEST"分别是SVN生成的日志的路径以及SVN签出的地址; E:\Raymond\statsvn-0.7.0\Result\STATSVN_TEST\index.html是生成的结果的首页文件。

四,运行结果

点击运行刚刚建立的批处理文件,程序开始运行:



最终会打开程序运行结果的首页:


Developers链接,按照程序员展示其代码统计等信息:




Commit Logs 链接:




Lines of Code链接:


File Sizes and File Counts


Directory Sizes


Repo Heatmap


LOC and Churn



还有其他的一些统计页面,这里不再叙述,可以参看自己的测试结果。

本文为原创文章,如需转载,请注明转载地址,谢谢。

About author
Disclaimer
The opinions and comments expressed herein are my own personal opinions and do not represent my employer's view in any way.
Comments
No comments.
Add comment
Title
Title is required.
Name
Name is required.
Email
Please input your personal email with valid format.
Comments
Please input comment content.
Captcha Refresh
Input captcha:

Subscription

Statistics

Locations of visitors to this page