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, 20:23 UTC
- Message-ID
- <xmqqmw9emdax.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <542DB2FE.609@gmail.com>
Tanay Abhra <tanayabh@gmail.com> writes:
Show 24 quoted lines
> On 10/3/2014 1:39 AM, Junio C Hamano wrote: >> Tanay Abhra <tanayabh@gmail.com> writes: >> >>> +test_expect_success 'document how unset.variable will behave in shell scripts' ' >>> + rm -f .git/config && >>> + cat >expect <<-\EOF && >>> + EOF >>> + git config foo.bar boz1 && >>> + git config --add foo.bar boz2 && >>> + git config unset.variable foo.bar && >>> + git config --add foo.bar boz3 && >>> + test_must_fail git config --get-all foo.bar >actual && >> >> You make foo.bar a multi-valued one, then you unset it, so I would >> imagine that the value given after that, 'boz3', would be the only >> value foo.bar has. Why should --get-all fail? >> >> I am having a hard time imagining how this behaviour can make any >> sense. >> > > git config -add appends the value to a existing header, after these > two commands have executed the config file would look like, > ...
I *know* how it is implemented before the changes of this series. And if the original implementation of "add" is left as-is, I can imagine how such a behaviour that is unintuitive to end-users can arise.
I was and am having a hard time how this behaviour can make any sense from an end-user's point of view.