使用statsvn

Filed Under (General) by rocksun on 19-12-2008

Tagged Under : , ,

我们的翻译项目已经有了很多成员,大家都做出了一定的贡献,我觉得可以验证一下我们大家的工作状况,所以我决定用各种工具进行统计,今天以statsvn开始。

首先从http://www.statsvn.org/downloads.html下载statsvn,解压缩statsvn-0.4.1.zip,其中有statsvn.jar和readme.txt。

检出我们的翻译项目,使用如下命令:

svn checkout http://svncndoc.googlecode.com/svn F:\translation\svncndocdemo

然后在F:\translation\svncndoc下,执行:

F:\translation\svncndocdemo>svn log –xml -v > svn.log

然后,到statsvn的解压缩目录下,运行

java -jar statsvn.jar F:\translation\svncndocdemo\svn.log F:\translation\svncndocdemo

运行这个命令的时候,可能会出现一些错误,某些修订可能会漏掉,没有关系,重新执行上面的命令就可以把漏掉的版本重新计算出来。我们的svncndoc执行完后,根目录下的数据如下:

Author Lines of Code
daijun 128289 (93.7%)
racoonwise 3858 (2.8%)
zhaozhi.1983 2935 (2.1%)
akeybupt2004 566 (0.4%)
wkw2006 397 (0.3%)
sdl 242 (0.2%)
luovel1983 193 (0.1%)
jiaqifeng 133 (0.1%)
Neil.Creater 132 (0.1%)
lanren365 117 (0.1%)

这个数据还真是蛮惊人的,主要原因是statsvn使用svn diff计算修改,而整个项目中的许多文件都是我添加进来的,所以计算的结果比较多,然后我们再看看我们翻译的主要项目trunk/svn目录下的情况:

Author Changes Lines of Code Lines per Change
Totals 79 (100.0%) 16820 (100.0%) 212.9
daijun 32 (40.5%) 13391 (79.6%) 418.4
zhaozhi.1983 21 (26.6%) 2441 (14.5%) 116.2
akeybupt2004 12 (15.2%) 566 (3.4%) 47.1
sdl 9 (11.4%) 241 (1.4%) 26.7
jiaqifeng 3 (3.8%) 133 (0.8%) 44.3
luovel1983 2 (2.5%) 48 (0.3%) 24.0

在这个统计中,daijun和zhaozhi.1983还是最多的,因为我们两个都做过这种直接添加文件类似的操作,所以对于我们这个项目来说这个结果还是不够好,所以我想清除一些添加文件的统计。所以我把修订21以前的修订删除掉了,然后重新统计,不过除了修改前面所说的svn.log(也可以再用svn log命令重新生成svn.log,使用-r指定范围),还应该清理缓存,缓存文件在C:\Documents and Settings\Administrator\.statsvn,把里面的cache文件清理掉。调整后/trunk/svn下的结果如下:

Author Changes Lines of Code Lines per Change
Totals 79 (100.0%) 14620 (100.0%) 185.0
daijun 32 (40.5%) 13391 (91.6%) 418.4
akeybupt2004 12 (15.2%) 566 (3.9%) 47.1
zhaozhi.1983 21 (26.6%) 241 (1.6%) 11.4
sdl 9 (11.4%) 241 (1.6%) 26.7
jiaqifeng 3 (3.8%) 133 (0.9%) 44.3
luovel1983 2 (2.5%) 48 (0.3%) 24.0

呵呵,没想到我的数据更高了,我想原因有二。首先,zhaozhi.1983以前的很多工作都在修订21以前,而修订21以后,我又添加过几次文件。其次,我做过很多评审,一次修改一个标点符号也会增加我的数据,所以大家要积极评审阿,以后我还是不要做些小修小补。最后看看/trunk/tsvn的状况:

Author Changes Lines of Code Lines per Change
Totals 14 (100.0%) 571 (100.0%) 40.7
wkw2006 7 (50.0%) 369 (64.6%) 52.7
daijun 1 (7.1%) 117 (20.5%) 117.0
Neil.Creater 6 (42.9%) 85 (14.9%) 14.1

嗯,这个结果比较理想,wkw2006做出了主要的工作,而我只进行过一次评审,而且很多修改就是批量替换。

总结:

感觉statsvn功能还是很不错的,对于copy-to的情况不会记录工作量,可以分目录察看工作量,而且还可以忽略某人的工作,就可以排除管理员管理操作的统计。另外statsvn还可以集成在maven中,成为项目报告和网站的一部分。

这次统计的完全报告可以看这个:http://www.subversion.org.cn/svncndoc/report/

有用的资源: