Generowanie statystyk z repozytorium Git


373

Szukam dobrych narzędzi / skryptów, które pozwolą mi wygenerować kilka statystyk z repozytorium git. Widziałem tę funkcję na niektórych stronach hostujących kod i zawierały one informacje takie jak ...

  • zatwierdza na autora
  • zatwierdza na dzień / tydzień / rok / itp.
  • wiersze kodu w czasie
  • wykresy
  • ... wiele więcej

Zasadniczo chcę tylko dowiedzieć się, jak bardzo mój projekt rośnie w czasie, który programista popełnia większość kodu i tak dalej.

Odpowiedzi:


250

Oprócz GitStats ( generatora statystyk historii gitów ) wspomnianego przez xyld , napisanego w Pythonie i wymagającego Gnuplot dla grafów, jest też

  • projekt gitstat ( SourceForge ) ( internetowy interfejs statystyk git ), napisany w PHP i Perlu,
  • Git Statistics , alias gitstats ( framework metryk służący do gromadzenia statystyk dotyczących repozytoriów git ), napisany w Pythonie, wynik projektu git-statystyki na Google Summer of Code 2008 To nie jest aplikacja internetowa
  • gitinspector To raczej nowe narzędzie Python oparte na CLI do generowania ładnych raportów
  • Hercules - natywna aplikacja bez zależności, napisana w Go, specjalizująca się w zaawansowanych typach analiz.

1
zobacz odpowiedź xyld. gitstats (nie gitstat) jest prawdopodobnie najlepszym wyborem.
Jay Paroline,

Mam gitstats do zainstalowania po zainstalowaniu readline-6.2.tar.gz i gnuplot. Ale potem okazało się, że brakuje bibliotek niezbędnych do tworzenia obrazów statystycznych, co powoduje brak pngs podczas przeglądania danych wyjściowych gitstats. Więc właściwie to zrobiłem,
David van Dugteren

Dla porównania, ten zestaw narzędzi jest naprawdę ładny i prosty: github.com/dustin/bindir . Są oparte na Google Pithon Chart i są łatwe w użyciu: dustin.github.io/2009/01/11/timecard.html
Snicolas


4
Cool, to po prostu działa: apt-get install gitstats. Następnie uruchom go w katalogu git takim jak ten:gitstats ~/gitdir /tmp/output
Luc

275

zatwierdza na autora

git shortlog -s -n 

63
wyklucz połączenia:git shortlog -sn --no-merges
doblak

4
Flaga podaje adres e-mail git shortlog -sne
zlecających

1
Osobiście bardziej interesuje mnie liczba linii, które dotknęła ostatnia osoba, lub całkowita liczba linii zmienionych na osobę. Interesujące są również zatwierdzenia na autora.
Nathan Loyer,

12
git shortlog -s -n --since "DEC 31 2017"jeśli chcesz filtrować od określonej daty. Świetny do corocznych recenzji;)
Eneko Alonso

1
@Todd w 100% się zgadza. Miałem to na myśli jako żart
Eneko Alonso

78

Robię generator statystyk repozytorium git w Rubim, nazywa się git_stats .

Przykłady wygenerowane dla niektórych repozytoriów można znaleźć na stronie projektu .

Oto lista jego możliwości:

  • Statystyki ogólne
    • Pliki ogółem (tekstowe i binarne)
    • Wszystkie wiersze (dodane i usunięte)
    • Całkowite zobowiązania
    • Autorski
  • Aktywność (ogółem i na autora)
    • Zobowiązania według daty
    • Zatwierdza według godziny
    • Zatwierdza według dnia tygodnia
    • Zatwierdza według godziny tygodnia
    • Zobowiązania według miesiąca w roku
    • Zobowiązania według roku
    • Zobowiązania według roku i miesiąca
  • Autorski
    • Zatwierdza autor
    • Linie dodane przez autora
    • Linie usunięte przez autora
    • Linie zmienione przez autora
  • Pliki i linie
    • Według daty
    • Przez rozszerzenie

Jeśli masz pomysł, co dodać lub ulepszyć, daj mi znać, będę wdzięczny za wszelkie opinie.


Liczba obiektów i rozmiar repozytorium byłyby miłymi dodatkami do statystyk ogólnych
pdeschen

Zatwierdza: Dzień miesiąca. Czy są bardziej aktywne na koniec miesiąca?
Ole Tange

BARDZO FAJNY! Nie widziałem w przeszłości
FB

Naprawdę fajna robota, ale jedyne, co mnie niepokoi, to napisane na Rubby: D
Georgi Peev

43

Próbowałem http://gitstats.sourceforge.net/ , początki są bardzo interesujące.

Po zakończeniu git clone git://repo.or.cz/gitstats.gitprzejdź do tego folderu i powiedzgitstats <git repo location> <report output folder> (utwórz nowy folder raportu, ponieważ spowoduje to wygenerowanie dużej liczby plików)

