2009-11-20 20 views
0

Je suis à la recherche d'un outil qui me permettra de compiler une histoire de certaines mesures de code pour un projet donné.Compiling informations historiques (en particulier. SLOCs) au sujet d'un projet

Le projet est stocké à l'intérieur d'un dépôt Mercurial et a une centaine de révisions. Je cherche quelque chose qui:

  • vérifie chaque révision
  • calcule les paramètres et les stocke quelque part avec un identifiant de la révision
  • fait la même chose avec les révisions suivantes

Pour un début, en comptant les SLOCs serait suffisant, mais il serait également bon d'analyser # de tests, TestCoverage etc.

Je sais que de telles choses sont généralement traitées par un serveur CI, h outefois Je suis en solo sur ce projet et ont donc pas pris la peine de mettre en place un serveur de CI (je voudrais utiliser TeamCity mais je n'ai pas vu vraiment l'avantage de le faire dans le beginnig). Si j'avais configuré mon serveur CI maintenant, pourrait-il gérer cela?

Répondre

2

Selon la suggestion de gigue, j'ai écrit un petit script bash s'exécutant dans cygwin en utilisant sloccount pour compter les lignes source. La sortie a été tout simplement jeté à un fichier texte:

#!/bin/bash 
COUNT=0 #startrev 
STOPATREV = 98 
until [ $COUNT -gt $STOPATREV ]; do 
     hg update -C -r $COUNT >> sloc.log # update and log 
     echo "" >> sloc.log # echo a newline 
     rm -r lib # dont count lib folder 
     sloccount /thisIsTheSourcePath | print_sum 
     let COUNT=COUNT+1 
done 
bien
0

S'il me écrivaient des logiciels pour faire ce genre de chose, je pense que je largue des résultats des métriques pour le projet en un seul fichier, et le contrôle de révision qui. Ensuite, l'outil «analyse historique» devrait extraire les anciennes versions de ce seul fichier, plutôt que d'avoir à retirer chaque ancienne copie de l'ensemble du référentiel et à réexécuter tous les tests à chaque fois.

+0

, il est trop tard pour le faire maintenant :-) –

+0

Eh bien, pas exactement. Votre outil devrait essentiellement faire la même chose. Si cela peut le faire, vous pouvez. –

1

Vous pourriez écrire un p. script shell qui

  1. chèques première version
  2. course sloccount dessus (sauf sortie)
  3. de départ prochaine version
  4. répétez les étapes 2-4

Ou regardez dans ohloh qui semble avoir un soutien mercurial maintenant.

Sinon, I ne connaît aucun outil de statistiques SCM prenant en charge mercurial. Comme mercurial est relativement jeune (depuis 2005), cela pourrait prendre un certain temps avant que de tels «cas d'utilisation secondaire» soient soutenus. (ASTUCE: peut-être fournir une bibliothèque hgstat vous-même comme pour svn et csv)