Re: [PATCH/RFC 5/5] add tests for checking the behaviour of "unset.variable"
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 2, 2014, 23:38 UTC
- Message-ID
- <xmqqiok2m494.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <542DB711.9040503@gmail.com>
Tanay Abhra <tanayabh@gmail.com> writes:
Show 6 quoted lines
> I can think of two solutions, one leave it as it is and advertise it to be > explicitly typed in the config files at the appropriate position or to change > the behavior of unset.variable to unset all matching variables in that file, > before and after. We could also change git config --add to append at the end > of the file regardless the variable exists or not. Which course of action > do you think would be best?
Off the top of my head, from an end-user's point of view, something like this would give a behaviour that is at least understandable:
(1) forbid "git config" command line from touching "unset.var", as
there is no way for a user to control where a new unset.var
goes. And (2) When adding or appending section.var (it may also apply to
removing one--you need to think about it deeper), ignore
everything that comes before the last appearance of "unset.var"
that unsets the "section.var" variable.That way, if you do not have "[section]" after "[unset] variable = section.var", you would end up adding a new "[section] var = value", and if you already have "[section]", you would add a "var = value" in that existing "[section]" that appears after the last unset of the variable, so eerything will be kept neat.
Alternatively, if the syntax to unset a "section.var" were not
[unset]
variable = section.varbut rather
[section] ! variable
or soemthing, then the current "find the section and append at the end" code may work as-is.