Oto krótka lista statystyk z tego:

  • czynność
    • godzina dnia
    • dzień tygodnia
  • autorski
    • Lista autorów
    • Autor miesiąca
    • Autor roku
  • akta
    • Liczba plików według daty
    • Rozszerzenia
  • linie
    • Linie kodu
  • tagi

3
potrzebuje GnuPlot. Aby zainstalować Gnuplot, na Macu pobierz dmg stąd miscdebris.net/blog/2009/09/16/install-gnuplot-on-mac-os-x zastosuj tę poprawkę do bin gnuplot, leancrew.com/all-this / 2012/02 / fixing-gnuplot-on-os-x-10-7-3
loretoparisi

@Loretoparisi, pierwszy link już nie działa, stworzyłem tutorial na temat korzystania z Gitstats na Mac OSX 10.8.2 tutaj: softwarepassion.com/quick-peek-into-your-git-repo-with-gitstats
Kris

W Ubuntu, sudo apt-get install gnuplot
okwap

Wskazówki dotyczące uruchamiania go w systemie Windows: stackoverflow.com/a/29384484/24267 Niestety, gitstats nie okazały się zbyt przydatne - chciałbym zobaczyć lepszy podział statystyk dla każdego autora.
mhenry1384

Dla użytkowników systemu Windows: codeproject.com/Tips/830613/…
Dani

16

Szybkie wyszukiwanie w Google zaprowadziło mnie do: http://gitstats.sourceforge.net/

Próbowałeś tego projektu? Jestem pewien, że istnieją podobne projekty.


9
Szybka uwaga dla każdego, kto znajdzie to za pośrednictwem Google: gitstats to nie to samo, co gitstat powyżej. Zomg gitstats jest znacznie lepszy, poza tym nie ma piekła zależności. Jest samowystarczalny i po prostu działa.
Jay Paroline,

1
Z wyjątkiem gnuplot-py i firma wydaje się, że chce przeciągnąć 40 MB depsa na Fedorze na moim serwerze :(
Aiden Bell

4

Jeśli Twój projekt jest na GitHub, teraz (kwiecień 2013) masz Pulse (patrz „ Przyspiesz z Pulsem ”):

Jest bardziej ograniczony i nie wyświetla wszystkich potrzebnych statystyk, ale jest łatwo dostępny dla każdego projektu GitHub.

Pulse to świetny sposób na odkrycie ostatnich działań związanych z projektami.
Pulse pokaże ci, kto aktywnie się zobowiązał i co zmieniło się w domyślnej gałęzi projektu :

Puls

Link znajduje się po lewej stronie paska nawigacji .

Połączyć

Zauważ, że nie ma (jeszcze) interfejsu API do wyodrębnienia tych informacji.


4

A jeśli wolisz rozwiązanie hostowane, powinieneś sprawdzić Open Hub (wcześniej Ohloh.net). To miłe, ale nie oczekuj dużych statystyk.


Jeśli jesteś w porządku z nieco nieporadnym interfejsem i aktualizacjami co ~ 24 godziny, ohlohis to dobry wybór, inaczej wybrałbym podejście DIY.
drahnr

1
ohloh jest fajny, ale działa tylko na publicznych repozytoriach. Działa również z wieloma VCS, nie tylko z git.
naught101

@ naught101 Możesz spróbować gitential.com jako alternatywy. Jest w fazie beta, ale mierzy i wizualizuje godziny kodowania, produktywność projektów, zespołów, repozytoriów i indywidualnych programistów.
kszucs

3

git-bars może pokazywać „zatwierdzenia na dzień / tydzień / rok / itd.”

Możesz go zainstalować za pomocą pip install git-bars(por. Https://github.com/knadh/git-bars )

Dane wyjściowe wyglądają następująco:

$ 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 jest rozszerzonym widelcem narzędzia gitstats.

Nie jestem pewien, czy jest to w jakikolwiek sposób powiązane z projektem o tej samej nazwie na pypi, więc najlepiej jest pobrać najnowszą wersję z GitHub i zainstalować ją w środowisku Python.

Od listopada 2019 r. Mogłem korzystać z wersji 1.2.0 pod Windows 7, po udostępnieniu gnuplot w 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)

2

Jeszcze wczoraj dodałem plik git-analytics-docker-compose, który tworzy kilka kontenerów, aby rozpocząć analizę wielu repozytoriów git względem siebie.

Jest w stanie pokazać, że zatwierdzasz statystyki dotyczące autora, a także kilka statystyk różnic.

Możesz użyć dostarczonego klienta kątowego, a także kibana do wizualizacji statystyk.

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

Z czasem ulegnie poprawie.

Zrzut ekranu klienta Angular

Zrzut ekranu klienta Angular

Zrzut ekranu klienta Kibana

Zrzut ekranu klienta Kibana]



0

Niekoniecznie zapewnia skrypty, ale ta usługa o nazwie Haystack zasadniczo zapewnia statystyki, trendy i alerty oparte na aktywności git.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.