Obtenga la información de logging de SVN por lotes de la manera más eficiente

Estoy buscando una manera de estimar qué desarrollador aportó la mayor cantidad de código para cada file en un repository SVN. La única forma que tengo de averiguarlo es get el logging svn por file, analizar la primera línea y escribir todas estas inputs. El problema es que recuperar el logging completo por separado para cada file es muy ineficiente y lleva mucho time.

  1. ¿Hay alguna manera de get todas las inputs de logging para una carpeta, pero también con el nombre del file? La operación svn pnetworkingeterminada no parece especificar qué input de logging pertenece a qué file si solicita un logging de carpeta.
  2. Alternativamente, ¿hay alguna manera de realizar este tipo de consultas por lotes en el repository?

Se aceptan respuestas utilizando las herramientas de command-line svn o enlaces de lenguaje de progtwigción.

Si solo quiere saber qué usuario cambió qué files por revisión (sin importar la cantidad de cambios), puede usar la opción de línea de command -v con svn log . Esto también funciona en el directory de trabajo completo, así como en el repository remoto.

También es posible que desee utilizar la opción de línea de command --xml . Esto simplifica el análisis para la mayoría de los entornos de progtwigción.

Oh chico, va a ser una estadística interesante.

Si clasifica a sus desarrolladores usando este método, alentará a sus desarrolladores a generar muchos cambios y códigos. ¿Esto se usará para bonificaciones? El orfebre de vaca de Dilbert, Wally, amaría esto. Se escribiría un Ferrari antes de las 4PM. Sin embargo, si insistes …

En lugar de analizar cada file, simplemente puede tomar el logging desde la raíz del proyecto que le interesa y pasar el range de revisiones que desea.

Esto le dará los nombres de los desarrolladores que cometieron cada revisión. Aquí hay un ejemplo:

 $ svn log -r1:HEAD http://server/svn/project ------------------------------------------------------------------------ r1 | david | 2011-07-12 15:18:33 -0400 (Tue, 12 Jul 2011) | 1 line Adding directories ------------------------------------------------------------------------ r2 | bob | 2011-07-12 15:19:20 -0400 (Tue, 12 Jul 2011) | 1 line Adding property ------------------------------------------------------------------------ r3 | mark | 2011-08-21 10:33:51 -0400 (Sun, 21 Aug 2011) | 1 line 

Si también desea los nombres de los files, puede usar el parámetro --verbose :

 $ svn log -r1:HEAD --verbose http://server/svn/project ------------------------------------------------------------------------ r1 | david | 2011-07-12 15:18:33 -0400 (Tue, 12 Jul 2011) | 1 line Changed paths: A /branches A /tags A /trunk Adding directories ------------------------------------------------------------------------ r2 | bob | 2011-07-12 15:19:20 -0400 (Tue, 12 Jul 2011) | 1 line Changed paths: M /trunk Adding property ------------------------------------------------------------------------ r3 | mark | 2011-08-21 10:33:51 -0400 (Sun, 21 Aug 2011) | 1 line Changed paths: A /trunk/subversion A /trunk/subversion/control.ini A /trunk/subversion/pre-commit-kitchen-sink-hook.html A /trunk/subversion/pre-commit-kitchen-sink-hook.pl A /trunk/subversion/svn-watch.html A /trunk/subversion/svn-watch.pl Adding files ------------------------------------------------------------------------ 

Sin embargo, si realmente quieres saber quiénes son los progtwigdores más productivos, no mires el código. Los desarrolladores productivos escriben less código que sus colegas más ineficientes. Un buen desarrollador organizará el flujo del código de una manera eficiente, por lo que hay pocas excepciones que observar mientras que un desarrollador deficiente puede tomar el rumbo equivocado, y luego tiene que manejar todas las excepciones a sus reglas básicas.

Un desarrollador eficiente corrige ese file que contenía el error en lugar de cambiar docenas de files tratando de rastrear el error. De hecho, un desarrollador realmente bueno podría incluso reconocer que el problema podría resolverse modificando la configuration del entorno en lugar del código.

Desea descubrir quién está ejerciendo su influencia en el campo del desarrollo, mire su sistema de seguimiento de problemas. ¿Quién está trabajando en los problemas más importantes y dándolos la vuelta más rápido? ¿Quién agrega una function sin causar una cascada de errores?

El trabajo de un progtwigdor es resolver problemas, no codificar con sling.

Puede intentar el enfoque opuesto: svn log --xml -v ejecutado en la raíz del repository generará el logging completo en formatting XML, incluidas las routes de cambio. Luego lo analiza y recoge sus statistics.

    Intereting Posts