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.