Génération de statistiques à partir du référentiel Git

373

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

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

Fondamentalement, je veux juste avoir une idée de la croissance de mon projet au fil du temps, du développeur qui engage le plus de code, etc.

BastiBen
la source

Réponses:

251

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

  • projet gitstat ( SourceForge ) ( interface de statistiques git basée sur le Web ), écrit en PHP et Perl,
  • Git Statistics , alias gitstats ( framework de métriques conçu pour collecter des statistiques sur les référentiels git ), écrit en Python, résultat du projet git-statistics de Google Summer of Code 2008 Ce n'est pas une application web
  • gitinspector est un nouvel outil Python basé sur CLI pour générer de bons rapports
  • Hercules - application native sans dépendances, écrite en Go, spécialisée dans les types d'analyses avancées.
Jakub Narębski
la source
1
voir la réponse de xyld. gitstats (pas gitstat) est probablement votre meilleur pari.
Jay Paroline
J'ai obtenu gitstats à installer après avoir installé readline-6.2.tar.gz et gnuplot. Mais j'ai ensuite constaté qu'il manquait les bibliothèques nécessaires pour produire les images statistiques, ce qui entraînait la disparition de pngs lors de la visualisation de la sortie gitstats. Donc, à peu près suivi cela pour le faire fonctionner correctement: dansanderson.com/blog/2011/03/…
David van Dugteren
Pour référence, cet ensemble d'outils est vraiment sympa et simple: github.com/dustin/bindir . Ils sont basés sur Google Pithon Chart et sont simples à utiliser: dustin.github.io/2009/01/11/timecard.html
Snicolas
1
Il y a même une application Mac pour cela: itunes.apple.com/us/app/gitstatx/id592679713?mt=12
pgpb.padilla
4
Cool, cela fonctionne simplement: apt-get install gitstats. Ensuite, exécutez-le sur un répertoire git comme celui-ci:gitstats ~/gitdir /tmp/output
Luc
275

s'engage par auteur

git shortlog -s -n 
Ruslan Kabalin
la source
63
exclure les fusions:git shortlog -sn --no-merges
doblak
4
Le drapeau vous donne l'adresse e-mail des committers git shortlog -sne
Kalpa Gunarathna
1
Personnellement, je suis plus intéressé par le nombre de lignes que chaque personne a touchées en dernier, ou le nombre total de lignes modifiées par personne. Les commits par auteur sont également intéressants.
Nathan Loyer
12
git shortlog -s -n --since "DEC 31 2017"si vous souhaitez filtrer depuis une date donnée. Idéal pour les revues annuelles;)
Eneko Alonso
1
@Todd 100% d'accord. Je voulais dire comme une blague
Eneko Alonso
78

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

Vous pouvez trouver des exemples générés pour certains référentiels sur la page du projet .

Voici une liste de ce qu'il peut faire:

  • Statistiques générales
    • Total fichiers (texte et binaire)
    • Total des lignes (ajoutées et supprimées)
    • Total des validations
    • Auteurs
  • Activité (total et par auteur)
    • S'engage par date
    • S'engage par heure de la journée
    • S'engage par jour de la semaine
    • S'engage par heure de la semaine
    • S'engage par mois de l'année
    • S'engage par année
    • S'engage par année et par mois
  • Auteurs
    • Commits 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 que vous souhaitez ajouter ou améliorer, veuillez me le faire savoir, j'apprécierais tout commentaire.

tomgi
la source
Le nombre d'objets et la taille du dépôt seraient de jolis ajouts aux statistiques générales
pdeschen
S'engage par: jour du mois. Sont-ils plus actifs à la fin du mois?
Ole Tange
TRÈS COOL! Havent vu dans le passé
fb
Un travail vraiment sympa, mais la seule chose qui me dérange est que c'est écrit sur Rubby: D
Georgi Peev
43

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

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

Voici une liste rapide des statistiques de ceci:

  • activité
    • heure du jour
    • jour de la semaine
  • auteurs
    • Liste des auteurs
    • Auteur du mois
    • Auteur de l'année
  • des dossiers
    • Nombre de fichiers par date
    • Extensions
  • lignes
    • Lignes de code
  • Mots clés
Jeevan Pingali
la source
3
il a besoin de GnuPlot. Pour installer Gnuplot, sur Mac, récupérez le dmg d'ici miscdebris.net/blog/2009/09/16/install-gnuplot-on-mac-os-x appliquez ce correctif au bac gnuplot, leancrew.com/all-this / 2012/02 / fixation-gnuplot-sur-os-x-10-7-3
loretoparisi
@ Loretoparisi, le premier lien ne fonctionne plus, j'ai créé un tutoriel sur la façon d'utiliser Gitstats sur Mac OSX 10.8.2 ici: softwarepassion.com/quick-peek-into-your-git-repo-with-gitstats
Kris
Dans Ubuntu, sudo apt-get install gnuplot
okwap
Conseils pour le faire fonctionner sous Windows: stackoverflow.com/a/29384484/24267 Malheureusement, je n'ai pas trouvé les gitstats trop utiles - j'aimerais voir une meilleure répartition des statistiques pour chaque auteur.
mhenry1384
Pour les utilisateurs de Windows: codeproject.com/Tips/830613/…
Dani
16

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.

