Subject: Re: RFC GSoC idea: new "git config" features

From: Junio C Hamano <[email-masked]>
Date: Fri, 14 Mar 2014 14:00:56 -0700

Jeff King <[email-masked]> writes:

> On Sat, Mar 01, 2014 at 12:01:44PM +0100, Matthieu Moy wrote:
>
>> Jeff King <[email-masked]> writes:
>> 
>> > If we had the keys in-memory, we could reverse this: config code asks
>> > for keys it cares about, and we can do an optimized lookup (binary
>> > search, hash, etc).
>> 
>> I'm actually dreaming of a system where a configuration variable could
>> be "declared" in Git's source code, with associated type (list/single
>> value, boolean/string/path/...), default value and documentation (and
>> then Documentation/config.txt could become a generated file). One could
>> imagine a lot of possibilities like
>
> Yes, I think something like that would be very nice. ...
> ...
>> Migrating the whole code to such system would take time, but creating
>> the system and applying it to a few examples might be feasible as a GSoC
>> project.
>
> Agreed, as long as we have enough examples to feel confident that the
> infrastructure is sufficient.

I agree that it would give us a lot of enhancement opportunities if
we had a central catalog of what the supported configuration
variables are and what semantics (e.g. type, multi-value-ness, etc.)
they have.

One thing we need to be careful about is that we still must support
random configuration items that git-core does not care about at all
but scripts (and future versions of git-core) read off of, though.