gitでremoteレポジトリにあるファイルを探したい
Motivation
AOSPのtools/base辺りをビルドしようと試行錯誤していると、なんかこのファイル参照してるけど、いったいどのブランチにいるの?
みたいなことによくなるのでスクリプト書いてみたよみたいな。
探す対象
tools/baseをビルドしようとして、以下からソースを落としてくるのが始まり。
platform/tools/base - Git at Google
落としてきたまま、./gradlew task
とか叩いてもエラーを貰うので、依存してそうなディレクトリ(prebuilt/toolsとか)も拾ってくる。
問題が起きたのは、prebuilt/toolsのantlr/3.5.2
とかpsi-subset-143.1821.5.jar
に依存してるんだけど、どこのブランチに居るのかわかんないってところ。
リモートブランチのファイルを一覧で出すコマンド
git ls-tree -r <branch>
でブランチに含まれているファイルを一覧で出力することができる。
対象のbranchをリモートブランチの形式で書けばリモートのブランチのファイルを出力できる。
$ git ls-tree -r aosp/tools_r22.6 100644 blob 496ee2ca6a2f08396a4076fe43dedf3dc0da8b6d .gitignore 100644 blob 6238bd82a47fd3dc4e96c7f81a554baa328dc2c4 Android.mk 100644 blob d5c0642b3883991070180a485ee9369cae90aba3 common/ant/Android.mk 100644 blob f820d4bd3a6072ed03f22499937d1e0c62f806ea common/ant/LICENSE 100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 common/ant/MODULE_LICENSE_APACHE2 100644 blob 1d53242cda027069a4fe2d0ad89b88db4d4185df common/ant/PREBUILT 100644 blob 0a56a58f9627f9ee90504a7d62fd355af1861329 common/ant/ant.jar 100644 blob 9f247dd7b06327dae98d5ce4ff6fffac0573ae6d common/asm-tools/Android.mk 100644 blob 9496b1785bbb18a09c4fdb59877b99e1ce233de2 common/asm-tools/LICENSE.txt 100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 common/asm-tools/MODULE_LICENSE_BSD_LIKE 100644 blob e8b605fddfc655132679b3aefafe18f98946b145 common/asm-tools/PREBUILT 100644 blob 27bd6c0d3e60cd56fe942333aa03ac5b4eea4d42 common/asm-tools/README 100644 blob 349f0d42bb423a2a90f4186cfbb4b3373c3d8a2d common/asm-tools/asm-3.3.1.jar 100644 blob 6d63075eb7331f7120ef25603a2ade856d12f715 common/asm-tools/asm-4.0.jar 100644 blob 48bb9b8fb6a5d759b2e7474a15a4d3a2cef67ff8 common/asm-tools/asm-analysis-4.0.jar 100644 blob 8d564b1e029e7b4f5c984c3fa67293ded9962e5b common/asm-tools/asm-commons-4.0.jar 100644 blob 9562c999eda32d91eeb32e88d1d2cfb9cb2629fb common/asm-tools/asm-debug-all-4.0.jar 100644 blob aa99d3a3cb246c0a2e64e891d83e7c98543d1f37 common/asm-tools/asm-tree-4.0.jar 100644 blob 0e1059583543a10cde82abfcfe3fbde37347c8a7 common/asm-tools/asm-util-4.0.jar ...
あとはfor文に詰めたscript作ったらOK
まんまの手抜きだけれど、こんな感じで期待通りに確認できる。
さて、build通してgradle-coreのデバッグを進めるぞっと。