From: John Cai via GitGitGadget Date: Wed, 06 Nov 2024 20:48:01 GMT Subject: [PATCH 2/3] setup: initialize is_bare_cfg Message-ID: <19c97feb06ef2f01f89b462678fe304b58fcba37.1730926082.git.gitgitgadget@gmail.com> In-Reply-To: From: John Cai A subsequent commit will BUG() when the is_bare_cfg member is uninitialized. Since there are still some codepaths that initializing the is_bare_cfg variable, initialize them. Signed-off-by: John Cai --- setup.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/setup.c b/setup.c index 6bc4aef3a8b..5680976c598 100644 --- a/setup.c +++ b/setup.c @@ -741,6 +741,7 @@ static int check_repository_format_gently(const char *gitdir, struct repository_ if (verify_repository_format(candidate, &err) < 0) { if (nongit_ok) { + the_repository->is_bare_cfg = 1; warning("%s", err.buf); strbuf_release(&err); *nongit_ok = -1; @@ -1017,6 +1018,7 @@ static const char *setup_explicit_git_dir(const char *gitdirenv, if (nongit_ok) { *nongit_ok = 1; free(gitfile); + the_repository->is_bare_cfg = 0; return NULL; } die(_("not a git repository: '%s'"), gitdirenv); @@ -1069,6 +1071,7 @@ static const char *setup_explicit_git_dir(const char *gitdirenv, /* set_git_work_tree() must have been called by now */ worktree = repo_get_work_tree(the_repository); + the_repository->is_bare_cfg = 0; /* both repo_get_work_tree() and cwd are already normalized */ if (!strcmp(cwd->buf, worktree)) { /* cwd == worktree */ @@ -1125,6 +1128,9 @@ static const char *setup_discovered_git_dir(const char *gitdir, /* #0, #1, #5, #8, #9, #12, #13 */ set_git_work_tree("."); + + if (the_repository->is_bare_cfg < 0) + the_repository->is_bare_cfg = 0; if (strcmp(gitdir, DEFAULT_GIT_DIR_ENVIRONMENT)) set_git_dir(gitdir, 0); inside_git_dir = 0; @@ -1767,6 +1773,7 @@ const char *setup_git_directory_gently(int *nongit_ok) die(_("not a git repository (or any of the parent directories): %s"), DEFAULT_GIT_DIR_ENVIRONMENT); *nongit_ok = 1; + the_repository->is_bare_cfg = 1; break; case GIT_DIR_HIT_MOUNT_POINT: if (!nongit_ok) -- gitgitgadget