平衡点
2010/06/25
_ git リポジトリで ChangeLog の更新忘れのために
no6v さんに感謝!! man をちゃんと読まないと駄目っす. はい. > 自分
コミット毎にチェンジログがあった方が嬉しい場合に, ChangeLog の更新を忘れない為に.
git の log から ChangeLog を生成するのは, git log の --pretty=format: で適当に format を指定して生成(もしかして template 使えるのかしら?)
git log --date=short --pretty=format:"%ad %an <%ae>%n%n%s%n%b "
そうすると ChangeLog っぽい出力が得られる. あとは本文先頭に \t を追加すれば良いので Makefile あたりに
git2cl: @git log --date=short --pretty=format:"%ad %an <%ae>%n%n%s%n%b" | \ sed -e 's/^\(.*\)$$/\t\1/g' | \ sed -e 's/^\t\([0-9]*-[0-9]*-[0-9]*.*\)$$/\1/g' | \ sed -e 's/^\t$$//g' \ > ChangeLog
とでもすれば, git の log からそれっぽい ChangeLog が得られる.
ただ, これだと自動でコミットできないので
git2cl: @git log --date=short --pretty=format:"%ad %an <%ae>%n%n%s%n%b" | \ sed -e 's/^\(.*\)$$/\t\1/g' | \ sed -e 's/^\t\([0-9]*-[0-9]*-[0-9]*.*\)$$/\1/g' | \ sed -e 's/^\t$$//g' \ > ChangeLog [ ! `git diff --check --exit-code ChangeLog` ] || git commit --amend -C HEAD
でもしておいて. post-commit で make git2cl するようにしておくと, commit の度にChangeLog は更新される.
release tag 毎に ChangeLog 更新する場合はどうしたら良いかな...
(追記) むしろ ChangeLog 更新は post-commit にまとめたら良いんじゃね? という天(?)の声が...そうかもしんない.
(追記その2) post-commit で呼ぶのはあんまり良くない?. どうしよ...