Re: [PATCH 3/3] CodingGuidelines: describe naming rules for configuration variables
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 1, 2015, 22:34 UTC
- Message-ID
- <xmqqwq418dmp.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <20150201215729.GA19692@peff.net>
Jeff King <peff@peff.net> writes:
Show 6 quoted lines
> From the user's perspective, I don't see how the implied relationships > are significantly different. In type 1, they are placed inside a single > value and in type 2, they are not. Both are a form of grouping. > > Moreover, I am not even sure that the syntax is an important element in > communicating semantic relationships.
I think we are in agreement and I do not see how you can draw different conclusions. The above argument refutes the point Michael made a big deal out of, which was that "these are individual and independent bools in the implementation detail of the code, expose that as such to the end users." I do not buy that point, i.e. it is not a good argument to favor style 2 over style 1, which was the primary thing I wanted to illustrate in the message you are responding to.
> 1. I'm a user who has set my preferred core.whitespace in my > ~/.gitconfig. A particular project I am working on uses an > alternate tabwidth. How do I set that in the repo config without > repeating my defaults?
Isn't it cumulative? At least it should be (but I wouldn't be too surprised if the recent config reader caching broke it).
> 2. I'm writing a hook whose behavior depends on the whitespace > settings. How do I ask git whether blank-at-eol is enabled?
If that becomes an issue, "git config" would have to learn about them, just like it knows about how to do --color depending on the tty-ness of the output.
> 3. I'm a user who wants to set whitespace config. I prefer using "git > config" to editing the file manually. How do I turn off > blank-at-eol without disrupting my existing settings?
See above 1.
Show 14 quoted lines
>> I see Peff cites "pager.<cmd>", but I think it was something that we >> would rather shouldn't have done, similar to "alias.<cmd>". They >> are bad precedents we shouldn't encourage new things to mimic. >> >> But that is not from "one-variable-with-list-is-better" (it is not >> better for these "independent" ones) but is purely from the syntax >> point of view. > > Yeah, I'd agree that the problem there is orthogonal to the type 1/2 > thing above. I don't think it has been a big deal in practice, just > because people with good taste do not name their commands with uppercase > anyway. > > I'd be happy to transition to pager.*.enabled, etc, if we care.
I have no strong opinion. It was primarily meant to illustrate why pager.<cmd> and alias.<cmd> were bad precedents that should not be used to support design of future things.