2010-12-11 83 views
15

Mon équipe utilise Mercurial, et j'aimerais connaître les contributions relatives de chaque membre de l'équipe. Je sais que nous ne pouvons pas mesurer la productivité par lignes de code, mais je voudrais voir si chaque personne au moins contribué quelque chose, même si elle a été écrasée par d'autres plus tard. Donc, je ne veux pas seulement voir qui est responsable de la version actuelle (à la Mercurial annotate), mais de le faire récursivement à travers toutes les révisions, idéalement avec une sortie qui peut être facilement visualisée ou déversée dans une feuille de calcul.En utilisant Mercurial, comment puis-je mesurer les contributions individuelles?

Des conseils?

Répondre

22

Il y a une extension exactement pour cela, nommée churn, elle est fournie avec Mercurial, mais pas automatiquement activée. Vous pouvez trouver plus d'informations ici: ChurnExtension.

Dans votre fichier Mercurial.ini, à la section [extensions], ajouter ce qui suit:

 
[extensions] 
churn= 

ensuite de regarder le taux de désabonnement de votre dépôt, il suffit de faire:

 
hg churn 

Affichera quelque chose comme ça (ce qui est pour le Noda-Time project):

 
[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 
+0

Il est intéressant de noter deux fois certains utilisateurs, mais ils ont peut-être changé de nom. +1 de toute façon, agréable à savoir –

+1

Il liste par nom unique, et les noms sont tous uniques. Vous pouvez toutefois fournir un fichier alias qui renomme certains noms, en particulier pour résoudre ce problème. –

+0

À peu près exactement ce que je cherchais. Merci! – Paul

8

C hurn fait le travail, mais notez que si un utilisateur déplace beaucoup de fichiers, il aura d'énormes quantités de lignes modifiées. Je viens de faire un test, voici les résultats:

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

Notez que je n'ai créé 10 lignes, mais pour déplacer un fichier que je suis arrivé 20 changements de ligne. Cela ne donne pas une bonne image.

+0

Ceci est probablement mieux adapté comme un court commentaire à la réponse de Lasse. – Zero3