使用Mercurial,我如何衡量个人贡献?

时间:2010-12-11 16:27:50

标签: mercurial metrics measurement

我的团队正在使用Mercurial,我想知道每个团队成员的相对贡献。我知道我们无法通过代码行来衡量生产力,但我想看看每个人是否至少贡献了某些东西,即使它后来被其他人覆盖了。所以,我不仅想看看谁负责当前版本(Mercurial annotate),而是通过所有修订递归执行此操作,理想情况下输出可以很容易地显示或转储到电子表格中。

任何提示?

2 个答案:

答案 0 :(得分:22)

这里有一个名为churn的扩展,它与Mercurial捆绑在一起,但不会自动启用。您可以在此处找到更多信息:ChurnExtension

在mercurial.ini文件的[extensions]部分中,添加以下内容:

[extensions]
churn=

然后查看存储库的流失,只需执行:

hg churn

这将输出类似的内容(这是Noda-Time project):

[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

答案 1 :(得分:8)

Churn完成这项工作,但请注意,如果用户经常移动文件,他将拥有大量更改的行。我刚做了一个测试,结果如下:

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 *****************************************

请注意,我只创建了10行,但是为了移动文件,我有20行更改。这并没有传达出好的画面。