aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Riesen <raa.lkml@gmail.com>2007-11-12 22:39:38 +0100
committerJunio C Hamano <gitster@pobox.com>2007-11-12 17:50:31 -0800
commited31df312a30d91c288a4b6e3d031de15284405a (patch)
tree41073b1714167d9206ad0dedf0bff617fc276480
parent6fa92bf3cdbfdd8c9c56ef40a5170a859442b166 (diff)
downloadgit-ed31df312a30d91c288a4b6e3d031de15284405a.tar.gz
git-ed31df312a30d91c288a4b6e3d031de15284405a.tar.xz
Update the tracking references only if they were succesfully updated on remote
It fixes the bug where local tracking branches were filled with zeroed SHA-1 if the remote branch was not updated because, for instance, it was not an ancestor of the local (i.e. had other changes). Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--send-pack.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/send-pack.c b/send-pack.c
index b74fd454f..d56d980af 100644
--- a/send-pack.c
+++ b/send-pack.c
@@ -349,7 +349,8 @@ static int send_pack(int in, int out, struct remote *remote, int nr_refspec, cha
if (!dry_run && remote && ret == 0) {
for (ref = remote_refs; ref; ref = ref->next)
- update_tracking_ref(remote, ref);
+ if (!is_null_sha1(ref->new_sha1))
+ update_tracking_ref(remote, ref);
}
if (!new_refs && ret == 0)