Commit c070ac64fdf799cf57a920583e502ea58fd22b6f

Pierre-Olivier Latour 2015-01-01T04:14:58

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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
diff --git a/src/remote.c b/src/remote.c
index 03b6f2b..bc6f10b 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;