代码行差异统计工具,用于比较两个代码包的新增,修改,删除的代码量. diffcount 的可执行程序名为 diffcount.exe
本程序在sourceforge上面有相应的开源项目。
想查询参数信息,请使用 diffcount --help 查询帮助
diffcount --cn-help 可以查询中文帮助, 也可以查看doc下的"命令行参数说明.txt"
通过例子介绍使用方法如下:
1.差异统计
统计某一个版本的代码包相对于一个原始的基线代码包,变动的代码量
以及变动的代码量中各语言非空非注释行(NBNC)的结果
diffcount 缺省执行的就是差异统计,直接跟上两个代码包的目录即可
在diffcount目录下执行:
diffcount test\sp1 test\sp2
实际使用中,可能会有文件名和目录名大小写不一致的情况,如果希望忽略
文件名大小写的差异,需要使用 --ignore-case 参数,否则两个一样的文件
一个会算作删除,一个会算作新增
G:\diffcount>diffcount test\sp1 test\sp2
Diffcount [test\sp1] and [test\sp2] result:
LANG ADD MOD DEL A&M BLK CMT NBNC RATE
-----------------------------------------------------------------------
C 44 7 26 51 8 11 35 1.00
Pascal 0 0 25 0 0 0 0 0.23
Java 7 4 11 11 0 3 9 0.41
Config 31 4 0 35 1 0 34 0.12
XML 126 0 0 126 2 0 124 0.12
-----------------------------------------------------------------------
Convert all NBNC lines to standard C
Total: 57.65 (standard C lines)
ADD MOD DEL A&M BLK CMT NBNC RATE 的 含义分别为:
新增、修改、删除、新增+修改、空行、注释、非空非注释行、标准C折算率
2.代码统计:
如果需要,可以把diffcount当作普通的代码行统计工具,统计一个代码包
代码统计使用 -c (或者--count-only)参数, 在diffcount目录下执行
diffcount -c test\count
执行结果如下:
G:\diffcount>diffcount -c test\count
Counting package [test\count] result:
LANG TOTAL BLK CMT NBNC RATE
-----------------------------------------------------------------------
C 203 46 61 101 1.00
C++ 57 7 25 25 0.42
Pascal 117 24 17 79 0.23
Java 71 7 24 40 0.41
ASM 129 34 12 85 2.50
C# 18 1 1 17 0.20
Basic 447 140 20 295 0.21
Perl 97 4 26 74 0.16
TCL/TK 91 12 26 54 0.50
Config 116 13 0 103 0.12
XML 126 2 0 124 0.12
-----------------------------------------------------------------------
Convert all NBNC lines to standard C
Total: 490.00 (standard C lines)
如果想显示每一个文件的具体信息,请使用 --print-files-info 参数