diff options
author | Carlos Martín Nieto <cmn@dwim.me> | 2014-11-02 20:11:54 +0100 |
---|---|---|
committer | Carlos Martín Nieto <cmn@dwim.me> | 2014-11-03 15:12:32 +0100 |
commit | 6d20006f7e8dbc26cf07bf8a945bc6972642c303 (patch) | |
tree | 0504f0f3a000e20f54613be7887ea25f50af45ae | |
parent | 0f838d27f19f611651df1a4a031196815ebe70cb (diff) | |
download | libgit2-6d20006f7e8dbc26cf07bf8a945bc6972642c303.tar.gz |
remote: check the relevance of the refspec when updating FETCH_HEADcmn/fetch-tags-refspec
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.
-rw-r--r-- | src/remote.c | 1 |
1 files changed, 1 insertions, 0 deletions
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) |