summaryrefslogtreecommitdiff
path: root/object-store.h
diff options
context:
space:
mode:
authorDerrick Stolee <dstolee@microsoft.com>2018-08-20 16:52:02 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-08-20 22:31:40 (GMT)
commit0bff5269d3ed7124259bb3a5b33ddf2c4080b7e7 (patch)
tree9202a3c78155e5793caf511f00ad3d320634b949 /object-store.h
parent29e2016b8f952c900b2f4ce148be5279c53fd9e3 (diff)
downloadgit-0bff5269d3ed7124259bb3a5b33ddf2c4080b7e7.zip
git-0bff5269d3ed7124259bb3a5b33ddf2c4080b7e7.tar.gz
git-0bff5269d3ed7124259bb3a5b33ddf2c4080b7e7.tar.bz2
packfile: add all_packs list
If a repo contains a multi-pack-index, then the packed_git list does not contain the packfiles that are covered by the multi-pack-index. This is important for doing object lookups, abbreviations, and approximating object count. However, there are many operations that really want to iterate over all packfiles. Create a new 'all_packs' linked list that contains this list, starting with the packfiles in the multi-pack-index and then continuing along the packed_git linked list. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'object-store.h')
-rw-r--r--object-store.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/object-store.h b/object-store.h
index 97f1c16..63b7605 100644
--- a/object-store.h
+++ b/object-store.h
@@ -130,6 +130,12 @@ struct raw_object_store {
struct list_head packed_git_mru;
/*
+ * A linked list containing all packfiles, starting with those
+ * contained in the multi_pack_index.
+ */
+ struct packed_git *all_packs;
+
+ /*
* A fast, rough count of the number of objects in the repository.
* These two fields are not meant for direct access. Use
* approximate_object_count() instead.