Androidソースツリーのリビジョン情報を一括表示

Androidのソースツリーは多数のサブプロジェクトから成り,各々がGitで管理されている.それらの多数のGitリポジトリをcloneするために repo というツールを使うことになっている:

要するに for i in ...; do git clone $i; done のようなものだ.さて取り出すのはそれで簡単に行くが,その後がんばってビルドしてできた成果物を一意に識別するには,部分リポジトリ各々のリビジョンを同定する必要がある.repo にはドンピシャの機能はないようだが, forall という機能を使って次のように打てば似たようなことができる:

$ repo forall -c 'd=`pwd`; d=${d##*/}; echo -n $d; bash -c "for i in {${#d}..24}; do echo -n \" \"; done"; echo `git log -n1 --oneline`'
bionic                   e6031ac x86 libc: fix the wrong return value of syscall
legacy                   4acde5d Add an empty CleanSpec.mk
newinstaller             549c505 init: use mdev as the hotplug tool
(略

24云々の部分はalignmentなので,要らないかもね.
Chromium browserだと,こういう風にできるので,最初から付けてほしい気がしなくもない:

$ gclient revinfo
src: http://src.chromium.org/svn/trunk/src
src/breakpad/src: http://google-breakpad.googlecode.com/svn/trunk/src@786
src/build/util/support: http://src.chromium.org/svn/trunk/deps/support@20411
(略

先日,Android-x86のnightly buildを提供して下さってる方のサーバが落ちてて*1,それで自分でビルドしてみた次第.今はもう復活してるけどね: