2010-12-11 14 views
15

Mi equipo está utilizando Mercurial, y me gustaría saber las contribuciones relativas de cada miembro del equipo. Sé que no podemos medir la productividad por líneas de código, pero me gustaría ver si cada persona al menos contribuyó algo, incluso si fue sobrescrito por otros más tarde. Por lo tanto, no solo quiero ver quién es el responsable de la versión actual (a la anotación de Mercurial), sino hacer esto recursivamente a través de todas las revisiones, idealmente con resultados que puedan visualizarse fácilmente o arrojarse a una hoja de cálculo.Usando Mercurial, ¿cómo puedo medir las contribuciones individuales?

¿Algún consejo?

Respuesta

22

Hay una extensión exactamente para esto, llamada churn, se incluye con Mercurial, pero no se habilita automáticamente. Puede encontrar más información aquí: ChurnExtension.

En el archivo mercurial.ini, a la sección [extensions], añada lo siguiente:

 
[extensions] 
churn= 

A continuación, mirar a la mantequera de su repositorio, simplemente:

 
hg churn 

Esta es la salida algo como esto (esto es para el 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

Es una cosa interesante que enumera algunos usuarios dos veces, sin embargo, pueden haber cambiado sus nombres. +1 de todos modos, es bueno saber –

+1

Lista por nombre único, y los nombres son todos únicos. Sin embargo, puede proporcionar un archivo de alias que cambie el nombre de algunos nombres, específicamente para combatir este problema. –

+0

Más o menos exactamente lo que estaba buscando. ¡Gracias! – Paul

8

C hurn hace el trabajo, pero tenga en cuenta que si un usuario mueve mucho los archivos, tendrá grandes cantidades de líneas modificadas. Acabo de hacer una prueba, aquí están los resultados:

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

Tenga en cuenta que sólo he creado 10 líneas, pero para mover un archivo que tengo 20 cambios de formación. Eso no da una buena imagen.

+0

Esto probablemente sea más adecuado como un breve comentario a la respuesta de Lasse. – Zero3

Cuestiones relacionadas