どうも、Qiitaには初めて投稿します、めったに更新されないブログでほそぼそと情報共有をしている有末です。今回は試しにQiitaで書いてみています。
皆様はプログラムの変更を追従するためのChangelogファイルを作成していますか?
プログラム利用者はGitのログなんて確認しないため、新機能を足しても大抵気が付きません。そういう時に役に立つのがChangelogファイルです。これは各リリースごとに「何が変更されたのか?何が追加されたのか?」などを記載する場所として事実上のスタンダードになっています。下記のようなファイルですね
### v0.1.15 (Mon Jul 7 20:33:49 2014 +0900)
- Add a way to reopen a gist without using cache (Mon Jul 7 20:32:56 2014 +0900) 85be809
### v0.1.14 (Mon Jul 7 18:42:04 2014 +0900)
- Fixed #29 (Mon Jul 7 18:32:12 2014 +0900) 0dfa117
- Fixed #30 (Mon Jul 7 18:41:08 2014 +0900) ed96f7f
- Merge branch 'issue30' (Mon Jul 7 18:41:26 2014 +0900) f8dad73
- Bump version (Mon Jul 7 18:41:50 2014 +0900) 7418491
### v0.1.13 (Mon Jul 7 18:09:56 2014 +0900)
- Add 'disable_python_client' option (Mon Jul 7 17:36:07 2014 +0900) 023cd8c
- Bump version (Mon Jul 7 18:09:42 2014 +0900) 5d5c521
略
とりあえずこの手のファイルを書いておけば、プログラム使用者は「どんな機能が足されたのかな?」などを簡単に知ることができます。
じゃぁChangelog書けばいいじゃんとなるのですが、この手のファイルを書くのはとてもしんどい。コミットメッセージから自動的にChangelogファイルを作成してくれるスクリプトを探してみたのですが余り気に入るものがありませんでした。
そこでコミットをタグ単位でまとめてChangelogっぽくしてくれるスクリプトを作りました。上記例はそのスクリプトで吐き出したものです。以下インストール方法と使い方。
インストール
wgetかcURLを使っていれば下記ワンライナーでインストールできます。URL短縮に抵抗がある方は下記URLの
代わりにhttps://gist.githubusercontent.com/lambdalisue/c4ce6fcdee82fa72d04c/raw/1228631cb7c7f52e446ab790a85625fcfd142565/install_gittag-changelog.shを使ってください。
$ wget http://goo.gl/vVh6PN -O - | sh
$ curl http://goo.gl/vVh6PN | sh
ワンライナーに抵抗がある方は下記の手順を追ってください。
$ git clone https://github.com/lambdalisue/gittag-changelog $HOME/.gittag-changelog
$ git config --global --add alias.changelog "$HOME/.gittag-changelog/src/gittag_changelog.py"
使い方
Gitのタグ情報を利用するのでgit tag
の結果が出力されるレポジトリでのみうまく動きます。なお、丁度いい感じのレポジトリをお持ちでないかたはvim-gistaのレポジトリでお試しください。下記、vim-gistaでの結果例です。
$ git tag
v0.1.0
v0.1.1
v0.1.10
v0.1.11
v0.1.12
v0.1.13
v0.1.14
v0.1.15
v0.1.2
v0.1.3
v0.1.4
v0.1.5
v0.1.6
v0.1.8
v0.1.9
上記のようにタグが存在していれば$ git changelog
で標準出力にChangelogっぽいものが出力されます。
なお、git config --get remote.origin.url
がgit@github.com:lambdalisue/vim-gista
のような形式の場合は各コミットにGitHubのリンクが自動的に加えられます。
$ git changelog
### v0.1.15 (Mon Jul 7 20:33:49 2014 +0900)
- Add a way to reopen a gist without using cache (Mon Jul 7 20:32:56 2014 +0900) [85be809](https://github.com/lambdalisue/vim-gista/commit/85be809bbd954dae4ba99ad607ad045d1d1e527a)
- Bump version (Mon Jul 7 20:33:28 2014 +0900) [02ddd7e](https://github.com/lambdalisue/vim-gista/commit/02ddd7e12e913bf7b3dec8546547805fe8a4525c)
### v0.1.14 (Mon Jul 7 18:42:04 2014 +0900)
- Fixed #29 (Mon Jul 7 18:32:12 2014 +0900) [0dfa117](https://github.com/lambdalisue/vim-gista/commit/0dfa11777ea235df695bb7e1674eec296f5cb8be)
- Fixed #30 (Mon Jul 7 18:41:08 2014 +0900) [ed96f7f](https://github.com/lambdalisue/vim-gista/commit/ed96f7faa0e1079a78c8bb60f74111d1e547d2f2)
- Merge branch 'issue30' (Mon Jul 7 18:41:26 2014 +0900) [f8dad73](https://github.com/lambdalisue/vim-gista/commit/f8dad7386e11d0f440cf0bdf75ea77f538ee6773)
- Bump version (Mon Jul 7 18:41:50 2014 +0900) [7418491](https://github.com/lambdalisue/vim-gista/commit/741849115d0d51c3e476b30f7d2e694bf7e82ebc)
略
### v0.1.1 (Wed Jul 2 03:05:18 2014 +0900)
- Change unite strategy (Wed Jul 2 00:19:42 2014 +0900) [bc3422c](https://github.com/lambdalisue/vim-gista/commit/bc3422c8908cd1d75ce5a324241db296ae5a1458)
- Improve documentations for new implementations (Wed Jul 2 03:03:09 2014 +0900) [9532413](https://github.com/lambdalisue/vim-gista/commit/95324138acd6182af7a3e9f8c371ff9a5dd8372c)
- Bump version (Wed Jul 2 03:04:57 2014 +0900) [1c176a9](https://github.com/lambdalisue/vim-gista/commit/1c176a9bbc02519f14aa85f44182e913996822e6)
出力は現在のところMarkdownのみに対応しております。僕自体がMarkdown形式以外でChangelogを使うことがないので、他の形式が欲しい方はPull requestなどを送っていただけると幸いです。
下記、Markdownとして表示した場合の例
v0.1.15 (Mon Jul 7 20:33:49 2014 +0900)
- Add a way to reopen a gist without using cache (Mon Jul 7 20:32:56 2014 +0900) 85be809
- Bump version (Mon Jul 7 20:33:28 2014 +0900) 02ddd7e
v0.1.14 (Mon Jul 7 18:42:04 2014 +0900)
- Fixed #29 (Mon Jul 7 18:32:12 2014 +0900) 0dfa117
- Fixed #30 (Mon Jul 7 18:41:08 2014 +0900) ed96f7f
- Merge branch 'issue30' (Mon Jul 7 18:41:26 2014 +0900) f8dad73
- Bump version (Mon Jul 7 18:41:50 2014 +0900) 7418491
...略
v0.1.1 (Wed Jul 2 03:05:18 2014 +0900)
- Change unite strategy (Wed Jul 2 00:19:42 2014 +0900) bc3422c
- Improve documentations for new implementations (Wed Jul 2 03:03:09 2014 +0900) 9532413
- Bump version (Wed Jul 2 03:04:57 2014 +0900) 1c176a9
これで気軽にChangelogが作れるようになりました。よろしければどーぞ