From: Jeff King Date: Fri, 17 Dec 2010 21:21:00 GMT Subject: Re: [PATCH] completion: add missing configuration variables Message-ID: <20101217212100.GB11511@sigill.intra.peff.net> In-Reply-To: <7vei9gi0y3.fsf@alter.siamese.dyndns.org> On Fri, Dec 17, 2010 at 12:44:36PM -0800, Junio C Hamano wrote: > > All variables are case-insensitive. The config parser down-cases them, > > so all code should treat tham as all-lowercase. However, we tend to > > document them as camelCase for readability. > > Careful. The second level of three-level names is supposed to be usable > for user defined names (e.g. names of branches and remotes) and I think > the completion code should not downcase it. Yeah, good point. It is not even "second level" in the parsing code, though, since that code sees: [first "second"] third and not first.second.third IOW, the second one is ambiguous in the face of an internal dot. So if I had something like: [Foo "Bar.Baz"] Bleep = true then "Foo" and "Bleep" are case-insensitive, but both "Bar" and "Baz" are not. So in terms of dotted components, the rule is "the first and last dotted components are case-insensitive, and middle ones are case-sensitive". At least with respect to my simple test of calling "git config x.y.z". I'm afraid if I look too deeply I might discover some inconsistency. :) -Peff