Re: [PATCH/RFC 5/5] add tests for checking the behaviour of "unset.variable"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/3/2014 1:39 AM, Junio C Hamano wrote:
> Tanay Abhra <tanayabh@xxxxxxxxx> 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,

git config foo.bar boz1 &&
git config --add foo.bar boz2 &&

[foo]
	bar = boz1
	bar = boz2

After git config unset.variable foo.bar,

[foo]
	bar = boz1
	bar = boz2
[unset]
	variable = foo.bar

Now the tricky part, git config --add foo.bar boz3 append to the
existing header,

[foo]
	bar = boz1
	bar = boz2
	bar = boz3
[unset]
	variable = foo.bar

Since unset.variable unsets all previous set values in parsing order,
git config --get-all foo.bar gives us nothing in result.


--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]