Generazione di statistiche dal repository Git


373

Sto cercando alcuni buoni strumenti / script che mi permettano di generare alcune statistiche da un repository git. Ho visto questa funzione su alcuni siti di hosting di codice e contenevano informazioni come ...

  • si impegna per autore
  • si impegna al giorno / settimana / anno / ecc.
  • righe di codice nel tempo
  • grafici
  • ... molto di piu

Fondamentalmente voglio solo avere un'idea di quanto il mio progetto cresca nel tempo, quale sviluppatore impegna la maggior parte del codice e così via.

Risposte:


251

Oltre a GitStats ( generatore di statistiche di cronologia git ) menzionato da xyld , scritto in Python e che richiede Gnuplot per i grafici, c'è anche


1
vedi la risposta di xyld. gitstats (non gitstat) è probabilmente la soluzione migliore.
Jay Paroline,

Ho avuto gitstats da installare dopo aver installato readline-6.2.tar.gz e gnuplot. Ma poi ho scoperto che mancavano le librerie necessarie per produrre le immagini delle statistiche, con conseguente mancanza di png durante la visualizzazione dell'output di gitstats. Quindi praticamente seguito questo per farlo funzionare correttamente: dansanderson.com/blog/2011/03/…
David van Dugteren

Per riferimento, questo set di strumenti è davvero bello e semplice: github.com/dustin/bindir . Si basano sul grafico di Google Pithon e sono semplici da usare: dustin.github.io/2009/01/11/timecard.html
Snicolas

1
C'è anche
un'app

4
Fresco, questo funziona semplicemente: apt-get install gitstats. Quindi eseguilo su una directory git come questa:gitstats ~/gitdir /tmp/output
Luc

275

si impegna per autore

git shortlog -s -n 

63
escludi fusioni:git shortlog -sn --no-merges
doblak,

4
La bandiera ti dà l'indirizzo e-mail dei committenti git shortlog -sne
Kalpa Gunarathna,

1
Personalmente sono più interessato a quante linee ogni persona è stata l'ultima a toccare, o il numero totale di linee cambiate per persona. Anche gli impegni per autore sono interessanti.
Nathan Loyer,

12
git shortlog -s -n --since "DEC 31 2017"se si desidera filtrare da una determinata data. Ottimo per le revisioni annuali;)
Eneko Alonso,

1
@Todd 100% sono d'accordo. Lo intendevo come uno scherzo
Eneko Alonso il

78

Sto facendo un generatore di statistiche del repository git in ruby, si chiama git_stats .

Puoi trovare esempi generati per alcuni repository sulla pagina del progetto .

Ecco un elenco di cosa può fare:

  • Statistiche generali
    • File totali (testo e binario)
    • Linee totali (aggiunte ed eliminate)
    • Totale impegni
    • autori
  • Attività (totale e per autore)
    • Si impegna per data
    • Si impegna per ora del giorno
    • Si impegna per giorno della settimana
    • Si impegna per ora della settimana
    • Si impegna per mese dell'anno
    • Si impegna per anno
    • Si impegna per anno e mese
  • autori
    • Commette per autore
    • Linee aggiunte dall'autore
    • Linee cancellate dall'autore
    • Linee modificate dall'autore
  • File e linee
    • Per data
    • Per estensione

Se avete idea di cosa aggiungere o migliorare, per favore fatemi sapere, apprezzerei qualsiasi feedback.


Il conteggio degli oggetti e le dimensioni dei pronti contro termine sarebbero
buone

Impegna entro: giorno del mese. Sono più attivi a fine mese?
Ole Tange,

MOLTO FRESCO! Ho mai visto in passato
fb

Davvero un bel lavoro, ma l'unica cosa che mi preoccupa è che è scritto su Rubby: D
Georgi Peev,

43

Ho provato http://gitstats.sourceforge.net/ , le partenze sono molto interessanti.

Una volta git clone git://repo.or.cz/gitstats.gitfatto, vai a quella cartella e dì gitstats <git repo location> <report output folder>(crea una nuova cartella per il rapporto in quanto ciò genera molti file)

Ecco un breve elenco di statistiche da questo:

  • attività
    • ora del giorno
    • giorno della settimana
  • autori
    • Elenco degli autori
    • Autore del mese
    • Autore dell'anno
  • File
    • Conteggio dei file per data
    • estensioni
  • Linee
    • Linee di codice
  • tag

