118
int midx_must_contain_cruft;
119
};
120
121
-static int midx_has_unknown_packs(struct string_list *midx_pack_names,
122
- struct string_list *include,
121
+static int midx_has_unknown_packs(struct string_list *include,
122
struct pack_geometry *geometry,
123
struct existing_packs *existing)
124
{
126
127
string_list_sort(include);
128
130
- for_each_string_list_item(item, midx_pack_names) {
129
+ for_each_string_list_item(item, &existing->midx_packs) {
130
const char *pack_name = item->string;
131
132
/*
189
190
static void midx_included_packs(struct string_list *include,
191
struct existing_packs *existing,
193
- struct string_list *midx_pack_names,
192
struct string_list *names,
193
struct pack_geometry *geometry)
194
{
243
}
244
245
if (midx_must_contain_cruft ||
248
- midx_has_unknown_packs(midx_pack_names, include, geometry,
249
- existing)) {
246
+ midx_has_unknown_packs(include, geometry, existing)) {
247
/*
248
* If there are one or more unknown pack(s) present (see
249
* midx_has_unknown_packs() for what makes a pack
601
struct child_process cmd = CHILD_PROCESS_INIT;
602
struct string_list_item *item;
603
struct string_list names = STRING_LIST_INIT_DUP;
607
- struct string_list midx_pack_names = STRING_LIST_INIT_DUP;
604
struct existing_packs existing = EXISTING_PACKS_INIT;
605
struct pack_geometry geometry = { 0 };
606
struct tempfile *refs_snapshot = NULL;
974
975
string_list_sort(&names);
976
981
- if (get_multi_pack_index(repo->objects->sources)) {
982
- struct multi_pack_index *m =
983
- get_multi_pack_index(repo->objects->sources);
984
-
985
- for (; m; m = m->base_midx) {
986
- for (uint32_t i = 0; i < m->num_packs; i++) {
987
- string_list_append(&midx_pack_names,
988
- m->pack_names[i]);
989
- }
990
- }
991
- }
992
-
977
close_object_store(repo->objects);
978
979
/*
999
.write_bitmaps = write_bitmaps > 0,
1000
.midx_must_contain_cruft = midx_must_contain_cruft
1001
};
1018
- midx_included_packs(&include, &existing, &midx_pack_names,
1019
- &names, &geometry);
1002
+ midx_included_packs(&include, &existing, &names, &geometry);
1003
1004
ret = write_midx_included_packs(&opts);
1005
1046
cleanup:
1047
string_list_clear(&keep_pack_list, 0);
1048
string_list_clear(&names, 1);
1066
- string_list_clear(&midx_pack_names, 0);
1049
existing_packs_release(&existing);
1050
pack_geometry_release(&geometry);
1051
pack_objects_args_release(&po_args);