Ad

Does Git Submodule Update --recursive Override FetchRecurseSubmodules?

- 1 answer

I have a submodule who's submodules I don't need. For example:

mainProject
  - usefulSubmodule
    - notNeededSubmodule

So in mainProject, I define my .gitmodules like so:

[submodule "usefulSubmodule"]
    path = lib/usefulSubmodule
    url = https://whatever
    fetchRecurseSubmodules = false

Then I run git submodule update --init --recursive after updating, and it seems that this is ignoring the value of fetchRecurseSubmodules (which I guess may be true according to the documentation https://git-scm.com/docs/gitmodules#Documentation/gitmodules.txt-submoduleltnamegtfetchRecurseSubmodules )

So therefore my question is, how do I disable this behavior without overriding it during update? What is the best way to update all my submodules while respecting that flag?

Ad

Answer

So is on-demand the default for this property if it is not present?

Yes, that is what git config fetch.recurseSubmodules specifies:

When set to on-demand (the default value), fetch and pull will only recurse into a populated submodule when its superproject retrieves a commit that updates the submodule’s reference.

Note: if you want to override locally (for just one command) a configuration:

git -c fetch.recurseSubmodules=on-demand submodule update --init

But in this case, it is not needed (this is just to illustrate how one can set a config for one git command)

Ad
source: stackoverflow.com
Ad