我必须在git repo中计算每次提交添加/删除的代码数量,但我已经说过repo有点borked。有一次,其中一个开发人员重复了相同的提交,其中一个被修改了,没有使用rebase并且之后将它们合并。
历史是(部分):
D
| \
C |
| B
| /
A
B和C都删除了相同的文件(导致每次提交删除48k行),然后创建一个空D提交。 C添加了一些B没有的文件。
我正在运行git log --shortstat --reverse --pretty=oneline > log.txt
命令来获取日志,然后逐行读取并添加/减去返回的值。
日志中的位(为简洁而简化):
SHA-A message
4 files changed, 134 insertions(+), 3 deletions(-)
SHA-B message
6 files changed, 48337 deletions(-)
SHA-C message
13 files changed, 9 insertions(+), 48342 deletions(-)
SHA-D Merge branch 'feature/B' of origin into feature/B
我也尝试过使用git-loc
输出是:
2018-01-09 15:31:00 10 +10 -0 c3694d2 DemoBytom@gmail.com A
2018-01-09 15:33:22 0 +0 -10 dc17b64 DemoBytom@gmail.com B
2018-01-09 15:33:48 -8 +2 -10 9cad481 DemoBytom@gmail.com C
2018-01-09 15:34:50 -8 +0 -0 f22017c DemoBytom@gmail.com Merge branch 'origin/feature/B' into feature/B
2018-01-09 15:34:56 -8 +0 -0 9e495a1 DemoBytom@gmail.com Merge branch 'feature/B'
现在 - 问题是 - 我是否可以在提交中以某种方式获得适当数量的代码,即使某些删除/插入重复然后合并?
我需要提供有关我们的存储库如何更改的统计信息,以及在不同时间段编写了多少代码,我无法用负值显示它们,也不能实际地通过每个repo中的每个提交来查找occurencies。在每个提交步骤中是否有任何可以显示正确行数的工具?