Opisuj merge!
Changelog jest ważny. Changelog jest liniowy. Historia gita nie jest liniowa,
ale może być dzięki przełącznikow git log --first-parent
. Dzięki niemu nie
zobaczymy wszystkich malutkich commitów wrzucanych na merge’owanego brancha, a
jedynie sam merge commit. Dlatego właśnie ważne jest, żeby opisywać w nim ogół
wprowadzanych zmian, a nie zostawiać jedynie standardowe “Merge branch ‘feat’
into ‘master’“.
Bardzo to ułatwia późniejsze generowanie changeloga. Przykładowo, mój najnowszy wynalazek pokaże i ładnie sformatuje opis wszystkich zmian wprowadzonych od czasu ostatniego taga:
#!/bin/sh
LAST_TAG=`git describe --tags --abbrev=0`
echo "Changes since $LAST_TAG:"
echo ""
git log --first-parent --pretty="format:* %w(0,0,2)%B" ${LAST_TAG}...HEAD | dos2unix | sed -e '/^ See merge request ![0-9]\+.*$/d' -e 's/^ $//' | cat -s