summaryrefslogtreecommitdiff
path: root/builtin-init-db.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-04-08 23:23:41 -0700
committerJunio C Hamano <gitster@pobox.com>2009-04-08 23:23:41 -0700
commitbff82d0cdaf29ec0f8b1f5f166100770c044388f (patch)
tree331010d5c9192dbee7da020bf416cb4c304e1c93 /builtin-init-db.c
parent197cf8d59c0109f486ed6b56512b3c54ea44dccd (diff)
parent1b89eaa4bef44ef84f2af611d5db8727e3be266c (diff)
downloadgit-bff82d0cdaf29ec0f8b1f5f166100770c044388f.tar.gz
Merge branch 'jc/shared-literally' into maint
* jc/shared-literally: t1301: loosen test for forced modes set_shared_perm(): sometimes we know what the final mode bits should look like move_temp_to_file(): do not forget to chmod() in "Coda hack" codepath Move chmod(foo, 0444) into move_temp_to_file() "core.sharedrepository = 0mode" should set, not loosen
Diffstat (limited to 'builtin-init-db.c')
-rw-r--r--builtin-init-db.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/builtin-init-db.c b/builtin-init-db.c
index ee3911f8ee..8199e5d4d5 100644
--- a/builtin-init-db.c
+++ b/builtin-init-db.c
@@ -195,6 +195,8 @@ static int create_default_files(const char *template_path)
git_config(git_default_config, NULL);
is_bare_repository_cfg = init_is_bare_repository;
+
+ /* reading existing config may have overwrote it */
if (init_shared_repository != -1)
shared_repository = init_shared_repository;
@@ -313,12 +315,15 @@ int init_db(const char *template_dir, unsigned int flags)
* and compatibility values for PERM_GROUP and
* PERM_EVERYBODY.
*/
- if (shared_repository == PERM_GROUP)
+ if (shared_repository < 0)
+ /* force to the mode value */
+ sprintf(buf, "0%o", -shared_repository);
+ else if (shared_repository == PERM_GROUP)
sprintf(buf, "%d", OLD_PERM_GROUP);
else if (shared_repository == PERM_EVERYBODY)
sprintf(buf, "%d", OLD_PERM_EVERYBODY);
else
- sprintf(buf, "0%o", shared_repository);
+ die("oops");
git_config_set("core.sharedrepository", buf);
git_config_set("receive.denyNonFastforwards", "true");
}
@@ -398,6 +403,9 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
usage(init_db_usage);
}
+ if (init_shared_repository != -1)
+ shared_repository = init_shared_repository;
+
/*
* GIT_WORK_TREE makes sense only in conjunction with GIT_DIR
* without --bare. Catch the error early.