0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

git submodule --init --recursive で特定の submodule を無視する

Last updated at Posted at 2020-05-29

背景

  • 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 を書くことになるかな?)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?