如何在 git 中创建 LOC 数据?

How to create LOC data in git?

我想在 git 中跟踪项目随时间的改进。

我需要按时间统计代码行数。例如。

Time        LOC
-----       -----
01/01/2015 29021
01/08/2015 29987
......

gitstats 抛出一些奇怪的错误。所以我需要另一种选择。

有什么想法吗?

这是一个想法的开始。

你可以有一个小脚本来检查引用,并输出所有非二进制代码内容:

#!/bin/sh
# catAll.sh
git checkout ;
for i in `git grep --cached -Il ''`; do
    cat $i
done

然后,将该输出通过管道传输到 wc 以获取 LOC:

catAll.sh | wc -l

获取提交日期:

git show -s --format=%ci <sha>

然后,(这可能需要很长时间才能 运行,具体取决于您的存储库的大小)运行 HEADHEAD~HEAD~~,等等

这将涉及一些脚本将它们放在一起,但可以包含在一个很好的命令中以吐出最后一个,比如 5 个提交点。

我建议 https://github.com/AlDanial/cloc .

以前在Sourceforge上的时候用过,觉得很好用。如果您必须让自己受制于指标。 ;-)