Może ktoś ma lub zna gotowe (proste) rozwiązanie na robienie raportów z gita?
Repo mam na zewnętrznym serwerze (Debian + git) i chciałbym w prosty sposób móc generować sobie raporty z “postępów prac”, np. dla klienta do rozliczania pracy (“Panie, widzę jeden nowy przycisk a pan mi mówisz, że 40 godzin w tym tygodniu poszło???!!”). Wystarczy data i wiadomości z commitów, ew. podsumowanie liczby plików/zmian, ew. lista plików do każdego commitu.
Do serwera mam pełny dostęp więc może to być cokolwiek (może z wyjątkiem aplikacji okienkowej, chyba że można ją podłączyć zdalnie do repo).
git log?
Imho generowanie takich raportów to średni pomysł. Lepiej doedukować klienta, powiedzieć mu dlaczego development to nie tylko to co widać i tworzyć raporty ręcznie, tzn. pisać podsumowania, które zrozumieją osoby nietechniczne.
Zacznij od drugiej strony: kiedy klient chce mieć nowy przycisk to powiedz mu ile to będzie kosztowało. Zajrzyj wpierw w kod i:
- refaktor istniejącego kodu: 8h
- dodanie modeli (wraz z testami): 8h
- zmiany w kontrolerach: 8h
- widoki: 8h
- ostylowanie: 8h
I dialog:
- Drogi klienice, dodanie tego przycisku jest czasochłonne. Wymaga zmian w każdej warstwie i oprócz tego sporo czasu na uporządkowanie istniejącego kodu. Będzie to kosztowało około tygodnia pracy. Mam się za to wziąć czy robić coś innego?
No w sumie most obvious solution
Spojrzałem sobie na dokumentację, to ma tych opcji od groma. Kwestia tylko pobawić się z formatowaniem i wrzucić jako aliasy.
Na razie sobie tak na szybko zrobiłem coś takiego:
[code]#~/.bash_aliases:
function __gitLog~() { git log --date=short --pretty=format:"%ad: %s" --since=$1 --until=$2 ;}
alias gitlog=’__gitLog’[/code]
A woła się:
gitlog 2013-09-09 2013-09-15
A taki raport to wiadomo, że nie za bardzo się nadaje bezpośrednio dla klienta, bo pełno w nim będzie skrótów i technicznego żargonu. Ale jest baza, żeby sobie przypomnieć, co w danym okresie się robiło.
Ja napisałem kiedyś coś takiego dla siebie:
Podlicza commity per dzień i generuje log z podstawowymi informacjami. Przeczytaj sobie dokładnie kod, jest też tam link do dosyć sensownego blogposta.