diff --git a/builtin/clone.c b/builtin/clone.c index 2e3473fddf..48ac379b1d 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -1368,11 +1368,8 @@ int cmd_clone(int argc, if (option_local > 0 && !is_local) warning(_("--local is ignored")); - create_object_database(the_repository); collect_alternates(&alternates, path, is_local); - - for (size_t i = 0; i < alternates.nr; i++) - odb_add_to_alternates_file(the_repository->objects, alternates.v[i]); + create_object_database(the_repository, &alternates); transport = transport_get(remote, path ? path : remote->url.v[0]); transport_set_verbosity(transport, option_verbosity, option_progress); diff --git a/setup.c b/setup.c index 426cc7dff8..cfa286ff59 100644 --- a/setup.c +++ b/setup.c @@ -2647,9 +2647,12 @@ static int create_default_files(struct repository *repo, return reinit; } -void create_object_database(struct repository *repo) +void create_object_database(struct repository *repo, + const struct strvec *alternates) { - struct odb_create_on_disk_options opts = { 0 }; + struct odb_create_on_disk_options opts = { + .alternates = alternates, + }; /* * Create the "objects" directory in the common directory. This is done @@ -2907,7 +2910,7 @@ int init_db(struct repository *repo, if (!(flags & INIT_DB_SKIP_REFDB)) create_reference_database(repo, initial_branch, flags & INIT_DB_QUIET); if (!(flags & INIT_DB_SKIP_ODB)) - create_object_database(repo); + create_object_database(repo, NULL); startup_info->have_repository = 1; diff --git a/setup.h b/setup.h index 570ebcd150..34e86dad37 100644 --- a/setup.h +++ b/setup.h @@ -277,7 +277,7 @@ void initialize_repository_version(struct repository *repo, enum ref_storage_format ref_storage_format, int reinit); void create_reference_database(struct repository *repo, const char *initial_branch, int quiet); -void create_object_database(struct repository *repo); +void create_object_database(struct repository *repo, const struct strvec *alternates); /* * NOTE NOTE NOTE!!