fetch: if not fetching from default remote, ignore default merge
When doing "git fetch <remote>" on a remote that does not have the branch referenced in branch.<current-branch>.merge, git fetch failed. It failed because it tried to add the "merge" ref to the refs to be fetched. Fix that. And add a test case. Incidentally, this unconvered a bug in our own test suite, where "git pull <some-path>" was expected to merge the ref given in the defaults, even if not pulling from the default remote. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Lars Hjemli <hjemli@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
committed by
Shawn O. Pearce
parent
fe5d1d3eb4
commit
da0204df58
@ -105,7 +105,13 @@ static struct ref *get_ref_map(struct transport *transport,
|
||||
!remote->fetch[0].pattern)
|
||||
ref_map->merge = 1;
|
||||
}
|
||||
if (has_merge)
|
||||
/*
|
||||
* if the remote we're fetching from is the same
|
||||
* as given in branch.<name>.remote, we add the
|
||||
* ref given in branch.<name>.merge, too.
|
||||
*/
|
||||
if (has_merge && !strcmp(branch->remote_name,
|
||||
remote->name))
|
||||
add_merge_config(&ref_map, remote_refs, branch, &tail);
|
||||
} else {
|
||||
ref_map = get_remote_ref(remote_refs, "HEAD");
|
||||
|
||||
Reference in New Issue
Block a user