On 02/15/2017 10:53 AM, Junio C Hamano wrote:
Lars Schneider <larsxschneider@xxxxxxxxx> writes:
It looks like as if submodule configs ("submodule.*") for submodules
with upper case names are ignored.
This observation is surprising, as the second level in three-level
names like "<section>.<name>.<variable>" is designed to be case
sensitive. A code that uses the config API needs to do extra things
to cause the behaviour you showed, i.e. to get submodule.U.update
ignored while submodule.l.update to be honoured. Perhaps somebody
downcases things too aggressively before comparing?
This is worth making it work as expected, needless to say ;-)
I had some time to look into this, and yes, command-line parameters are
too aggressively downcased ("git_config_parse_parameter" calls
"strbuf_tolower" on the entire key part in config.c). Updating the
original patch to use "test_global_config" makes the test pass, and
commenting out the "strbuf_tolower" line in config.c also makes the test
pass.
I'll see if I can fix this.