Используя Mercurial, как я могу измерить индивидуальные вклады?
Моя команда использует Mercurial, и я хотел бы знать относительный вклад каждого члена команды. Я знаю, что мы не можем измерить производительность по строкам кода, но я хотел бы посмотреть, внес ли каждый человек по крайней мере что-то , даже если это было переписано другими позже. Таким образом, я не просто хочу увидеть, кто отвечает за текущую версию (A la Mercurial annotate), но сделать это рекурсивно через все ревизии, в идеале с выводом, который можно легко визуализировать или сброшено в электронную таблицу.
Какие-нибудь советы?
2 ответа:
Есть расширение именно для этого, названное
churn
, оно поставляется в комплекте с Mercurial, но не включается автоматически. Более подробную информацию вы можете найти здесь: ChurnExtension .В вашем ртутном.ini-файл, в раздел
[extensions]
добавьте следующее:[extensions] churn=Затем, чтобы посмотреть на отток вашего репозитория, просто сделайте:
hg churnЭто выведет что-то вроде этого (это для проекта Noda-Time):
[C:\Dev\VS.NET\Noda-Time-docs] :hg churn skeet@pobox.com 296444 ************************************************************************************************************* james.keesey@gmail.com 203877 *************************************************************************** James Keesey 80466 ****************************** dmitry.bulavin@gmail.com 25552 ********* Dmitry Bullavin 17657 ****** martinho.fernandes@gmail.com 16325 ****** Dmitry Bulavin 4273 ** james.keesey 2650 * matt.scharley 768 configurator 450 lasse@vkarlsen.no 64 TeamCity@Nordrassil 2
Отток делает свою работу, но обратите внимание, что если пользователь перемещает файлы много, у него будет огромное количество измененных строк. Я только что сделал тест, Вот результаты:
Обратите внимание, что я создал только 10 строк, но для перемещения файла я получил 20 изменений строк. Это не дает хорошей картины.C:\Projects\personal\test>hg churn darius.damalakas@gmail.com 10 ***************************************** C:\Projects\personal\test>hg mv a.a b.b moving a.a to b.b C:\Projects\personal\test>hg commit -m "moving 10 lines to another location" b.b committed changeset 1:c54200557152 C:\Projects\personal\test>hg churn darius.damalakas@gmail.com 30 *****************************************