基于svn diff结果的有效代码量统计

转载 2011年01月16日 15:35:00

转载于:http://bigwhite.blogbus.com/logs/92616077.html

 

 

很多公司的过程中都有阶段性统计新增或修改的有效代码行数这一环节,这里先不论统计出的结果用于做什么,就统计本身而言,常常存在诸多问题,比如统计过程耗时且繁琐、统计结果中估算成分较大,不精确等。这些问题以前也一直困扰着我们,并且长时间没有想出很好的解决办法。

今天脑子里突然冒出一个想法:能否根据
svn diff得到的结果分析出来有效代码量呢? svn diff的结果一般是这样的,分为几类:

纯新增代码,如:
+void foo() {
+    ... ...
+}

纯删除代码,如:
-void foo() {
-    ... ...
-}

修改的代码,如:
-void foo(void);
+void foo(int);

我们所要统计的所谓有效代码更多是指纯新增的代码和修改的代码,纯删除的代码可忽略不计。这样一来实际有效代码行数 = 纯新增代码行数 + 修改代码行数;而修改的代码在svn diff结果中体现为一减一加,实际修改行数是等于其+的行数的。也就是说有效代码行数就是svn diff结果中所有前缀为+的行的行数。svn diff输出格式相对规整,通过解析得到这个行数并非难事。最简单的方法就是使用
Shell脚本 了。

脚本全部内容这里就不列出来了,
这里 可以下载。其核心代码只有以下两行:

svn diff -r$start_revision:$end_revision $target $USERNAME $PASSWD > $TEMPFILE
add_lines_count=`grep "^+" $TEMPFILE|grep -v "^+++"|sed 's/^.//'|sed '/^$/d'|wc -l`

首先我们使用svn diff命令将两个修订号之间的差异重定向到一个临时文件中,然后使用grep、sed和wc的组合完成行数的计算:其中首先过滤出以+开头的行,但去除其中+++开头的行,得到的是所有只以一个+开头的行。再利用set 's/^.//'删除每行行首的那个+,用set '/^$/d'删除所有空行,最后利用wc -l计算总行数。

也就是说通过上面脚本运行后得到的有效代码行数是不包括空行的,但是包含注释代码。

有了这个脚本,以后的版本有效代码量统计就相当精确了,而且也无需每个人都参与统计,大大减少了工作量,甚至可以将这个工作做成自动化完成。

现在的我痛恨一切效率低下的个人行为和过程活动!遇到问题坚决改善,绝不姑息^_^。

基于svn diff结果的有效代码量统计

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://www.blogbus.com/bigwhite-logs/92616077.html 很多公司的过程中都有阶段性统...
  • yjtgod
  • yjtgod
  • 2013年10月11日 02:58
  • 1806

基于svn diff结果的有效代码量统计

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://www.blogbus.com/bigwhite-logs/92616077.html很多公司的过程中都有阶段性统计新...

如何配置vimdiff作为svn diff的查看代码的工具

LINUX下面的svn diff直接查看的话很吃力,也很不方便。所以网上找到如下解决方案,能方便的使用vimdiff来查看svn diff的代码查看工具,相当方便。 配置方法为: 1、编写...

统计C/C++有效代码量

一直想分享点方法,却又不知从何入手;正好老大让统计工程有效代码行数,就分享一下相关的经验。前后总共尝试了3种方案 (1)VS2010直接统计 (2)sourceinsight 总计 (3)自己写个脚本...

svn_diff_excel V1.0

  • 2011年03月26日 08:56
  • 3.38MB
  • 下载

svn diff excel

  • 2010年08月08日 16:11
  • 49KB
  • 下载

git的文件状态以及git diff结果分析 (staged已暂存的,unstaged取消暂存的)

本文是通过学习《Pro Git》--作者Scott Chacon 后所做的整理和思考笔记。 一.GIT管理下的文件周期 1.新添加的文件或文件夹是untracked状态,意思是git的版本管理里没有...

svn diff

  • 2012年06月07日 11:37
  • 639B
  • 下载

使用statsvn统计svn中的代码量

使用statsvn统计svn中的代码量 博客分类: 项目管理 statsvn代码统计  StatSVN介绍 StatSVN是一个Java写的开源代码统计程序,从statCVS移植而来,能够从Su...
  • samxx8
  • samxx8
  • 2015年03月11日 10:45
  • 900

svn代码量统计工具StatSVN的使用

一、使用前准备 需要安装svn命令行工具Subversion(现在安装包Setup-Subversion-1.8.9-1.msi直接安装即可)和下载StatSVN包,现在地址sourceforge.n...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于svn diff结果的有效代码量统计
举报原因:
原因补充:

(最多只允许输入30个字)