确定作者当前的代码分布
我认为如果可以带一个Git仓库,运行一些脚本,并让它产生代码库中的行数以及每个作者贡献它的比例,那么它会很整洁。
基本上,因为我是一名具有竞争力的编码员,所以我想要一个个人指标来查看我写的(在当前HEAD中)的行数是否大于我的合作伙伴。 说“我写了当前代码库的百分比”是一个有趣的统计数据。
有没有人想过要这样做? 我寻找了一种方法,但我的shell脚本不是最好的,所以我不能单独做。
您可以使用git log,如“哪些Git提交统计信息很容易获取”所示。
或者你可以看看Git Lookatgit项目,它可以检查已更改的行数,如其在gitauthor.rb
类中所示。
您可能需要gitdm,它可以完全满足您的需求。 我们将它用于马哈拉项目以产生贡献统计。
只要执行README建议的操作:
用于生成“谁写的2.6.x”LWN文章的典型命令行如下所示:
git log -p -M v2.6.19..v2.6.20 | gitdm -u -s -a -o results -h results.html
您也可以为自己的目的进行自定义。
你可以尝试解析git-blame
的输出。 该命令给出编辑文件每一行的最后一个人。
这个例子并不完全是你想要的,但我认为它给了你这个想法:
git blame -e the/file | awk -F '<|>' '{print $2}' | sort | uniq -c
这将打印作者的电子邮件地址及其最后修改的文件的行数,例如:
47 foo@bar.com
34712 blah@baz.com
为了让它在整个存储库上运行,你可以这样做:
git ls-files | while read f; do git blame -e $f; done | awk -F '<|>' '{print $2}' | sort | uniq -c
这里的想法是先用git ls-files生成文件列表,然后在每个文件上运行上面的代码片段(使用这里提到的代码片段)。 如果你在一个大的代码库上运行它,你可能希望将中间结果存储在临时文件中,而不是使用管道。
链接地址: http://www.djcxy.com/p/10695.html