Update the tracking references only if they were succesfully updated on remote
authorAlex Riesen <raa.lkml@gmail.com>
Mon, 12 Nov 2007 21:39:38 +0000 (22:39 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 13 Nov 2007 01:50:31 +0000 (17:50 -0800)
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>
send-pack.c

index b74fd454f2f09d23ffde7db015d4a7458dfcd348..d56d980af7af9466cd8b13433f5fd3badadd0d98 100644 (file)
@@ -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)