Subject: Re: [PATCH] remote: handle pushremote config in any order order

From: Junio C Hamano <[email-masked]>
Date: Mon, 24 Feb 2014 12:53:53 -0800

Jeff King <[email-masked]> writes:

> On Mon, Feb 24, 2014 at 12:32:32PM -0800, Junio C Hamano wrote:
>
>> >> +test_expect_success 'branch.*.pushremote config order is irrelevant' '
>> >> +	mk_test one_repo heads/master &&
>> >> +	mk_test two_repo heads/master &&
>> >> +	test_config remote.one.url one_repo &&
>> >> +	test_config remote.two.url two_repo &&
>> >> +	test_config branch.master.pushremote two_repo &&
>> >> +	test_config remote.pushdefault one_repo &&
>> >> +	git push &&
>> >> +	check_push_result one_repo $the_first_commit heads/master &&
>> >> +	check_push_result two_repo $the_commit heads/master
>> >> +'
>> >> +
>> 
>> This test however does not pass in the Git 2.0 world, without having
>> this line:
>> 
>>        test_config push.default matching &&
>> 
>> immediately before "git push".
>> 
>> Am I missing something?
>
> No, you are not missing anything. I was copying and paring down the
> pushremote test above, and I accidentally pared out the push.default
> setting. It should definitely have a
>
>   test_config push.default matching &&
>
> before the "git push" line, as the test above does. Can you mark it up
> as you apply?

Gladly ;-)

I wasn't thinking straight and thought push.default was somehow
affecting the logic to read the configuration files you fixed, which
was a complete nonsense.  The selection of which remote to push to
is affected by the branch.*.pushremote and remote.pushdefault, but
this "git push" still expects that the way the branches are chosen
to be pushed follow the matching semantics, not the simple
semantics, so we need that configuration there.