[PATCH 2/6] setup: set startup_info->have_repository more reliably
- From
Jeff King <peff@peff.net>
- Date
- Mar 5, 2016, 22:11 UTC
- Message-ID
- <20160305221134.GB31508@sigill.intra.peff.net>
- In-Reply-To
- <20160305220829.GA31316@sigill.intra.peff.net>
When setup_git_directory() is called, we set a flag in startup_info to indicate we have a repository. But there are a few other mechanisms by which we might set up a repo:
1. When creating a new repository via init_db(), we
transition from no-repo to being in a repo. We should
tweak this flag at that moment. 2. In enter_repo(), a stricter form of
setup_git_directory() used by server-side programs, we
check the repository format config. After doing so, we
know we're in a repository, and can set the flag.With these changes, library code can now reliably tell whether we are in a repository and act accordingly. We'll leave the "prefix" field as NULL, which is what happens when setup_git_directory() finds there is no prefix.
Signed-off-by: Jeff King <peff@peff.net> --- I did these patches directly on master. When applied on top of the other check_repository_format series I posted a few days ago, this one will have a minor textual conflict (that other series dropped the pointless return from this function).
builtin/init-db.c | 1 + setup.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/builtin/init-db.c b/builtin/init-db.c index 6223b7d..da531f6 100644 --- a/builtin/init-db.c +++ b/builtin/init-db.c @@ -322,6 +322,7 @@ int set_git_dir_init(const char *git_dir, const char *real_git_dir, set_git_dir(real_path(git_dir)); git_link = NULL; } + startup_info->have_repository = 1; return 0; } diff --git a/setup.c b/setup.c index fa7a306..3439ec6 100644 --- a/setup.c +++ b/setup.c @@ -986,7 +986,9 @@ int check_repository_format_version(const char *var, const char *value, void *cb int check_repository_format(void) { - return check_repository_format_gently(get_git_dir(), NULL); + check_repository_format_gently(get_git_dir(), NULL); + startup_info->have_repository = 1; + return 0; } /*
-- 2.8.0.rc1.318.g2193183