*/
if (recurse_submodules)
repo_read_gitmodules(the_repository, 1);
- /*
- * Note: `packfile_store_prepare()` prepares stores from all
- * sources. This will be fixed in a subsequent commit.
- */
- if (startup_info->have_repository)
- packfile_store_prepare(the_repository->objects->sources->packfiles);
+
+ if (startup_info->have_repository) {
+ struct odb_source *source;
+
+ odb_prepare_alternates(the_repository->objects);
+ for (source = the_repository->objects->sources; source; source = source->next)
+ packfile_store_prepare(source->packfiles);
+ }
start_threads(&opt);
} else {
void packfile_store_prepare(struct packfile_store *store)
{
- struct odb_source *source;
-
if (store->initialized)
return;
- odb_prepare_alternates(store->source->odb);
- for (source = store->source->odb->sources; source; source = source->next) {
- prepare_multi_pack_index_one(source);
- prepare_packed_git_one(source);
- }
+ prepare_multi_pack_index_one(store->source);
+ prepare_packed_git_one(store->source);
sort_packs(&store->packs.head, sort_pack);
for (struct packfile_list_entry *e = store->packs.head; e; e = e->next)
{
struct odb_source *source;
- /*
- * Note: `packfile_store_prepare()` prepares stores from all sources.
- * This will be fixed in a subsequent commit.
- */
- packfile_store_prepare(r->objects->sources->packfiles);
-
- for (source = r->objects->sources; source; source = source->next)
+ for (source = r->objects->sources; source; source = source->next) {
+ packfile_store_prepare(r->objects->sources->packfiles);
if (source->midx && fill_midx_entry(source->midx, oid, e))
return 1;
+ }
for (source = r->objects->sources; source; source = source->next) {
struct packfile_list_entry *l;