平衡点


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 で呼ぶのはあんまり良くない?. どうしよ...


連絡先など
最近の日記
  • 2024/10/09
    • 1. Mastodon でのメール通知, というか Exim4 と Apparmor
  • 2024/06/19
    • 1. WSL2 での gpg-agent, ssh-agent
  • 2024/06/18
    • 1. WSL で Windows 側のフォントを利用する
  • 2024/06/17
    • 1. WSLとWindowsの時刻同期
  • 2024/06/12
    • 1. wsl2 で systemd
    • 2. wslg の設定
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|04|05|06|10|
Back to Top ▲