2008-10-22 51 views
2

我大部分时间都在做基本的一些家务管理变更,我们其中一个项目的代码库(用log4j代替所有的System.out.println()调用)。如何查找CVS版本之间更改的行数?

我很好奇我用这组更改更新了多少行代码。

反正有cvs diff或另一个命令得到一个准确的计数有多少行已经改变?

我已经试过

cvs diff -b -B -R 

让所有的工作目录的变化(和递归子目录),但对于每一个文件改变了它还会打印出的文件/版本信息,这使得刚刚计数输出线无用。

任何想法?

回答

3

的滤除diff的输出多余的线条和再算上线。

例如,仅grep的开始的行<或>

cvs diff -b -B -R | egrep '^<|>' | wc -l 
+0

这是我最终使用的,毕竟在你发布之前的几秒钟 - 谢谢 – 2008-10-22 20:02:30

+0

使用这个修改后的行会计算两次对吗? – 2010-03-08 16:35:33

1

你可以简单地输出CVS diff到diffstat。

+0

这很好,虽然它似乎对“jsp/blah.jsp”和“blah.jsp”等文件进行了重复计数。之前不知道diffstat,谢谢! – 2008-10-22 20:01:56

0

怎么样确认你已经改变了所有情况下的东西,如:

find . | egrep -v -e '(CVS|<other patterns you don't want>)' | \ 
    xargs egrep -e 'System\.out\.println[(][)]' | wc -l 

,应该给你零。

然后用'log4j'替换第二个egrep中的正则表达式应该使用wc -l返回已更改的行数。

HTH。

欢呼声,

罗布

5

diffstat实用程序是用于从CVS,SVN或其他差别的输出得到一些简单的指标一个很好的工具。

相关问题