From 6d20006f7e8dbc26cf07bf8a945bc6972642c303 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Sun, 2 Nov 2014 20:11:54 +0100 Subject: [PATCH] remote: check the relevance of the refspec when updating FETCH_HEAD Before trying to rtransform using the given refspec to figure out what the name of the upstream branch is on the remote, we must make sure that the target of the refspec applies to the current branch's upstream. --- src/remote.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/remote.c b/src/remote.c index 0ae377e47..477a884dd 100644 --- a/src/remote.c +++ b/src/remote.c @@ -983,6 +983,7 @@ static int remote_head_for_ref(git_remote_head **out, git_remote *remote, git_re (error = git_config_get_string(&branch_remote, config, git_buf_cstr(&config_key))) < 0 || git__strcmp(git_remote_name(remote), branch_remote) || (error = git_branch_upstream_name(&upstream_name, repo, ref_name)) < 0 || + !git_refspec_dst_matches(spec, git_buf_cstr(&upstream_name)) || (error = git_refspec_rtransform(&remote_name, spec, upstream_name.ptr)) < 0) { /* Not an error if there is no upstream */ if (error == GIT_ENOTFOUND)