aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2007-11-29 19:21:39 +0700
committerJunio C Hamano <gitster@pobox.com>2007-11-30 15:05:48 -0800
commit138dd1e990cef5ac0176426016ad5e1f8e5dff58 (patch)
tree9dc15f7e289ebcf381f518718b8a2c6bd21cb0a1
parent1e8a1954519a070e92cb73f756b271664e1cc4d1 (diff)
downloadgit-138dd1e990cef5ac0176426016ad5e1f8e5dff58.tar.gz
git-138dd1e990cef5ac0176426016ad5e1f8e5dff58.tar.xz
Do check_repository_format() early
Repository version check is only performed when setup_git_directory() is called. This makes sure setup_git_directory_gently() does the check too. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--setup.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/setup.c b/setup.c
index 6f8f76958..8e4630ebf 100644
--- a/setup.c
+++ b/setup.c
@@ -230,8 +230,14 @@ const char *setup_git_directory_gently(int *nongit_ok)
static char buffer[1024 + 1];
const char *retval;
- if (!work_tree_env)
- return set_work_tree(gitdirenv);
+ if (!work_tree_env) {
+ retval = set_work_tree(gitdirenv);
+ /* config may override worktree
+ * see set_work_tree comment */
+ check_repository_format();
+ return retval;
+ }
+ check_repository_format();
retval = get_relative_cwd(buffer, sizeof(buffer) - 1,
get_git_work_tree());
if (!retval || !*retval)
@@ -271,6 +277,7 @@ const char *setup_git_directory_gently(int *nongit_ok)
if (!work_tree_env)
inside_work_tree = 0;
setenv(GIT_DIR_ENVIRONMENT, ".", 1);
+ check_repository_format();
return NULL;
}
chdir("..");
@@ -291,6 +298,7 @@ const char *setup_git_directory_gently(int *nongit_ok)
if (!work_tree_env)
inside_work_tree = 1;
git_work_tree_cfg = xstrndup(cwd, offset);
+ check_repository_format();
if (offset == len)
return NULL;
@@ -351,7 +359,6 @@ int check_repository_format(void)
const char *setup_git_directory(void)
{
const char *retval = setup_git_directory_gently(NULL);
- check_repository_format();
/* If the work tree is not the default one, recompute prefix */
if (inside_work_tree < 0) {