builtin/init: stop modifying `is_bare_repository_cfg`
We're modifying `is_bare_repository_cfg` in "builtin/init.c" to indicate whether the newly created repository is supposed to be a bare repository or not. This is ultimately unnecessary though: when initializing the repository in `init_db()` we eventually set `is_bare_repository_cfg = !work_tree`, so all that matters is whether or not we have a working tree configured, and the working tree is set up in the non-bare in "builtin/init.c". Stop modifying the global variable in "builtin/init.c" in favor of a local variable. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>main
parent
85f5f504f0
commit
f12d73132e
|
|
@ -81,6 +81,7 @@ int cmd_init_db(int argc,
|
|||
const char *template_dir = NULL;
|
||||
char *template_dir_to_free = NULL;
|
||||
unsigned int flags = 0;
|
||||
int bare = is_bare_repository_cfg;
|
||||
const char *object_format = NULL;
|
||||
const char *ref_format = NULL;
|
||||
const char *initial_branch = NULL;
|
||||
|
|
@ -90,7 +91,7 @@ int cmd_init_db(int argc,
|
|||
const struct option init_db_options[] = {
|
||||
OPT_STRING(0, "template", &template_dir, N_("template-directory"),
|
||||
N_("directory from which templates will be used")),
|
||||
OPT_SET_INT(0, "bare", &is_bare_repository_cfg,
|
||||
OPT_SET_INT(0, "bare", &bare,
|
||||
N_("create a bare repository"), 1),
|
||||
{
|
||||
.type = OPTION_CALLBACK,
|
||||
|
|
@ -116,7 +117,7 @@ int cmd_init_db(int argc,
|
|||
|
||||
argc = parse_options(argc, argv, prefix, init_db_options, init_db_usage, 0);
|
||||
|
||||
if (real_git_dir && is_bare_repository_cfg == 1)
|
||||
if (real_git_dir && bare == 1)
|
||||
die(_("options '%s' and '%s' cannot be used together"), "--separate-git-dir", "--bare");
|
||||
|
||||
if (real_git_dir && !is_absolute_path(real_git_dir))
|
||||
|
|
@ -160,7 +161,7 @@ int cmd_init_db(int argc,
|
|||
} else if (0 < argc) {
|
||||
usage(init_db_usage[0]);
|
||||
}
|
||||
if (is_bare_repository_cfg == 1) {
|
||||
if (bare == 1) {
|
||||
char *cwd = xgetcwd();
|
||||
setenv(GIT_DIR_ENVIRONMENT, cwd, argc > 0);
|
||||
free(cwd);
|
||||
|
|
@ -187,7 +188,7 @@ int cmd_init_db(int argc,
|
|||
*/
|
||||
git_dir = xstrdup_or_null(getenv(GIT_DIR_ENVIRONMENT));
|
||||
work_tree = xstrdup_or_null(getenv(GIT_WORK_TREE_ENVIRONMENT));
|
||||
if ((!git_dir || is_bare_repository_cfg == 1) && work_tree)
|
||||
if ((!git_dir || bare == 1) && work_tree)
|
||||
die(_("%s (or --work-tree=<directory>) not allowed without "
|
||||
"specifying %s (or --git-dir=<directory>)"),
|
||||
GIT_WORK_TREE_ENVIRONMENT,
|
||||
|
|
@ -224,10 +225,10 @@ int cmd_init_db(int argc,
|
|||
strbuf_release(&sb);
|
||||
}
|
||||
|
||||
if (is_bare_repository_cfg < 0)
|
||||
is_bare_repository_cfg = guess_repository_type(git_dir);
|
||||
if (bare < 0)
|
||||
bare = guess_repository_type(git_dir);
|
||||
|
||||
if (!is_bare_repository_cfg) {
|
||||
if (!bare) {
|
||||
const char *git_dir_parent = strrchr(git_dir, '/');
|
||||
|
||||
if (work_tree) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue