453 votes

Générer des statistiques à partir d'un dépôt Git

Je suis à la recherche de bons outils/scripts qui me permettent de générer quelques statistiques à partir d'un dépôt git. J'ai vu cette fonctionnalité sur certains sites d'hébergement de code, et ils contenaient des informations comme...

  • commits par auteur
  • commits par jour/semaine/année/etc.
  • lignes de code au fil du temps
  • graphiques
  • ... beaucoup plus

En gros, je veux juste avoir une idée de la croissance de mon projet au fil du temps, savoir quel développeur commet le plus de code, et ainsi de suite.

3 votes

Si vous ne pouvez pas installer gitstats, vous pouvez au moins obtenir le fichier nombre de lignes de code par auteur en utilisant les commandes git de base : git ls-files | while read f; do git blame -w -M -C -C --line-porcelain "$f" | grep -I '^author '; done | sort -f | uniq -ic | sort -n --reverse

351voto

Ruslan Kabalin Points 1550

commits par auteur

git shortlog -s -n

91 votes

Exclure les fusions : git shortlog -sn --no-merges

9 votes

E flag vous donne l'adresse email des committers git shortlog -sne

3 votes

Personnellement, je suis plus intéressé par le nombre de lignes que chaque personne a été la dernière à toucher, ou le nombre total de lignes changées par personne. Les commits par auteur sont également intéressants.

299voto

Jakub Narębski Points 87537

A côté de GitStats ( générateur de statistiques de l'historique git ) mentionné par xyld écrit en Python et nécessitant Gnuplot pour les graphiques, il y a aussi

  • gitstat ( SourceForge ) projet ( interface web de statistiques git ), écrit en PHP et Perl,
  • Statistiques Git alias gitstats ( framework de métriques conçu pour rassembler des statistiques sur les dépôts git ), écrit en Python, résultat de Projet git-statistics au Google Summer of Code 2008 Il ne s'agit pas d'une application web
  • gitinspector Il s'agit d'un outil Python assez récent, basé sur l'interface CLI, qui permet de générer de beaux rapports.
  • Hercule - application native sans dépendances, écrite en Go, qui se spécialise dans les types d'analyses avancées.

1 votes

Voir la réponse de xyld. gitstats (pas gitstat) est probablement votre meilleure option.

0 votes

J'ai réussi à installer gitstats après avoir installé readline-6.2.tar.gz et gnuplot. Mais j'ai ensuite découvert qu'il manquait les bibliothèques nécessaires pour produire les images stat, ce qui entraîne des pngs manquants lors de l'affichage des résultats de gitstats. J'ai donc suivi ce qui suit pour que ça fonctionne correctement : dansanderson.com/blog/2011/03/

0 votes

Pour référence, cet ensemble d'outils est vraiment beau et simple : github.com/dustin/bindir . Ils sont basés sur carte google pithon et sont simples à utiliser : dustin.github.io/2009/01/11/timecard.html

82voto

tomgi Points 956

Je fais un générateur de statistiques de dépôt git en ruby, il s'appelle git_stats .

Vous pouvez trouver des exemples générés pour certains dépôts sur page du projet .

Voici une liste de ce qu'il peut faire :

  • Statistiques générales
    • Total des fichiers (texte et binaire)
    • Total des lignes (ajoutées et supprimées)
    • Total des engagements
    • Auteurs
  • Activité (totale et par auteur)
    • Commits par date
    • Commits par heure de la journée
    • Engagements par jour de la semaine
    • Engagements par heure de la semaine
    • Engagements par mois de l'année
    • Engagements par année
    • Engagements par année et par mois
  • Auteurs
    • Engagements par auteur
    • Lignes ajoutées par l'auteur
    • Lignes supprimées par l'auteur
    • Lignes modifiées par l'auteur
  • Fichiers et lignes
    • Par date
    • Par extension

Si vous avez une idée de ce qu'il faut ajouter ou améliorer, n'hésitez pas à me le faire savoir, j'apprécierais tout retour d'information.

0 votes

Le nombre d'objets et la taille du repo seraient des ajouts intéressants aux statistiques générales.

0 votes

Engagé par : Jour du mois. Sont-ils plus actifs à la fin du mois ?

0 votes

TRES COOL ! Je n'ai pas vu dans le passé

48voto

Jeevan Pingali Points 488

J'ai essayé http://gitstats.sourceforge.net/ les départs sont très intéressants.

Une fois git clone git://repo.or.cz/gitstats.git est terminée, allez dans ce dossier et dites gitstats <git repo location> <report output folder> (créer un nouveau dossier pour le rapport car cela génère beaucoup de fichiers)

Voici une liste rapide de statistiques à ce sujet :

  • activité
    • heure du jour
    • jour de la semaine
  • auteurs
    • Liste des auteurs
    • Auteur du mois
    • Auteur de l'année
  • fichiers
    • Comptage des fichiers par date
    • Extensions
  • lignes
    • Lignes de code
  • tags

4 votes

Il a besoin de GnuPlot. Pour installer Gnuplot, sur Mac, récupérez le dmg à partir d'ici miscdebris.net/blog/2009/09/16/install-gnuplot-on-mac-os-x l'application de ce correctif au bin gnuplot, leancrew.com/all-this/2012/02/fixing-gnuplot-on-os-x-10-7-3

0 votes

@Loretoparisi, le premier lien ne fonctionne plus, j'ai créé un tutoriel sur comment utiliser Gitstats sur Mac OSX 10.8.2 ici : softwarepassion.com/fr/quick-peek-into-your-git-repo-with-gitstats

0 votes

Dans ubuntu, sudo apt-get install gnuplot

16voto

dlamotte Points 2912

Une recherche rapide sur Google m'a conduit à : http://gitstats.sourceforge.net/

Avez-vous essayé ce projet ? Je suis sûr qu'il existe des projets similaires.

10 votes

Note rapide pour ceux qui trouvent ceci via Google : gitstats est pas la même chose que gitstat ci-dessus. Zomg gitstats est bien meilleur, dans la mesure où il n'a pas d'enfer de dépendance. Il est autonome et fonctionne tout simplement.

1 votes

Sauf gnuplot-py et compagnie qui semble vouloir glisser dans 40MB de deps sur Fedora sur mon serveur web :(

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X