From: Elijah Newren <newren@xxxxxxxxx> Much like the parent commit, this commit was prompted by a desire to move the functions which builtin/init-db.c and builtin/clone.c share out of the former file and into setup.c. A secondary issue that made it difficult was the init_shared_repository global variable; replace it with a simple parameter that is passed to the relevant functions. Signed-off-by: Elijah Newren <newren@xxxxxxxxx> --- builtin/clone.c | 3 ++- builtin/init-db.c | 9 +++++---- cache.h | 3 ++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/builtin/clone.c b/builtin/clone.c index 15f9912b4ca..cc34c194f5e 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -930,6 +930,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix) int submodule_progress; int filter_submodules = 0; int hash_algo; + const int do_not_override_repo_unix_permissions = -1; struct transport_ls_refs_options transport_ls_refs_options = TRANSPORT_LS_REFS_OPTIONS_INIT; @@ -1097,7 +1098,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix) } init_db(git_dir, real_git_dir, option_template, GIT_HASH_UNKNOWN, NULL, - INIT_DB_QUIET); + do_not_override_repo_unix_permissions, INIT_DB_QUIET); if (real_git_dir) { free((char *)git_dir); diff --git a/builtin/init-db.c b/builtin/init-db.c index 32ab0a13e09..ae0122534aa 100644 --- a/builtin/init-db.c +++ b/builtin/init-db.c @@ -31,8 +31,6 @@ #define GIT_DEFAULT_HASH_ENVIRONMENT "GIT_DEFAULT_HASH" -static int init_shared_repository = -1; - static void copy_templates_1(struct strbuf *path, struct strbuf *template_path, DIR *dir) { @@ -199,6 +197,7 @@ static int create_default_files(const char *template_path, const char *initial_branch, const struct repository_format *fmt, int prev_bare_repository, + int init_shared_repository, int quiet) { struct stat st1; @@ -418,7 +417,7 @@ static void validate_hash_algorithm(struct repository_format *repo_fmt, int hash int init_db(const char *git_dir, const char *real_git_dir, const char *template_dir, int hash, const char *initial_branch, - unsigned int flags) + int init_shared_repository, unsigned int flags) { int reinit; int exist_ok = flags & INIT_DB_EXIST_OK; @@ -464,6 +463,7 @@ int init_db(const char *git_dir, const char *real_git_dir, reinit = create_default_files(template_dir, original_git_dir, initial_branch, &repo_fmt, prev_bare_repository, + init_shared_repository, flags & INIT_DB_QUIET); if (reinit && initial_branch) warning(_("re-init: ignored --initial-branch=%s"), @@ -575,6 +575,7 @@ int cmd_init_db(int argc, const char **argv, const char *prefix) const char *object_format = NULL; const char *initial_branch = NULL; int hash_algo = GIT_HASH_UNKNOWN; + int init_shared_repository = -1; const struct option init_db_options[] = { OPT_STRING(0, "template", &template_dir, N_("template-directory"), N_("directory from which templates will be used")), @@ -732,5 +733,5 @@ int cmd_init_db(int argc, const char **argv, const char *prefix) flags |= INIT_DB_EXIST_OK; return init_db(git_dir, real_git_dir, template_dir, hash_algo, - initial_branch, flags); + initial_branch, init_shared_repository, flags); } diff --git a/cache.h b/cache.h index bdedb87e83b..2bc1cd77d9b 100644 --- a/cache.h +++ b/cache.h @@ -327,7 +327,8 @@ extern struct index_state the_index; int init_db(const char *git_dir, const char *real_git_dir, const char *template_dir, int hash_algo, - const char *initial_branch, unsigned int flags); + const char *initial_branch, int init_shared_repository, + unsigned int flags); void initialize_repository_version(int hash_algo, int reinit); /* Initialize and use the cache information */ -- gitgitgadget