aboutsummaryrefslogtreecommitdiffstats
path: root/builtin/pack-objects.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2025-07-29 11:34:08 -0700
committerJunio C Hamano <gitster@pobox.com>2025-07-29 11:34:08 -0700
commit70b7b03f986f5aa43d56e7bbf1fee149d790d06f (patch)
treec7d309179296d69a49d4e972898b0e1c2ff0793d /builtin/pack-objects.c
parentThe fifteenth batch (diff)
parentmidx: remove now-unused linked list of multi-pack indices (diff)
downloadgit-70b7b03f986f5aa43d56e7bbf1fee149d790d06f.tar.gz
git-70b7b03f986f5aa43d56e7bbf1fee149d790d06f.zip
Merge branch 'ps/object-store-midx' into ps/object-store-midx-dedup-info
* ps/object-store-midx: midx: remove now-unused linked list of multi-pack indices packfile: stop using linked MIDX list in `get_all_packs()` packfile: stop using linked MIDX list in `find_pack_entry()` packfile: refactor `get_multi_pack_index()` to work on sources midx: stop using linked list when closing MIDX packfile: refactor `prepare_packed_git_one()` to work on sources midx: start tracking per object database source
Diffstat (limited to 'builtin/pack-objects.c')
-rw-r--r--builtin/pack-objects.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index 067b9e322a..3dd84495b8 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -1706,8 +1706,8 @@ static int want_object_in_pack_mtime(const struct object_id *oid,
uint32_t found_mtime)
{
int want;
+ struct odb_source *source;
struct list_head *pos;
- struct multi_pack_index *m;
if (!exclude && local && has_loose_object_nonlocal(oid))
return 0;
@@ -1727,9 +1727,13 @@ static int want_object_in_pack_mtime(const struct object_id *oid,
*found_offset = 0;
}
- for (m = get_multi_pack_index(the_repository); m; m = m->next) {
+ odb_prepare_alternates(the_repository->objects);
+
+ for (source = the_repository->objects->sources; source; source = source->next) {
+ struct multi_pack_index *m = get_multi_pack_index(source);
struct pack_entry e;
- if (fill_midx_entry(the_repository, oid, &e, m)) {
+
+ if (m && fill_midx_entry(the_repository, oid, &e, m)) {
want = want_object_in_pack_one(e.p, oid, exclude, found_pack, found_offset, found_mtime);
if (want != -1)
return want;