如何在 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>
然后,(这可能需要很长时间才能 运行,具体取决于您的存储库的大小)运行 HEAD
、HEAD~
、HEAD~~
,等等
这将涉及一些脚本将它们放在一起,但可以包含在一个很好的命令中以吐出最后一个,比如 5 个提交点。
我建议 https://github.com/AlDanial/cloc .
以前在Sourceforge上的时候用过,觉得很好用。如果您必须让自己受制于指标。 ;-)
我想在 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>
然后,(这可能需要很长时间才能 运行,具体取决于您的存储库的大小)运行 HEAD
、HEAD~
、HEAD~~
,等等
这将涉及一些脚本将它们放在一起,但可以包含在一个很好的命令中以吐出最后一个,比如 5 个提交点。
我建议 https://github.com/AlDanial/cloc .
以前在Sourceforge上的时候用过,觉得很好用。如果您必须让自己受制于指标。 ;-)