我有什么方法可以找到谁使用@Test
或类似内容提交了包含git log
的最多行?
答案 0 :(得分:0)
我编写了这个简短的python脚本,它在python代码库中寻找类似的模式:
import collections
import subprocess
lines_by_author = collections.defaultdict(int)
for line in subprocess.check_output((
'git', 'log', '-G', '^def test', '--format=%ae %h',
)).decode().splitlines():
email, h = line.split()
for line in subprocess.check_output((
'git', 'show', h,
)).decode().splitlines():
if line.startswith('+def test'):
lines_by_author[email] += 1
elif line.startswith('-def test'):
lines_by_author[email] += 1
import pprint
pprint.pprint(sorted(lines_by_author.items(), key=lambda kv: -1 * kv[1]))
通过将参数更改为@Test
和两个-G
来电,可以修改脚本以查找startswith()
。
它将产生如下输出:
$ python3 tests_by_user.py
[('user1@example.com', 1351),
('user2@example.com', 129),
('user3@example.com', -5)]