博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
也谈谈StatSVN
阅读量:7010 次
发布时间:2019-06-28

本文共 1247 字,大约阅读时间需要 4 分钟。

hot3.png

不想写一些和网上现有文献雷同的,想到哪就写到哪吧~

 

一.StatSVN利用的是SVN自带的diff插件,所以简单说,它只能识别出相邻版本之间在行数上的变化。至于行内的代码内容变化,欠奉~

所以搜集了一下目前网上大家公认的几个注意事项:

1.在编码阶段中前期使用,提交测试后就不宜再用了;

2.尽量减少“删除”、“重命名”、“移动”的操作;

3.在编码阶段要及时宣贯编码规范,并实施代码走查,以减少空行和注释行的误差;

4.使用JAVA开发的,建议提交代码前使用IDE对文件格式化操作,减小格式对统计结果的影响;

5.注意识别“源文件排版格式的变动”、“工具类的引用”(非JAR包形式的)、“配置文件的引入”等情况对统计结果的影响;

6.加强对分支的管理。StatSVN对“主干-分支”的计算就是简单的1+1。所以开发人员拉出一个工作分支,没写一行新代码,统计结果就变成了2。所以这里可以“统计指定路径”,或者“持续记录计算差值”,来实现对主干、分支代码的统计~

其实很多度量工作都是这样,我们没必要去纠结这个尺子准不准,只要尺子上有刻度,能把所有度量目标都能放在尺子上比比,就可以了。StatSVN是静态统计工具,很多网友都说它不准、不智能,其实多想想“差值”、“趋势”这个思路,也许就能解决很多误差的问题。以前网上有个故事,一个老头去买柿子,他知道商家的秤不准,所以先要了10个,商家说15元的,然后老头说“太多了,给我拿掉2个”,商家说13元。结果老头扔下2元钱,说“我就要那2个吧”……

 

二.关于StatSVN的操作,我就说说网上不太好搜的一些我个人总结出的经验:

1.现在的TSVN已经集成了命令行操作功能,在安装时钩选一下即可。同时check out可以通过TSVN来操作,也不会再有什么版本不一致的问题了。

2.生成log的环节,可以在命令行时,深入到任意一级目录下去操作,生成的log就是该目录下的。另外,在生成log时可以指定时间范围、版本范围:

svn log -v --xml -r r130-r159 > logfile.log

svn log -v --xml -r {2013-01-01}:{2013-06-01}> logfile.log

3.生成统计的环节,需要注意的就是那些参数了, 当中已经有一些说明,常用的也差不多就是这些~

-threads <int>,这个是指定svndiff的线程,默认值25,不知道有人改成50会有什么奇效。。

-tags-dir <路径>,说明说“识别tag的管理”?不知道对统计结果有何影响。。

其它还有几个参数,可以实现结果向ViewVC、Trac、Bugzilla的导出,就不多说了。

 

三.生成统计的过程,会很漫长,耐心是关键,另外好像挺耗内存的。。我运行了几次,都占用内存100MB上下,不知道再大些的库会是什么样~

转载于:https://my.oschina.net/softshellhero/blog/176168

你可能感兴趣的文章
AscII表
查看>>
BASE64图片转字符串
查看>>
springboot-国际化
查看>>
C11中替代gets()的函数
查看>>
[转]水晶报表自动补空行及格线(无分组版)
查看>>
PHP里用户密码的回复和管理
查看>>
jqprint导入jqgrid表格时,内容溢出的原因以及解决方法
查看>>
IOS self.使用
查看>>
POJ1151 Atlantis
查看>>
UltraEdit编辑器使用心得之正则表达式篇
查看>>
dnspod 批量添加记录
查看>>
ZCMU训练赛-H(模拟)
查看>>
Codeforces Round #449 (Div. 2) A. Scarborough Fair【多次区间修改字符串】
查看>>
CCCC L1-039. 古风排版【图形输出/循环控制行列/模拟/细节】
查看>>
POJ 1182 食物链 【带权并查集/补集法】
查看>>
V字形
查看>>
Flask学习笔记(3)-数据库迁移
查看>>
Hbase常用操作
查看>>
一行命令学会全基因组关联分析(GWAS)的meta分析
查看>>
第二阶段冲刺——six
查看>>