Gitのsubmoduleのログを親リポジトリから見る

submoduleの更新コミットをまじめに書くことはまず無いと思うけど、そうなるとsubmoduleのディレクトリまで移動しないとコミット・ログは見れない……と思ったら--submoduleオプションがちゃんとあった。コミット日時とかまでは見えないようだけど、大体の感じはつかめる。親にいる時に見たい場合は、どんな変更だったかちょっと思い出したいとかだけだと思うので、これで十分そう。

以下の様に--patchオプションと組み合わせる必要がある。そのためsubmoduleのディレクトリを指定して、絞り込みをかけないと見れたものではない。

$ git log --patch --submodule=log -- path/to/submodule

こうすると以下の様に通常は差分が表示される箇所にsubmoduleのコミット・ログが表示される(色付き)。

commit 654a92b64719d578df45a05f0870a2642bb1a0e9
Author: Kyo Nagashima <kyo@hail2u.net>
Date:   Thu Jul 3 12:38:46 2014 +0900

    Update submodules

Submodule .grunt/css 453859c..50b3b21:
  > Version 6.56.0
  > Add "Searchbox" widget
  > Name image variables same as other variables
  > Print watermark to "Byline"
  > Handle "Section Heading" whitespaces mathematically
  > Fit "Post List" date width to 12 letters

コミットのSHA1オブジェクト名やコミット日時などは表示されない。submoduleの更新をタイミングを見計らって行うようにしていれば十分な情報量になるんじゃないかと思う。


submoduleを更新する時に、そのコミット・ログをまとめてコミット・コメントとして仕込んでおいた方がいいのかなとも思う。どうなんだろう。submoduleを使った運用をまともにしたことがないのでよくわからない。