Сколько людей было вовлечено в проект? На основе системы контроля версий - PullRequest
5 голосов
/ 28 ноября 2009

Как вы узнаете, сколько разработчиков было задействовано в проекте с использованием системы контроля версий? Мой друг нашел этот способ поиска ответа в журнале git:

git log | grep Author: | sort -u | cut –delimiter=” ” -f2 | sort -u | wc -l

Есть ли прямой способ в git? Как насчет других систем контроля версий, таких как Subversion, Bazaar или Mercurial?

Ответы [ 7 ]

17 голосов
/ 29 ноября 2009

мерзавец

Команда shortlog очень полезна. Это обобщает типичный git-log вывод.

$ git shortlog -sn
   119  tsaleh
   113  Joe Ferris
    70  Ryan McGeary
    45  Tammer Saleh
    45  Dan Croak
    19  Matt Jankowski
    ...

Перейдите к wc, чтобы увидеть количество уникальных имен пользователей:

$ git shortlog -sn | wc -l
      40
9 голосов
/ 29 ноября 2009

Для Mercurial есть расширение, которое делает именно это: hg churn.

hg churn сортирует по измененной строке, если вы хотите количество изменений, используйте hg churn -c.

4 голосов
/ 29 ноября 2009

Для подрывной деятельности

svn log -q svn://path/to/repo | cut -f 3 -d " "  | sort -u
2 голосов
/ 29 ноября 2009

Есть плагин статистики для Bazaar, чтобы получить различную информацию о участниках проекта:

https://launchpad.net/bzr-stats/

1 голос
/ 05 декабря 2009

Mercurial имеет мощный встроенный язык шаблонов (см. hg help templates). Таким образом, вы можете получить список всех людей в проекте, не включая расширение оттока:

hg log --template '{author}\n' | sort -u

Если люди изменили свой адрес электронной почты (но в остальном сохранили свое имя), вы можете немного обработать ключевое слово шаблона author:

hg log --template '{author|person}\n' | sort -u

Затем добавьте wc -l в соответствии с приведенными выше командами.

1 голос
/ 28 ноября 2009

Более простая версия git:

git log --pretty=tformat:%an | sort -u | wc -l

или если вам нужны уникальные адреса электронной почты:

git log --pretty=tformat:%ae | sort -u | wc -l
1 голос
/ 28 ноября 2009

Я также не знаю, как найти простой путь для Mercurial, и хороший поиск всей его документации тоже ничего не выявил. Итак, вот команда * nix, похожая на ту, которую наш друг нашел для Mercurial:

hg log | grep user: | cut -c 14- | sort -u | uniq | wc -l

Кстати, я думаю, что есть ошибка с командой для git, второй sort -u обязательно должен быть заменен на uniq!

...