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

16

我的团队正在使用Mercurial,我想知道每个团队成员的相对贡献。我知道我们不能通过代码行数来衡量生产力,但我想看到每个人至少做出了某些贡献,即使后来被其他人覆盖了。因此,我不仅想看到谁负责当前版本(类似于Mercurial注释),而是要在所有修订版本中递归地进行这样的操作,最好能够轻松可视化或导出到电子表格。

有什么提示吗?

2个回答

23

有一个名为churn的扩展程序可以做到这一点,它已经和Mercurial捆绑在一起,但不是自动启用的。您可以在此处找到更多信息:ChurnExtension

在您的mercurial.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

这是一个有趣的事情,它列出了一些用户两次,但是他们可能更改了他们的名字。无论如何加1分,很高兴知道这个信息。 - Denys Kniazhev-Support Ukraine
1
它按独特名称列出,而这些名称都是唯一的。但是,您可以提供一个别名文件,以重命名某些名称,特别是为了解决此问题。 - Lasse V. Karlsen
非常符合我的要求。谢谢! - Paul Gestwicki

9

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行更改。这并不是一个好的表现。

这可能更适合作为对Lasse答案的简短评论。 - Zero3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接