由于git blame
可用于显示修订版本和作者最后修改文件的每一行,因此可用于输出源自每个提交者的存储库中当前有多少LOC的统计信息:
$ git ls-tree --name-only -z -r HEAD | \
egrep -z -Z -E "\\.(cc|h|cpp|hpp|c|cs|R|r|py|tex)$" | \
xargs -0 -n1 git blame --line-porcelain | \
grep "^author " | sort | uniq -c | sort -nr
虽然git log --numstat
提供了一种简单的方法来创建时间序列,显示作者提交的数量,或者作者添加的LOC,或者作者删除的LOC等,我看不到简单的方法创建一个时间序列,显示源自每个提交者的LOC的实际数量的演变。
我知道我可以迭代repo中的所有提交(或者只是一些如果细节/准确性不重要)并执行上面的命令让git blame
重新计算作者对每次提交的总和,但是这似乎没有效率。
为了以更有效的方式创建时间序列,可以非常轻松地计算作者为git log --numstat
每次提交添加的LOC数量,但是,而不是删除删除的LOC数量通过提交者到该提交者的LOC数量,人们需要知道,对于每个删除的行,谁是作者(责备)然后,将那些行取下来指责该作者的LOC数。
所以我想我的问题是:有没有办法只责怪每次提交中删除的行?