Thanks Jonathan. The confirmation that the super-project config does not apply to the submodules is what I was really looking for. We'll go from here. This is a bit complicated, because this config is all generated dynamically by the GitLab CI Runner when it is setting up a build job. (See the linked issue in my first email for the gory details). Thank you, Jonathon > > +cc: Stefan, who has been looking at fetch --recurse-submodules recently > Hi, > > Jonathon Reinhart wrote: > > > I've narrowed it down to an observation that the [http] config seems > > to be ignored by 'git submodule update'. Shouldn't those options be > > respected by submodules? > > > > Given a .git/config file like this: > > > > ------------------------------------------------------------------------ > > [fetch] > > recurseSubmodules = false > > [http "https://gitlab.exmaple.com"] > > sslCAInfo = C:\\Users\\gitlab-runner\\builds\\deadbeef\\0\\somegroup\\someproj.git\\CA_SERVER_TLS_CA_FILE > [...] > > C:\Users\jreinhart\testrepo>set GIT_CURL_VERBOSE=1 > > C:\Users\jreinhart\testrepo>git fetch > [...] > > * CAfile: C:\Users\gitlab-runner\builds\deadbeef\0\somegroup\someproj.git\CA_SERVER_TLS_CA_FILE > [...] > > C:\Users\jreinhart\testrepo>git checkout master > > C:\Users\jreinhart\testrepo>git submodule update --init > [...] > > * CAfile: C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt > [...] > > Note that the CAfile reverted to its default instead of using the same > > one from the `git fetch`. > > Interesting. > > The context is that "git submodule update" is simply running commands > like "git fetch" inside the submodules, and the repository-local > config of the superproject does not apply there. > > In the long run, commands like "git fetch --recurse-submodules" may > chaange to use a single process. It's possible that some of the > repository-local configuration of the superproject would apply at that > point, though the inconsistency would be confusing, so probably not > these particular settings. Anyway, that's a faraway future; today, > "git fetch --recurse-submodules" is also running "git fetch" commands > inside the submodules, and the repository-local config of the > superproject does not apply there. > > Would it work for you to put this configuration in the global config > file ("git config --global --edit")? That way, it would be used by > all repositories. If you want it only to apply within the testrepo > directory, you can use conditional includes --- something like: > > in $HOME/.git/config/testrepo-ca: > > [http "https://gitlab.example.com"] > sslCAInfo = ... > > in $HOME/.git/config/git: > > [includeIf "gitdir/i:~/testrepo/**"] > path = testrepo-ca > > Thanks and hope that helps, > Jonathan