dlamotte
la source
9
Note rapide pour quiconque trouve cela via Google: gitstats n'est pas la même chose que gitstat ci-dessus. Zomg gitstats est bien meilleur, insomuchas qu'il n'a pas d'enfer de dépendance. Il est autonome et fonctionne simplement.
Jay Paroline
1
Sauf que gnuplot-py et la société semblent vouloir glisser 40 Mo de dépôts sur Fedora sur mon serveur Web :(
Aiden Bell
4

Si votre projet est sur GitHub, vous avez maintenant (avril 2013) Pulse (voir " Se familiariser avec Pulse "):

Il est plus limité et n'affichera pas toutes les statistiques dont vous pourriez avoir besoin, mais il est facilement disponible pour tout projet GitHub.

Pulse est un excellent moyen de découvrir l'activité récente sur des projets.
Pulse vous montrera qui s'est engagé activement et ce qui a changé dans la branche par défaut d'un projet :

Impulsion

Vous pouvez trouver le lien à gauche de la barre de navigation .

Lien

Notez qu'il n'y a pas (encore) d'API pour extraire ces informations.

VonC
la source
4

Et si vous préférez une solution hébergée, vous devriez consulter Open Hub (anciennement Ohloh.net). C'est bien, mais ne vous attendez pas à de grosses statistiques.

lzap
la source
Si vous êtes d'accord avec une interface un peu maladroite et des mises à jour sur une base de ~ 24h, ohloh est un bon choix, sinon j'opterais pour une approche de bricolage.
drahnr
1
ohloh est cool, mais cela ne fonctionne que sur les dépôts publics. En outre, cela fonctionne avec beaucoup de VCS, pas seulement avec git.
naught101
@ naught101 Vous pouvez essayer gitential.com comme alternative. Il est en version bêta, mais mesure et visualise les heures de codage, la productivité des projets, des équipes, des référentiels et des développeurs individuels.
kszucs
3

git-bars peut vous montrer "commits par jour / semaine / année / etc".

Vous pouvez l'installer avec pip install git-bars(cf. https://github.com/knadh/git-bars )

La sortie ressemble à ceci:

$ git-bars -p month
370 commits over 19 month(s)
2019-10  7    ▀▀▀▀▀▀
2019-09  36   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2019-08  7    ▀▀▀▀▀▀
2019-07  10   ▀▀▀▀▀▀▀▀
2019-05  4    ▀▀▀
2019-04  2    ▀
2019-03  28   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2019-02  32   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2019-01  16   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-12  41   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-11  52   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-10  57   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-09  37   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-08  17   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
2018-07  1    
2018-04  7    ▀▀▀▀▀▀
2018-03  12   ▀▀▀▀▀▀▀▀▀▀
2018-02  2    ▀
2016-01  2    ▀
white_gecko
la source
3

repostat est un outil amélioré de fork de gitstats.

Je ne sais pas si cela est lié au projet portant le même nom sur pypi, donc votre meilleur pari est de télécharger la dernière version de GitHub et de l'installer dans votre environnement Python.

En novembre 2019, j'ai pu utiliser la version 1.2.0 sous Windows 7, après avoir rendu gnuplot disponible dans PATH.


usage: repostat [-h] [-v] [-c CONFIG_FILE] [--no-browser] [--copy-assets]
                git_repo output_path

Git repository desktop analyzer. Analyze and generate git statistics in HTML
format

positional arguments:
git_repo              Path to git repository
output_path           Path to an output directory

optional arguments:
-h, --help            show this help message and exit
-v, --version         show program's version number and exit
-c CONFIG_FILE, --config-file CONFIG_FILE
                        Configuration file path
--no-browser          Do not open report in browser
--copy-assets         Copy assets (images, css, etc.) into report folder
                        (report becomes relocatable)
alexandrul
la source
2

Pas plus tard qu'hier, j'ai ajouté mon fichier docker-compose git-analytics, qui crée plusieurs conteneurs pour commencer à analyser plusieurs référentiels git les uns contre les autres.

Il est capable de vous montrer des statistiques de validation au fil du temps sur l'auteur et également plusieurs statistiques de diff.

Vous pouvez utiliser le client angulaire fourni et également kibana pour visualiser les statistiques.

https://github.com/alexejsailer/git-analytics-docker

Il sera amélioré au fil du temps.

Capture d'écran du client angulaire

Capture d'écran du client angulaire

Capture d'écran du client Kibana

Capture d'écran du client Kibana]

Alexej Sailer
la source
0

Il ne fournit pas nécessairement de scripts, mais ce service appelé Haystack fournit essentiellement des statistiques, des tendances et des alertes basées sur l'activité de git.

aimé
la source