Implement safe_strncpy() as strlcpy() and use it more.
[gitweb.git] / builtin-init-db.c
index 2a1384ccb0b5a54f94057f9eac58ed449aac2fc5..6a24e9bcab4a7b364b69f9ccf2ae822c40873895 100644 (file)
@@ -198,6 +198,21 @@ static void create_default_files(const char *git_dir, const char *template_path)
 
        git_config(git_default_config);
 
+       /*
+        * We would have created the above under user's umask -- under
+        * shared-repository settings, we would need to fix them up.
+        */
+       if (shared_repository) {
+               path[len] = 0;
+               adjust_shared_perm(path);
+               strcpy(path + len, "refs");
+               adjust_shared_perm(path);
+               strcpy(path + len, "refs/heads");
+               adjust_shared_perm(path);
+               strcpy(path + len, "refs/tags");
+               adjust_shared_perm(path);
+       }
+
        /*
         * Create the default symlink from ".git/HEAD" to the "master"
         * branch, if it does not exist yet.
@@ -287,7 +302,7 @@ int cmd_init_db(int argc, const char **argv, char **envp)
        safe_create_dir(path, 1);
 
        if (shared_repository)
-               git_config_set("core.sharedRepository", "true");
+               git_config_set("core.sharedrepository", "true");
 
        return 0;
 }