ZASTRZEŻENIE: Jestem autorem gitchangelog, o którym będę mówić poniżej.
TL; DR: Może chcesz sprawdzić własny dziennik zmian gitchangeloga lub wyjście ascii, które wygenerowało poprzednie.
Jeśli chcesz wygenerować dziennik zmian z historii git, prawdopodobnie będziesz musiał rozważyć:
- format . (Czysty niestandardowy ASCII, typ dziennika zmian Debiana, Markdow, ReST ...)
- niektóre filtrowanie zmian (prawdopodobnie nie chcesz widzieć wszystkich literówek lub kosmetycznych zmian w dzienniku zmian)
- niektóre zatwierdzają tekst przed włączeniem do dziennika zmian. (Zapewnienie normalizacji wiadomości jako zawierających pierwszą literę lub ostatnią kropkę, ale może to również oznaczać usunięcie specjalnych znaczników w podsumowaniu)
- czy twoja historia git jest kompatybilna ? Łączenie, tagowanie nie zawsze jest tak łatwo obsługiwane przez większość narzędzi. To zależy od tego, jak zarządzasz swoją historią.
Opcjonalnie możesz potrzebować jakiejś kategoryzacji (nowe rzeczy, zmiany, poprawki błędów) ...
Mając to na uwadze, stworzyłem i używam gitchangelog . Ma to na celu wykorzystanie konwencji komunikatów git commit do osiągnięcia wszystkich poprzednich celów.
Posiadanie konwencji zatwierdzania jest obowiązkowe, aby utworzyć fajny dziennik zmian (z użyciem lub bez gitchangelog
).
zatwierdzenie konwencji wiadomości
Poniżej znajdują się sugestie, co może być przydatne, aby pomyśleć o dodawaniu wiadomości zatwierdzania.
Możesz z grubsza podzielić swoje zobowiązania na duże sekcje:
- według zamiaru (na przykład: nowy, napraw, zmień ...)
- według obiektu (na przykład: dokument, opakowanie, kod ...)
- według odbiorców (na przykład: deweloper, tester, użytkownicy ...)
Dodatkowo możesz chcieć oznaczyć niektóre zatwierdzenia:
- jako „niewielkie” zatwierdzenia, które nie powinny być wypisywane do Twojego dziennika zmian (zmiany kosmetyczne, mała literówka w komentarzach ...)
- jako „refaktoryzator”, jeśli tak naprawdę nie ma znaczących zmian funkcji. Dlatego nie powinno to również stanowić części dziennika zmian wyświetlanego na przykład użytkownikowi końcowemu, ale może być interesujące, jeśli masz dziennik zmian dla programistów.
- możesz oznaczyć również „api”, aby zaznaczyć zmiany interfejsu API lub nowe elementy interfejsu API ...
- ...itp...
Spróbuj napisać komunikat zatwierdzenia, kierując reklamy do użytkowników (funkcjonalność) tak często, jak to możliwe.
przykład
Jest to standard git log --oneline
pokazujący, jak te informacje mogą być przechowywane:
* 5a39f73 fix: encoding issues with non-ascii chars.
* a60d77a new: pkg: added ``.travis.yml`` for automated tests.
* 57129ba new: much greater performance on big repository by issuing only one shell command for all the commits. (fixes #7)
* 6b4b267 chg: dev: refactored out the formatting characters from GIT.
* 197b069 new: dev: reverse ``natural`` order to get reverse chronological order by default. !refactor
* 6b891bc new: add utf-8 encoding declaration !minor
Jeśli więc zauważyłeś, wybrałem format:
{new|chg|fix}: [{dev|pkg}:] COMMIT_MESSAGE [!{minor|refactor} ... ]
Aby zobaczyć rzeczywisty wynik wyjściowy, możesz spojrzeć na koniec strony PyPI gitchangelog
Aby zobaczyć pełną dokumentację mojej konwencji komunikatów zatwierdzania, możesz zobaczyć plik referencyjny gitchangelog.rc.reference
Jak wygenerować z tego znakomity dziennik zmian
Wówczas całkiem łatwo jest stworzyć kompletny dziennik zmian. Możesz zrobić własny skrypt dość szybko lub użyć gitchangelog
.
gitchangelog
wygeneruje pełny changelog (ze skrawków jako wsparcie New
, Fix
...), i jest rozsądnie konfigurować do własnych konwencji popełniających. Obsługuje wszelkiego rodzaju wyjściowych dzięki templating przez Mustache
, Mako templating
i ma domyślną starszego napisany w Pythonie surowego; wszystkie obecne 3 silniki mają przykłady ich użycia i mogą wyświetlać dziennik zmian, jak ten wyświetlany na stronie PyPI w gitchangelogu.
Jestem pewien, że wiesz, że istnieje wiele innych git log
do changelog
narzędzi tam również.
--graph
, który wizualnie pokazuje, na których gałęziach znajdują się zatwierdzenia.