Как с помощью Mercurial измерить индивидуальный вклад?

Моя команда использует Mercurial, и я хотел бы знать относительный вклад каждого члена команды. Я знаю, что мы не можем измерить производительность строками кода, но я хотел бы посмотреть, внес ли каждый человек хотя бы что-то, даже если позже это было перезаписано другими. Итак, я не просто хочу видеть, кто отвечает за текущую версию (аннотацию а-ля Mercurial), но сделать это рекурсивно по всем ревизиям, в идеале с выводом, который можно легко визуализировать или вывести в электронную таблицу.

Какие-нибудь советы?


person Paul    schedule 11.12.2010    source источник


Ответы (2)


Именно для этого есть расширение под названием churn, оно связано с Mercurial, но не включается автоматически. Дополнительную информацию можно найти здесь: ChurnExtension.

В файле mercurial.ini в разделе [extensions] добавьте следующее:

[extensions]
churn=

Затем, чтобы посмотреть на отток вашего репозитория, просто выполните:

hg churn

Это выведет что-то вроде этого (это для проекта Noda-Time):

[C:\Dev\VS.NET\Noda-Time-docs] :hg churn
[email protected]              296444 *************************************************************************************************************
[email protected]       203877 ***************************************************************************
James Keesey                  80466 ******************************
[email protected]      25552 *********
Dmitry Bullavin               17657 ******
[email protected]  16325 ******
Dmitry Bulavin                 4273 **
james.keesey                   2650 *
matt.scharley                   768
configurator                    450
[email protected]                64
TeamCity@Nordrassil               2
person Lasse V. Karlsen    schedule 11.12.2010
comment
Интересно, что некоторые пользователи перечислены дважды, однако, возможно, они изменили свои имена. +1 в любом случае, приятно знать - person Denis Kniazhev; 11.12.2010
comment
Он перечисляет для каждого уникального имени, и все имена уникальны. Однако вы можете предоставить файл псевдонимов, который переименовывает некоторые имена, специально для решения этой проблемы. - person Lasse V. Karlsen; 11.12.2010
comment
Примерно то, что я искал. Спасибо! - person Paul; 11.12.2010

Churn выполняет свою работу, но обратите внимание, что если пользователь много перемещает файлы, у него будет огромное количество измененных строк. Я только что сделал тест, вот результаты:

C:\Projects\personal\test>hg churn
[email protected]     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
[email protected]     30 *****************************************

Обратите внимание, что я создал только 10 строк, но для перемещения файла я получил 20 изменений строки. Это не передает хорошую картину.

person Darius    schedule 01.02.2011
comment
Вероятно, это лучше подходит в качестве короткого комментария к ответу Лассе. - person Zero3; 12.09.2015