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>

Patrick Steinhardt committed Jul 15, 2025 at 13:29 UTC c620586fccf5a62e36a2d6cc96d0427f93f123fc
1 file changed +6 -5
packfile.c
+6 -5
@@ -1086,12 +1086,13 @@ struct multi_pack_index *get_multi_pack_index(struct odb_source *source)
1086
1087 struct packed_git *get_all_packs(struct repository *r)
1088 {
1089 - struct multi_pack_index *m;
1090 -
1089 prepare_packed_git(r);
1092 - for (m = r->objects->multi_pack_index; m; m = m->next) {
1093 - uint32_t i;
1094 - for (i = 0; i < m->num_packs + m->num_packs_in_base; i++)
1090 +
1091 + for (struct odb_source *source = r->objects->sources; source; source = source->next) {
1092 + struct multi_pack_index *m = source->midx;
1093 + if (!m)
1094 + continue;
1095 + for (uint32_t i = 0; i < m->num_packs + m->num_packs_in_base; i++)
1096 prepare_midx_pack(r, m, i);
1097 }
1098