背景
- project が submodule している repo が, さらに submodule で馬鹿でかい git repo を登録している
- project 自体では, その submodule が submodule している repo は使っていない(ビルドでは利用されない)ので無視したい
IREE
でやってみます.
問題なのは, IREE が submodule 登録している swiftshader が submodule で追加している PowerVR_Examples です. 普通に clone すると 2 GB くらいあります(--depth 1
でも 700 MB くらい)
方法
ありがとうございます.
-c submodule."REPO".update=none
を追加でいけました.
ただ,
# NG
$ git -c submodule."third_party/swiftshader/third_party/PowerVR_Examples".update=none submodule update --init --recursive
とすれば行けそうですが, 親プロジェクトからのパス指定はできないようでした.
# OK
$ git -c submodule."third_party/PowerVR_Examples".update=none submodule update --init --recursive
のようにします.
third_party/PowerVR_Examples
を無視するのを, それぞれの submodule repo で実行する感じになっています.
懸念点
git -c で設定を追加すると, submodule 処理が直列化するっぽい?ようです
(通常は submodules は並列に git clone される)
TODO
- 同名の submodule repo path が, 複数の submodule repo にあるとうまく行かない(すべて無視されてしまう)ので, 特定の submodule ごとに設定できるようにする(うまく grep 的なのが使えればよいが... shell script を書くことになるかな?)