为什么 Subversion 代码分析工具得出的代码行统计和开发工具统计出来的相差很多?
有的同事发现用开发工具统计出来的代码行统计值比较低,而 Subversion 代码分析工具得出的代码行统计却高的离谱。针对这个问题,用下列工具做了测试。
代码行统计工具一览:
在对代码行工具进行核实的过程中,参考了下列工具:
cloc.pl: 参见 http://cloc.sourceforge.net/
wc : Unix 命令。
sloccount: 支持的语言有限。
最终得出的结论是: 在 Statsvn 提供的 Subversion 代码统计页面中,会出现两个不同的代码行概念:一个是历史代码行,一个是实际代码行。实际代码行和用户开发工具统计值基本相符,历史代码行是一个动态的概念,可能要远远高出实际代码行。
- 历史代码行
包含了对删除文件的统计,还包含了对代码中删除/修改的行的统计。是版本库特有的代码行统计量。因为当前最新代码的实际代码行,并不能代表实际工作量,而整个的代码变更历史(包含代码删除和代码修改)才能真正的反映工作量。
- 实际代码行
就是我们常说的代码行数统计量,是当前版本库中最新代码的代码量。不包含历史更改。
测试数据略...