packfile: stop using linked MIDX list in get_all_packs()

Refactor `get_all_packs()` so that we stop using the linked list of
multi-pack indices. Note that there is no need to explicitly prepare
alternates, and neither do we have to use `get_multi_pack_index()`,
because `prepare_packed_git()` already takes care of populating all data
structures for us.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt
2025-07-15 13:29:23 +02:00
committed by Junio C Hamano
parent 7fc1998392
commit c620586fcc

View File

@@ -1086,12 +1086,13 @@ struct multi_pack_index *get_multi_pack_index(struct odb_source *source)
struct packed_git *get_all_packs(struct repository *r) struct packed_git *get_all_packs(struct repository *r)
{ {
struct multi_pack_index *m;
prepare_packed_git(r); prepare_packed_git(r);
for (m = r->objects->multi_pack_index; m; m = m->next) {
uint32_t i; for (struct odb_source *source = r->objects->sources; source; source = source->next) {
for (i = 0; i < m->num_packs + m->num_packs_in_base; i++) struct multi_pack_index *m = source->midx;
if (!m)
continue;
for (uint32_t i = 0; i < m->num_packs + m->num_packs_in_base; i++)
prepare_midx_pack(r, m, i); prepare_midx_pack(r, m, i);
} }