Merge branch 'rs/unpack-trees-reduce-file-scope-global'
[gitweb.git] / builtin / init-db.c
index 80192f65e4cbf7144bbc7454a9fccf30a1707f9c..72e81447ae84c8e69799fff5a6fe7050241bea9b 100644 (file)
@@ -185,16 +185,25 @@ static int create_default_files(const char *template_path)
        /* Just look for `init.templatedir` */
        git_config(git_init_db_config, NULL);
 
-       /* First copy the templates -- we might have the default
+       /*
+        * First copy the templates -- we might have the default
         * config file there, in which case we would want to read
         * from it after installing.
+        *
+        * Before reading that config, we also need to clear out any cached
+        * values (since we've just potentially changed what's available on
+        * disk).
         */
        copy_templates(template_path);
-
+       git_config_clear();
+       reset_shared_repository();
        git_config(git_default_config, NULL);
-       is_bare_repository_cfg = init_is_bare_repository;
 
-       /* reading existing config may have overwrote it */
+       /*
+        * We must make sure command-line options continue to override any
+        * values we might have just re-read from the config.
+        */
+       is_bare_repository_cfg = init_is_bare_repository;
        if (init_shared_repository != -1)
                set_shared_repository(init_shared_repository);