threads / discuss / 61611

[ISSUE] `git submodule update --init --recursive` does ignore `fetchRecurseSubmodules` flag in `.gitmodules` and in `.git/config`

Subject: [ISSUE] `git submodule update --init --recursive` does ignore `fetchRecurseSubmodules` flag in `.gitmodules` and in `.git/config`

## tl;dr

2 messages between Jun 10, 2024 and Jun 10, 2024.

replies: 1people: 2as markdown or json

Andry· Jun 10, 2024, 01:19 UTC · lore
Hello Git,
First discovered here: https://github.com/gitextensions/gitextensions/issues/11783
Another discussion: https://stackoverflow.com/questions/58403616/does-git-submodule-update-recursive-override-fetchrecursesubmodules
Manual: https://git-scm.com/docs/gitmodules#Documentation/gitmodules.txt-submoduleltnamegtfetchRecurseSubmodules
---
If use a recursive submodule, for example:
A->B->A->...
And call submodules Update on A, then the Update does ignore the flag and keeps fetch recursively with the error at the end:
>  fatal: Failed to recurse into submodule path ...
Is that supposed to work this way or is an bug?
brian m. carlson· Jun 10, 2024, 22:02 UTC · re: Andry · lore

Re: [ISSUE] `git submodule update --init --recursive` does ignore `fetchRecurseSubmodules` flag in `.gitmodules` and in `.git/config`

On 2024-06-10 at 01:19:10, Andry wrote:
Show 16 quoted lines
> Hello Git,
> 
> First discovered here: https://github.com/gitextensions/gitextensions/issues/11783
> Another discussion: https://stackoverflow.com/questions/58403616/does-git-submodule-update-recursive-override-fetchrecursesubmodules
> Manual: https://git-scm.com/docs/gitmodules#Documentation/gitmodules.txt-submoduleltnamegtfetchRecurseSubmodules
> ---
> 
> If use a recursive submodule, for example:
> 
> A->B->A->...
> 
> And call submodules Update on A, then the Update does ignore the flag and keeps fetch recursively with the error at the end:
> 
> >  fatal: Failed to recurse into submodule path ...
> 
> Is that supposed to work this way or is an bug?

Yes, it's working as designed. From the documentation, `fetchRecurseSubmodules` only applies to `git fetch` and `git pull`, not `git submodule`. Even if it did, you still specified recursive behaviour in a command-line option, and command-line operations override the configuration.

If you don't want recursion, you'll need to skip the `--recursive` flag.
-- 
brian m. carlson (they/them or he/him)
Toronto, Ontario, CA

← back to recent threads