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