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