代码之家  ›  专栏  ›  技术社区  ›  matt b

如何查找cvs版本之间更改的行数?

  •  2
  • matt b  · 技术社区  · 16 年前

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

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

    有没有 cvs diff 或者另一个命令来获得更改了多少行的准确计数?

    我试过了

    cvs diff -b -B -R
    

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

    有什么想法吗?

    4 回复  |  直到 16 年前
        1
  •  3
  •   Maglob    16 年前

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

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

    cvs diff -b -B -R | egrep '^<|>' | wc -l
    
        2
  •  5
  •   jmcnamara    16 年前

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

        3
  •  2
  •   sanxiyn    16 年前

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

        4
  •  0
  •   Rob Wells    16 年前

    那么,验证您是否已使用以下内容更改了所有实例呢?

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

    那应该给你零。

    然后将第二个出口中的regex替换为'log4j',应该让wc-l返回您更改的行数。

    Hth.

    干杯,

    抢劫

    推荐文章