Intereting Posts
хранить git-файлы в другой папке Используйте несколько филиалов для развертывания TeamCity Зависимости от ветвей функций с Gitflow Как применить git patch в репозитории с измененной историей? разрешения subversion на файлы в .svn Github Push не появляется в качестве вклада Восстановление флажков конфликтов объединения git Внедрение протокола конкретной ошибки git с помощью Ansible Playbook Что такое эквивалент svn для «git add -u»? следует использовать теги или ветки? Что лучше для отслеживания вашего исходного кода в Git каждой ночной сборки с Jenkins Git Игнорировать отслеживаемые файлы gitolite – git с Дженкинсом – невозможно получить доступ Как восстановить файл удаленных файлов .gitmodule? Должен ли я использовать решение для хостинга программного обеспечения для своих личных проектов? конвертировать проект без git в проект git и нажимать его на ретрансляцию gerrit

Можно ли подсчитать количество новых тестов JUnit на человека с помощью git-журнала?

Есть ли какой-либо способ для меня найти, кто совершил наибольшее количество строк, содержащих @Test используя git log или аналогичный?

Я написал этот короткий скрипт python, который ищет аналогичный шаблон в python codebase:

 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)]