On Thu, Feb 16, 2017 at 11:30:28AM +0100, Lars Schneider wrote: > > > On 16 Feb 2017, at 00:48, Junio C Hamano <gitster@xxxxxxxxx> wrote: > > > > The "git -c <var>=<val> cmd" mechanism is to pretend that a > > The problem is also present for gitconfig variables e.g. > git config --local submodule.UPPERSUB.update none Hrm, is it? $ git config --file foo submodule.UPPERSUB.update none $ cat foo [submodule "UPPERSUB"] update = none I could believe that some of the submodule code may try to pass it through "-c", though, so certain config ends up being missed. AFAICT, though, the writing code takes what you gave it verbatim. The reader is responsible for downcasing everything but the subsection before it hands it to a callback. Commands calling git-config for lookup should generally ask for the canonical downcased name. There is some code to downcase, but IIRC there are corner cases around some of the regex lookup functions. -Peff