Используя Mercurial, как я могу измерять индивидуальные взносы?

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

Любые советы?

Ответы

Ответ 1

Здесь есть расширение, называемое 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
[email protected]               2

Ответ 2

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 изменений строки. Это не передает хорошую картину.