我使用这个命令用cloc计算行数:
public static void printFizzBuzz(int from, int to, PrintStream out) {
if (from <= to) {
boolean mod3 = ((from % 3) == 0);
boolean mod5 = ((from % 5) == 0);
if (mod3 && mod5) {
out.println("FizzBuzz");
} else if (mod3) {
out.println("Fizz");
} else if (mod5) {
out.println("Buzz");
} else {
out.println(from);
}
printFizzBuzz(++from, to, out);
}
}
它告诉我,我添加了103行。
当我用'git diff'计算同一个文件时,它告诉我我添加了136行:
cloc --ignore-case --ignore-whitespace --diff src-copy/file.c src/file.c
如何验证cloc是否正确计算了行数?有没有选项输出两个文件的实际差异,所以我可以直观地检查并理解为什么两个程序的结果不匹配?
答案 0 :(得分:1)
通过从文件中获取cloc strip注释然后对仅代码文件进行视觉差异,您可以了解cloc认为两个文件之间的差异:
cloc --strip-comments nc --original-dir src-copy/file.c src/file.c
vimdiff src-copy/file.c.nc src/file.c.nc
(或用您选择的工具替换vimdiff
)。这至少会消除评论差异。 cloc工具标记的任何内容都应被cloc识别为代码更改计数的差异。
cloc没有显示diff比较内部的选项。 https://github.com/AlDanial/cloc/issues/152显示了一种在工具中添加调试语句的方法,以显示其中一些,但输出并不漂亮。