Merge branch 'mk/diff'
[gitweb.git] / builtin-init-db.c
index bbef820e478dd91cfe63431adf3cecc30e437416..4df9fd0fad7bbc3fd0cde1e6e57b902fbd277608 100644 (file)
@@ -56,7 +56,7 @@ static void copy_templates_1(char *path, int baselen,
 
        /* Note: if ".git/hooks" file exists in the repository being
         * re-initialized, /etc/core-git/templates/hooks/update would
-        * cause git-init-db to fail here.  I think this is sane but
+        * cause git-init to fail here.  I think this is sane but
         * it means that the set of templates we ship by default, along
         * with the way the namespace under .git/ is organized, should
         * be really carefully chosen.
@@ -231,7 +231,7 @@ static int create_default_files(const char *git_dir, const char *template_path)
        strcpy(path + len, "HEAD");
        reinit = !read_ref("HEAD", sha1);
        if (!reinit) {
-               if (create_symref("HEAD", "refs/heads/master") < 0)
+               if (create_symref("HEAD", "refs/heads/master", NULL) < 0)
                        exit(1);
        }
 
@@ -252,9 +252,15 @@ static int create_default_files(const char *git_dir, const char *template_path)
        }
        git_config_set("core.filemode", filemode ? "true" : "false");
 
-       /* Enable logAllRefUpdates if a working tree is attached */
-       if (!is_bare_git_dir(git_dir))
-               git_config_set("core.logallrefupdates", "true");
+       if (is_bare_repository()) {
+               git_config_set("core.bare", "true");
+       }
+       else {
+               git_config_set("core.bare", "false");
+               /* allow template config file to override the default */
+               if (log_all_ref_updates == -1)
+                   git_config_set("core.logallrefupdates", "true");
+       }
        return reinit;
 }
 
@@ -277,11 +283,11 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
 
        for (i = 1; i < argc; i++, argv++) {
                const char *arg = argv[1];
-               if (!strncmp(arg, "--template=", 11))
+               if (!prefixcmp(arg, "--template="))
                        template_dir = arg+11;
                else if (!strcmp(arg, "--shared"))
                        shared_repository = PERM_GROUP;
-               else if (!strncmp(arg, "--shared=", 9))
+               else if (!prefixcmp(arg, "--shared="))
                        shared_repository = git_config_perm("arg", arg+9);
                else
                        usage(init_db_usage);