threads / bug / 32222

git config key bug or by design?

Subject: git config key bug or by design?

## tl;dr

4 messages between Nov 28, 2012 and Nov 28, 2012.

replies: 3people: 2as markdown or json

Peter van der Does· Nov 28, 2012, 03:14 UTC · lore
I noticed today I can't create a key starting with a number.
The source code[1] confirms this, but is this a bug or is it by design?
[1]: https://github.com/git/git/blob/master/config.c#L1265
-- 
Peter van der Does

GPG key: CB317D6E

IRC: Ganseki on irc.freenode.net
Twitter: @petervanderdoes
Jeff King· Nov 28, 2012, 03:34 UTC · re: Peter van der Does · lore

Re: git config key bug or by design?

On Tue, Nov 27, 2012 at 10:14:46PM -0500, Peter van der Does wrote:
> I noticed today I can't create a key starting with a number.
> 
> The source code[1] confirms this, but is this a bug or is it by design?

I don't recall ever discussing it. But what is it that you want to store in a key starting with a number? Git does not respect any such config values[1].

Are you writing a new tool that will store its config alongside git's? Even if the behavior is loosened, you would probably want to avoid starting your config keys with numbers, as older git versions would be around for a while and would choke on it.

-Peff
[1] You can still store arbitrary bytes in the subsection name (e.g.,
    "foo.123.bar").
Peter van der Does· Nov 28, 2012, 12:11 UTC · re: Jeff King · lore

Re: git config key bug or by design?

On Tue, 27 Nov 2012 22:34:09 -0500 Jeff King <peff@peff.net> wrote:

Show 14 quoted lines
> 
> I don't recall ever discussing it. But what is it that you want to
> store in a key starting with a number? Git does not respect any such
> config values[1].
> 
> Are you writing a new tool that will store its config alongside git's?
> Even if the behavior is loosened, you would probably want to avoid
> starting your config keys with numbers, as older git versions would be
> around for a while and would choke on it.
> 
> -Peff
> 
> [1] You can still store arbitrary bytes in the subsection name (e.g.,
>     "foo.123.bar").

I am writing a tool, it needs to store branch names in a separate config file.

It's clear git doesn't respect those values, hence my question. I understand how to work around the problem, I would just prefix the key. I was just wondering if it was by design, which I guess it is as the parsing of the file will die if the key starts with a non-alpha character.

-- 
Peter van der Does

GPG key: CB317D6E

IRC: Ganseki on irc.freenode.net
Twitter: @petervanderdoes
Jeff King· Nov 28, 2012, 20:21 UTC · re: Peter van der Does · lore

Re: git config key bug or by design?

On Wed, Nov 28, 2012 at 07:11:47AM -0500, Peter van der Does wrote:
Show 8 quoted lines
> I am writing a tool, it needs to store branch names in a separate config
> file.
> 
> It's clear git doesn't respect those values, hence my question. I
> understand how to work around the problem, I would just prefix the key.
> I was just wondering if it was by design, which I guess it is as the
> parsing of the file will die if the key starts with a non-alpha
> character.

In that case, I would definitely say to use some prefix section like "section.$branchname.key". That is how git stores per-branch information (e.g., branch.master.merge), and it was always designed to let there be arbitrary data in the "middle" section, whereas the section and key are restricted and case-insensitive.

So no, I do not recall "cannot start with number" as a specific design decision, but it is definitely a design decision that the section name would not allow arbitrary content.

-Peff

← back to recent threads