diff options
| author | Junio C Hamano <gitster@pobox.com> | 2009-04-08 23:23:41 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2009-04-08 23:23:41 -0700 |
| commit | bff82d0cdaf29ec0f8b1f5f166100770c044388f (patch) | |
| tree | 331010d5c9192dbee7da020bf416cb4c304e1c93 /builtin-init-db.c | |
| parent | 197cf8d59c0109f486ed6b56512b3c54ea44dccd (diff) | |
| parent | 1b89eaa4bef44ef84f2af611d5db8727e3be266c (diff) | |
| download | git-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.c | 12 |
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. |
