GitHub считаем коммиты и не только

GitHub

«Social …». Вот и повод ввести элемент «писькомерства» в рабочий процесс 🙂 Для начала можно количеством коммитов померяться (поможет команда shortlog, запускать которую надо из корневой директории репозитория):

git shortlog -s -n --all

Конечно, на GitHub’е можно посмотреть статистику коммитов по ветке master, но хочется ж по всем веткам («all» — как раз и обеспечивает подсчет по всем веткам).

Тут стоит учесть, что коммиты от Ololosh1<olo@gmail.com> и Ololosh2<olo@gmail.com> будут считаться как коммиты от разных людей. Однако, это поправимо. Нужно сделать всего несколько лишних телодвижений. Нам необходимо создать файл .mailmap (также в корне репозитория). Создавать его вручную — дело долгое, нудное и неблагодарное. Воспользуемся той-же командой shortlog:

git shortlog -se | awk -F'\t' '{print $2,$3,$2,$3}' | sort > .mailmap

Если взять, что файл у нас получился вида:

Ololosh1 <olo@gmail.com>  Ololosh1 <olo@gmail.com>
Ololosh2 <olo@gmail.com>  Ololosh2 <olo@gmail.com>

То надо сделать из него:

Ololosh2 <olo@gmail.com>  Ololosh1 <olo@gmail.com>
Ololosh2 <olo@gmail.com>  Ololosh2 <olo@gmail.com>

Теперь коммиты будут считаться так, как надо.

Еще ж можно считать количество «задействованных» строк (запускать из корня git’а):

git ls-files | xargs -n1 git blame --line-porcelain | sed -n 's/^author //p' | sort -f | uniq -ic | sort -nr

Команда работает не очень быстро и ее результат отличается от того, что показывает сам GitHub в своей статистике.

Конечно, Вы должны понимать, что такие «рейтинги» не могут служить как единственно верные индикаторы качества работы людей.

, ,

Оставить комментарий

Top ↑ | Main page | Back