diff options
author | Jeff King <peff@peff.net> | 2014-10-16 20:44:30 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-10-19 15:07:07 -0700 |
commit | 1be111d88f526130dcf3b7c7ad0f5df17c6d2bae (patch) | |
tree | 28319c41ecc99ce1def2122af0e7b190c7f269e6 /reachable.c | |
parent | 4fe10219bca6b010e2103116c653928992d5141b (diff) | |
download | git-1be111d88f526130dcf3b7c7ad0f5df17c6d2bae.tar.gz |
reachable: use revision machinery's --indexed-objects code
This does the same thing as our custom code, so let's not
repeat ourselves.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'reachable.c')
-rw-r--r-- | reachable.c | 52 |
1 files changed, 1 insertions, 51 deletions
diff --git a/reachable.c b/reachable.c index 0176a88b81..a647267ae9 100644 --- a/reachable.c +++ b/reachable.c @@ -32,56 +32,6 @@ static int add_one_ref(const char *path, const unsigned char *sha1, int flag, vo return 0; } -static void add_one_tree(const unsigned char *sha1, struct rev_info *revs) -{ - struct tree *tree = lookup_tree(sha1); - if (tree) - add_pending_object(revs, &tree->object, ""); -} - -static void add_cache_tree(struct cache_tree *it, struct rev_info *revs) -{ - int i; - - if (it->entry_count >= 0) - add_one_tree(it->sha1, revs); - for (i = 0; i < it->subtree_nr; i++) - add_cache_tree(it->down[i]->cache_tree, revs); -} - -static void add_cache_refs(struct rev_info *revs) -{ - int i; - - read_cache(); - for (i = 0; i < active_nr; i++) { - struct blob *blob; - - /* - * The index can contain blobs and GITLINKs, GITLINKs are hashes - * that don't actually point to objects in the repository, it's - * almost guaranteed that they are NOT blobs, so we don't call - * lookup_blob() on them, to avoid populating the hash table - * with invalid information - */ - if (S_ISGITLINK(active_cache[i]->ce_mode)) - continue; - - blob = lookup_blob(active_cache[i]->sha1); - if (blob) - blob->object.flags |= SEEN; - - /* - * We could add the blobs to the pending list, but quite - * frankly, we don't care. Once we've looked them up, and - * added them as objects, we've really done everything - * there is to do for a blob - */ - } - if (active_cache_tree) - add_cache_tree(active_cache_tree, revs); -} - /* * The traversal will have already marked us as SEEN, so we * only need to handle any progress reporting here. @@ -213,7 +163,7 @@ void mark_reachable_objects(struct rev_info *revs, int mark_reflog, revs->tree_objects = 1; /* Add all refs from the index file */ - add_cache_refs(revs); + add_index_objects_to_pending(revs, 0); /* Add all external refs */ for_each_ref(add_one_ref, revs); |