105 votes

Quelles statistiques Git commit sont faciles à extraire

Auparavant, j'ai apprécié la capacité de TortoiseSvn à générer des statistiques de validation simples pour un référentiel SVN donné. Je me demande ce qui est disponible dans Git et je suis particulièrement intéressé par:

  • Nombre de commits par utilisateur
  • Nombre de lignes modifiées par utilisateur
  • activité dans le temps (par exemple, changements hebdomadaires agrégés)

Des idées?

214voto

Pat Notz Points 46841

En fait, git a déjà une commande pour cela:

git shortlog

dans votre cas, il semble que vous êtes intéressé par ce formulaire:

git shortlog -sne

Voir l' --help , pour diverses options.

Vous pourriez également être intéressé par le GitStats projet. Ils ont quelques exemples, y compris les statistiques pour le projet Git. À partir de la GitStat la page principale:

Voici une liste de quelques statistiques générées actuellement:

  • Statistiques générales: nombre total de fichiers, les lignes, les validations, les auteurs.
  • Activité: s'engage par heure de la journée, le jour de la semaine, heure de la semaine, mois de l'année, l'année et le mois et l'année.
  • Auteurs: liste des auteurs (nom, s'engage (%), d'abord de valider la date, le dernier commit la date, l'âge), auteur de mois, l'auteur de l'année.
  • Fichiers: le nombre de fichiers par date, extensions
  • Lignes: les Lignes de Code par jour

26voto

Tout d'abord, vous n'avez pas à tirer quoi que ce soit (comme dans le réseau de traction), parce que vous avez l'ensemble du référentiel et de l'ensemble de l'histoire locale. Je suis assez sûr qu'il y a des outils qui vont vous donner les statistiques, mais parfois vous pouvez juste être créatif avec les lignes de commande. Par exemple, (juste hors de ma tête) va vous donner le nombre de validations par l'utilisateur:

git log --pretty=format:%ae \
| gawk -- '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }'

D'autres statistiques que vous avez demandé peut avoir besoin de plus de réflexion mis en elle. Vous pouvez voir les outils disponibles. Googler git statistics de points à l' GitStats outil, je n'ai pas d'expérience avec, et encore moins d'idée de ce qu'il faut pour le faire fonctionner sur windows, mais vous pouvez essayer.

7voto

Jesper Rønn-Jensen Points 15212

Merci au pirate d’avoir répondu à cette question. Cependant, j’ai trouvé que ces versions modifiées étaient mieux adaptées à mon usage particulier:

 git log --pretty=format:%an \
| awk '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }'\
| sort -r
 

(en utilisant awk car je n'ai pas de gawk sur mon mac, et en triant avec le comitter le plus actif au dessus.) Il affiche une liste comme celle-ci:

  1205 therikss
 1026 lsteinth
  771 kmoes
  720 minielse
  507 pagerbak
  269 anjohans
  205 mfoldbje
  188 nstrandb
  133 pmoller
   58 jronn
   10 madjense
    3 nlindhol
    2 shartvig
    2 THERIKSS
 

2voto

VonC Points 414372

Notez que, si votre pension est sur GitHub, vous avez maintenant (Mai 2013) ont une nouvelle série de GitHub API pour obtenir des statistiques intéressantes.
Voir la section "Fichier de CRUD et d'un dépôt de statistiques désormais disponible dans l'API"

Que seraient les suivantes:

2voto

jhanifen Points 1902

Voici des façons d'obtenir des statistiques pour une branche spécifique ou deux hashs.

la clé ici est la capacité de faire de HACHAGE de HACHAGE..

Ci-dessous, je suis en utilisant la première valeur de hachage à partir d'une branche sur la TÊTE qui est la fin de cette branche.

Spectacle total s'engage dans une direction

  • la commande git log FIRST_HASH TÊTE..--pretty=oneline | wc-l
  • Sortie 53

Spectacle total s'engage par auteur

  • git shortlog FIRST_HASH..TÊTE -end
  • Sortie
  • 24 Nom De L'Auteur
  • 9 Le Nom De L'Auteur

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