2

我花了一天的大部分时间对我们的一个项目的代码库进行基本的一些内务更改(用System.out.println()log4j 替换所有调用)。

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

无论如何,是否有使用cvs diff或其他命令来准确计算已更改的行数?

我试过了

cvs diff -b -B -R

获取工作目录(以及递归子目录)中的所有更改,但是对于每个更改的文件,它还会打印出文件/版本信息,这使得仅计算输出行数毫无用处。

有任何想法吗?

4

4 回答 4

5

diffstat实用程序是一个很好的工具,可以从 cvs、svn 或其他 diff 的输出中获取一些简单的指标。

于 2008-11-08T11:06:48.740 回答
3

从 diff 输出中过滤掉多余的行,然后计算行数。

例如,grep 仅以 < 或 > 开头的行

cvs diff -b -B -R | egrep '^<|>' | wc -l
于 2008-10-22T19:58:32.303 回答
2

您可以简单地将 cvs diff 的输出通过管道传输到 diffstat。

于 2008-10-22T19:40:51.980 回答
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。

干杯,

于 2008-10-22T19:53:02.873 回答