Rune Schjellerup Philosof [off-list ref] writes:
From c4fc13a5a1e8c1eab9873232e6e8b7e0523cd6ea Mon Sep 17 00:00:00 2001
From: Rune Philosof <redacted>
Date: Fri, 2 Mar 2012 10:42:23 +0100
Subject: [PATCH 1/2] Complain in the tests about git config not failing with
keys without a section
What are these lines?
git is supposed to fail when having a key without a section, but does not.
I do not think anybody said it is supposed to fail in this case.
Historically, we always allowed single level names in our configuration
parser, at least for reading, from pretty much day one, I think. The
documentation only talks about two and three level names, because we do
not use such a name ourselves in the code, and the behaviour for a single
level name is just "undefined", which is very different from "must fail".
On 02-03-2012 19:40, Junio C Hamano wrote:
quoted
git is supposed to fail when having a key without a section, but does not.
I do not think anybody said it is supposed to fail in this case.
the behaviour for a single level name is just "undefined", which is very different from "must fail".
Quoting from `git help config`:
This command will fail if:
3. no section was provided,
...
under SYNTAX
Each variable must belong to some section, which means that there must
be a section header before the first
setting of a variable.
--
Greeting
Rune Philosof
On Mon, Mar 05, 2012 at 08:59:29AM +0100, Rune Philosof wrote:
On 02-03-2012 19:40, Junio C Hamano wrote:
quoted
quoted
git is supposed to fail when having a key without a section, but does not.
I do not think anybody said it is supposed to fail in this case.
the behaviour for a single level name is just "undefined", which is very different from "must fail".
Quoting from `git help config`:
This command will fail if:
3. no section was provided,
The text you are quoting is not about what is in the config file, but
rather the config name given on the command line (which we would be
trying to look up). And we do correctly complain about that:
$ git config foo
error: key does not contain a section: foo
But:
under SYNTAX
Each variable must belong to some section, which means that there
must be a section header before the first
setting of a variable.
Yes, everything is supposed to be in a section. Historically we have
not complained, but instead just treated it as a single-level variable.
For internal git use this never mattered, as git only looked at
variables with section names. For "git config foo", it also does not
matter, since we will notice the lack of section before even doing a
lookup.
For "git config --list", as you noticed, we include it in the output. I
suspect we should simply omit it as cruft. But we could also issue a
warning, and/or die.
-Peff