我们的翻译项目已经有了很多成员,大家都做出了一定的贡献,我觉得可以验证一下我们大家的工作状况,所以我决定用各种工具进行统计,今天以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/
有用的资源:
- Ant中使用statsvn的一个例子,介绍了如何使用哪个日期指定范围
http://jbrugge.com/blog/2007/02/27/using-date-ranges-with-statsvn/ - statsvn的用户手册
http://wiki.statsvn.org/User%20Manual.ashx