¿Cuántas líneas de código se modificaron durante un período de time?

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.

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

En mi caso particular, estoy usando svn, así que voy a deshacerme de todos los resultados — y otros misc que registran svn log y svn diff.

Use StatSVN . Lo uso en el trabajo y es genial, romperá LOC por desarrollador por mes. Dibujará charts 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.

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 rudimentario y no excluye inserciones en línea en blanco, etc., pero tal vez sea lo suficientemente bueno?

Intenta usar la métrica Hits-of-Code (que hace exactamente lo que estás buscando). Puede recostackr los datos utilizando este hoc explicado en esta publicación de blog: Hits-of-Code en lugar de SLoC

Fisheye puede decirle cuántas líneas de código se han comprometido por desarrollador. Hay una buena function de charts que puede proporcionarle bonitos charts para esto.

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

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

Espero que te ayude a ti y a los demás.

Si estás 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

En Clearcase, tome la especificación de configuration y agregue:

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

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

Si está utilizando subversion, puede usar el command 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í.