statCVS的问题剖析

statCVS是一个很好的OPENSOURCE的项目,可以用来生成CVS中代码修改提交情况的报表。不过我在使用过程中,发现它只能用于主分支(即清除所有粘附位的版本)产生提交历史和数据统计,如果有基于分支的提交,将被statCVS忽略,并且基于这个原因,也无法对一个分支进行修改统计和代码分析了。如果对一个分支进行修改分析,因为log都是基于该分支的修改版本,所以基于主分支的修改将为空集合,所以statcvs.jar的执行结果将会出现NULLPointer异常而终止生成报表。
 
经过主分支和副分支的log文件对比,发现是statCVS的一个bug,因为修改已被统计成非零,而修改细节因为主分支要求零匹配,所以出现计数和元素不相符的情况而导致异常终止。
 
经过一个不太规范的规避,我们可以绕过这个陷阱,方法如下:
用如下方法取出某个分支(branch_name)的所有提交历史(工作目录通常应在本志的项目CVS根目录下)。
F:\module-path>cvs log -rbranch_name >f:\project.log
用如下方法取出某个时间段的所有提交历史(工作目录通常应在本志的项目CVS根目录下)
F:\module-path>cvs log -d"> 2009/5/1 " >f:\project.log
 
在文本编辑器中,修改文件内容,以规避陷阱:
UltraEdit: 正则表达式替换: %revision 1.[0-9.]+$ revision 1.2
意思就是将所以分支提交log换成主分支提交log格式,如
revision 1.2.2.12 --->revision 1.2
这样就骗过statCVS了,不过也就丢失了提交版本信息了。
 
接下来可以生成代码统计报表了(除了提交版本信息全变成1.2):
 
statcvs.jar的两个参数是log文件,项目cvs本地路径。output-dir选项为重定向报表HTML文件路径。
F:\module-path>java -jar pm.tool\statcvs- 0.5.0 \statcvs.jar  f:\project.log . -output-dir f:\temp\pm-60
分享至
一键收藏,随时查看,分享好友!
0人
了这篇文章
类别: 技术小结┆阅读( 0)┆评论( 0) ┆ 返回博主首页┆ 返回博客首页
上一篇 胡言乱语 下一篇 jQuery选择器补遗

相关文章

  • 用于StatCVS的log前期处理
  • Libvirt 虚拟化库剖析
  • 剖析 Linux hypervisor
  • 【专家门诊第120期】突破linux职业瓶颈――..

职位推荐

  • 前台兼人事助理
  • 高级系统运维工程师
  • 信息安全研究工程师
  • 桌面工程师
  • 系统工程师

文章评论

 
 

发表评论            

昵  称:
登录  快速注册
验证码:

点击图片可刷新验证码请点击后输入验证码博客过2级,无需填写验证码

内  容:

同时赞一个

每日博报 精彩不止一点关闭

你可能感兴趣的:(剖析,职场,休闲,statCVS)