write_remote_refs(): create packed (rather than extra) refs
authorMichael Haggerty <mhagger@alum.mit.edu>
Tue, 17 Jan 2012 05:50:34 +0000 (06:50 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 17 Jan 2012 19:55:04 +0000 (11:55 -0800)
write_remote_refs() creates new packed refs from references obtained
from the remote repository, which is "out of thin air" as far as the
local repository is concerned.  Previously it did this by creating
"extra" refs, then calling pack_refs() to bake them into the
packed-refs file.  Instead, create packed refs (in the packed
reference cache) directly, then call pack_refs().

Aside from being more logical, this is another step towards removing
extra refs entirely.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/clone.c

index 86db95473021bc8d0b1cc8850185e1660fd9c776..9413537a8e0f67b5d2e21cf133088f470cb26cb3 100644 (file)
@@ -441,11 +441,10 @@ static void write_remote_refs(const struct ref *local_refs)
        for (r = local_refs; r; r = r->next) {
                if (!r->peer_ref)
                        continue;
-               add_extra_ref(r->peer_ref->name, r->old_sha1, 0);
+               add_packed_ref(r->peer_ref->name, r->old_sha1);
        }
 
        pack_refs(PACK_REFS_ALL);
-       clear_extra_refs();
 }
 
 static int write_one_config(const char *key, const char *value, void *data)