2009-10-08 11 views
23

Me han encargado que averigüe cuántas líneas de código he escrito este año. No es muy emocionante por una serie de razones, pero parece que podría ser una buena pregunta.¿Cuántas líneas de código se modificaron durante un período de tiempo?

Entonces, en su herramienta de control de versión favorita, ¿cómo puede saber cuántas líneas de código se han modificado? En mi respuesta particular, las líneas en blanco y los comentarios cuentan para simplificar el tiempo asignado para determinar la respuesta, pero siéntete libre de dar más detalles.

En mi caso particular, estoy usando svn, así que me voy a deshacer de todos los --- y otros resultados misc que svn log y svn diff de salida.

+16

El hecho de que alguien haga esta pregunta me preocupa porque creen que esta medida significa algo. – recursive

+5

¿Tu jefe es Bill Lumberg? – BobbyShaftoe

+0

@recursive - Jeff Atwood parece decir que mide algo. http://www.codinghorror.com/blog/archives/000637.html – Maslow

Respuesta

27

Use StatSVN. Lo uso en el trabajo y es genial, romperá LOC por desarrollador por mes. Dibujará gráficos bonitos, le dirá qué día de la semana y a qué hora marca el mayor número de códigos. Te dirá exactamente lo que necesitas saber.

+0

Lo estoy ejecutando ahora, aunque no estoy seguro de cómo funciona con las ramas. –

+0

@Nathan: Acabo de intentarlo. Por defecto, contará el código ramificado como si hubiera sido escrito. Pero por lo que vi, parece ser posible ignorar completamente las ramas. Entonces solo se mostraría el código que se fusionó en el tronco. Pero solo he hojeado rápidamente los documentos ... – sbi

3

Fisheye puede decirle cuántas líneas de código se han comprometido por desarrollador. Hay una buena función de gráficos que puede darte bonitos gráficos para esto.

-1

En Clearcase, tomar la especificación de configuración y añadir:

time <date-time> 
<rules for choosing branches or labels> 
end time 

hacer una segunda vista y comparar los dos. Si varios desarrolladores están trabajando en los mismos archivos, no tengo idea. No puedo decir que estoy entusiasmado con el uso de Clearcase, nunca.

-2

Si está utilizando subversion, puede usar el comando svn log con el modificador --xml y puede extraer las líneas de código desde allí. Puede ver las opciones de svn log usando svn help log. Como su salida es xml, puede ejecutar este xml y agregar los recuentos de línea en el código e ir desde allí.

+2

--xml no imprime esta información incluso con la opción -v (verbosa). – Antonio

1

También traté de resolver tareas tales como "cuántas líneas se quitaron, agregaron o simplemente cambiaron en el período de tiempo seleccionado". Así que escribí un simple script de shell (solo para Linux). Reúne algunas estadísticas sipmle sobre modificaciones de código. Más detalles y la escritura compartida que puede encontrar aquí:

http://cyber-fall.blogspot.com/2011/10/tools-linux-svn-generate-statistic.html

esperanza de que ayudará a usted y a los demás!

8

La solución más simple:

svn diff -x --ignore-eol-style -x -w http://svn/tags/releases/1.0 http://svn/tags/releases/2.0/ |diffstat 

esto es muy rudimentaria y no excluye insertos línea en blanco y así sucesivamente, pero tal vez es lo suficientemente bueno?

+0

Esto generará líneas modificadas dos veces (tanto agregadas como eliminadas) – ricab

0

Si usted está atascado en cvs:

cvs annotate > annotate.txt 
rem remove the portion before the name 
sed "s/^[0-9. (]*//" annotate.txt > annotate2.txt 
rem remove the portion after the name 
sed "s/[ ].*$//" annotate2.txt > annotate3.txt 
sort annotate3.txt > annotate4.txt 
uniq -c annotate4.txt > annotate5.txt 

http://jamesjava.blogspot.com/2007/01/who-has-changed-most-lines-in-cvs.html

4

Intente utilizar Golpea-de-Código métrica (que hace exactamente lo que está buscando). Puede recopilar los datos usando este hoc explicado en esta publicación de blog: Hits-of-Code Instead of SLoC

Cuestiones relacionadas