3
ha bisogno di GnuPlot. Per installare Gnuplot, su Mac prendi il dmg da qui miscdebris.net/blog/2009/09/16/install-gnuplot-on-mac-os-x applica questa correzione al cestino gnuplot, leancrew.com/all-this / 2012/02 / fixing-gnuplot-on-os-x-10-7-3
loretoparisi

@Loretoparisi, il primo link non funziona più, ho creato un tutorial su come utilizzare Gitstats su Mac OSX 10.8.2 qui: softwarepassion.com/quick-peek-into-your-git-repo-with-gitstats
Kris

In Ubuntu, sudo apt-get install gnuplot
okwap,

Suggerimenti per farlo funzionare su Windows: stackoverflow.com/a/29384484/24267 Sfortunatamente, non ho trovato gitstats troppo utile - mi piacerebbe vedere una migliore suddivisione delle statistiche per ciascun autore.
mhenry1384,


16

Una rapida ricerca su Google mi porta a: http://gitstats.sourceforge.net/

Hai provato questo progetto? Sono sicuro che ci sono progetti simili.


9
Nota rapida per chiunque lo trovi tramite Google: gitstats non è la stessa cosa di gitstat sopra. Zomg gitstats è molto meglio, insomuchas non ha inferno di dipendenza. È autonomo e funziona.
Jay Paroline,

1
Tranne gnuplot-py e la compagnia sembrano voler trascinare in 40 MB di deps su Fedora sul mio server web :(
Aiden Bell,

4

Se il tuo progetto è su GitHub, ora (aprile 2013) hai Pulse (vedi " Mettiti al passo con Pulse "):

È più limitato e non mostrerà tutte le statistiche di cui potresti aver bisogno, ma è prontamente disponibile per qualsiasi progetto GitHub.

Pulse è un ottimo modo per scoprire attività recenti su progetti.
Pulse ti mostrerà chi si è impegnato attivamente e cosa è cambiato nel ramo predefinito di un progetto :

impulso

Puoi trovare il link a sinistra della barra di navigazione .

collegamento

Si noti che non esiste (ancora) un'API per estrarre tali informazioni.


4

E se preferisci la soluzione ospitata, dai un'occhiata a Open Hub (precedentemente Ohloh.net). È bello, ma non aspettarti grandi statistiche.


Se stai bene con un'interfaccia un po 'goffa e gli aggiornamenti su una base di ~ 24h, ohlohis buona scelta, altrimenti sceglierei un approccio fai-da-te.
drahnr,

1
ohloh è bello, ma funziona solo su repository pubblici. Inoltre, funziona con molti VCS, non solo git.
nulla101

@ naught101 Potresti provare gitential.com in alternativa. È in versione beta, ma misura e visualizza le ore di programmazione, la produttività per progetti, team, repository e singoli sviluppatori.
kszucs,

3

git-bars può mostrarti "impegni per giorno / settimana / anno / ecc.".

Puoi installarlo con pip install git-bars(vedi https://github.com/knadh/git-bars )

L'output è simile al seguente:

$ 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    ▀

3

repostat è uno strumento avanzato di gitstats.

Non sono sicuro che sia in qualche modo correlato al progetto con lo stesso nome su pypi, quindi la soluzione migliore è scaricare l'ultima versione da GitHub e installarla nel proprio ambiente Python.

A partire da novembre 2019, sono stato in grado di utilizzare v1.2.0 su Windows 7, dopo aver reso gnuplot disponibile in PERCORSO.


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)

2

Proprio ieri ho aggiunto il mio file compositivo docker git-analytics, che crea diversi container per iniziare ad analizzare più repository git uno contro l'altro.

È in grado di mostrarti statistiche di commit nel tempo sull'autore e anche diverse statistiche diff.

È possibile utilizzare il client angolare fornito e anche kibana per visualizzare le statistiche.

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

Sarà migliorato nel tempo.

Schermata client angolare

Schermata client angolare

Schermata del client Kibana

Schermata del client Kibana]



0

Non fornisce necessariamente script ma questo servizio chiamato Haystack fornisce sostanzialmente statistiche, tendenze e avvisi basati sull'attività di Git.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.