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>
This commit is contained in:
Alex Riesen 2007-11-12 22:39:38 +01:00 committed by Junio C Hamano
parent 6fa92bf3cd
commit ed31df312a

View 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)