あるrugygemsについて一緒に仕事してる人に
「ドキュメントにある〇〇ってメソッドが使えないんですけど
使い方間違ってますかね?」と質問された。
使い方はよさそうなので
githubで現在利用中のバージョンのソースを確認してみると
まだその修正が入っていなかったようでした。
そこでどのバージョンで入ったかを確認してみました。
今回の用途では name-rev がスマートでしょうか。
1. githubのバージョンを辿る
githubでversion毎のソースを確認して、コミットされたタイミングを確認。
最初は、githubのblameでcommit日時を見て、どのtagに入ったかを見ようとしたけど
git tagのオプションには日時を見る方法が無いってことに気づいた。
今回はこれですぐに見つかったけど、コマンドでさくっと確認できる術があるはずだと思って
以下調べてみました。
2. git log --oneline --decorate
decorateを使うとtagも表示してくれます。
--no-decorate, --decorate[=short|full|no] Print out the ref names of any commits that are shown. If short is specified, the ref name prefixes refs/heads/, refs/tags/ and refs/remotes/ will not be printed. If full is specified, the full ref name (including prefix) will be printed. The default option is short.
1) blameでrevisionを調べる(githubでもgit blame -wでも)
2) git log --oneline --decorate
でログを表示させ、そのコミット以降につけられたtagを調べる。
3. git name-rev
こちらを参考に。
git で指定したコミットがどのブランチに属するか知りたい - QA@IT
$ git blame -w lib/authlogic/session/cookies.rb 63842c9d (Malcolm Locke 2010-11-04 22:28:30 +1300 55) $ git name-rev 63842c9d 63842c9d tags/v3.0.0~6^2~1
v.3.0.0の6個前のcommitで入っているっぽいです。
(キャレットとチルダがよくわかりません。いつも分かんなくなる。)