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