]> git.ipfire.org Git - thirdparty/git.git/commitdiff
init-db, clone: change unnecessary global into passed parameter
authorElijah Newren <newren@gmail.com>
Tue, 16 May 2023 06:33:43 +0000 (06:33 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 21 Jun 2023 18:14:34 +0000 (11:14 -0700)
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@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/clone.c
builtin/init-db.c
cache.h

index 15f9912b4cae0583ac62d387120fcaa24a58ff23..cc34c194f5e45354bffb2026271d0ee0550b6905 100644 (file)
@@ -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);
index 32ab0a13e09725fd195747f8ed364d9073090738..ae0122534aa900733b5ebd8a452f877ea21f0cdc 100644 (file)
@@ -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 bdedb87e83b8bc8b5fd596b00552072191f96bb2..2bc1cd77d9b399550bcb006f4772648e79395c4b 100644 (file)
--- 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 */