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 86db954..9413537 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)