@ -195,6 +195,8 @@ static int create_default_files(const char *template_path)
git_config(git_default_config, NULL);
git_config(git_default_config, NULL);
is_bare_repository_cfg = init_is_bare_repository;
is_bare_repository_cfg = init_is_bare_repository;
/* reading existing config may have overwrote it */
if (init_shared_repository != -1)
if (init_shared_repository != -1)
shared_repository = init_shared_repository;
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
* and compatibility values for PERM_GROUP and
* PERM_EVERYBODY.
* 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);
sprintf(buf, "%d", OLD_PERM_GROUP);
else if (shared_repository == PERM_EVERYBODY)
else if (shared_repository == PERM_EVERYBODY)
sprintf(buf, "%d", OLD_PERM_EVERYBODY);
sprintf(buf, "%d", OLD_PERM_EVERYBODY);
else
else
sprintf(buf, "0%o", shared_repository);
die("oops");
git_config_set("core.sharedrepository", buf);
git_config_set("core.sharedrepository", buf);
git_config_set("receive.denyNonFastforwards", "true");
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);
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
* GIT_WORK_TREE makes sense only in conjunction with GIT_DIR
* without --bare. Catch the error early.
* without --bare. Catch the error early.