Subject: Re: The fetch command should "always" honor remote.<name>.fetch

From: Junio C Hamano <[email-masked]>
Date: Mon, 07 Apr 2014 11:23:21 -0700

Lewis Diamond <[email-masked]> writes:

> 'git fetch foo develop' would result in:
> fatal: Couldn't find remote ref test2 //Not OK, (case 1)

I have no idea where the "test2" comes from, as it does not appear
anywhere in the above write-up, and it could be a bug.

> 'git fetch foo master' would result in (FETCH_HEAD omitted):
> [new ref] refs/heads/master -> foo/master //OK, but missing another
> ref! (case 2)
> //It should also fetch refs/users/bob/heads/master -> foo/bob/master

This is an incorrect expectation.

The user who gave the command line said only "master", and did not
want to grab "users/bob/heads/master".  If the user wanted to get it
as well, the command line would have said so, e.g.

	git fetch there master users/bob/heads/master

> If you remove this configuration line: fetch =
> +refs/heads/*:refs/remotes/foo/*
> Then you run 'git fetch foo master', this would result in:
>  * branch master -> FETCH_HEAD //Debatable whether this is OK or not,
> but it's definitely missing bob's master! (case 3)

Likewise.

The 'master' short-hand is designed not to match refs/users/any/thing.