From c070ac64fdf799cf57a920583e502ea58fd22b6f Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Latour Date: Thu, 1 Jan 2015 04:14:58 -0800 Subject: [PATCH] Fixed internal push state not being cleared on download git_remote_download() must also clear the internal push state resulting from a possible earlier push operation. Otherwise calling git_remote_update_tips() will execute the push version instead of the fetch version and among other things, tags won't be updated. --- src/remote.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/remote.c b/src/remote.c index 03b6f2b3e..bc6f10b35 100644 --- a/src/remote.c +++ b/src/remote.c @@ -885,6 +885,11 @@ int git_remote_download(git_remote *remote, const git_strarray *refspecs) if (error < 0) return error; + if (remote->push) { + git_push_free(remote->push); + remote->push = NULL; + } + if ((error = git_fetch_negotiate(remote)) < 0) return error;