author | Junio C Hamano <gitster@pobox.com> | |
Thu, 22 Jan 2009 00:51:25 +0000 (16:51 -0800) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Thu, 22 Jan 2009 00:51:25 +0000 (16:51 -0800) |
* sg/maint-gitdir-in-subdir:
Fix gitdir detection when in subdir of gitdir
Fix gitdir detection when in subdir of gitdir
setup.c | patch | blob | history | |
t/t1501-worktree.sh | patch | blob | history |
index 6b277b6a11d3d8419d79a93628b9923001a065a6..dfda532adc16f5e6d25d7cfc5add3e0e2b6a5209 100644 (file)
--- a/setup.c
+++ b/setup.c
inside_git_dir = 1;
if (!work_tree_env)
inside_work_tree = 0;
- setenv(GIT_DIR_ENVIRONMENT, ".", 1);
+ if (offset != len) {
+ cwd[offset] = '\0';
+ setenv(GIT_DIR_ENVIRONMENT, cwd, 1);
+ } else
+ setenv(GIT_DIR_ENVIRONMENT, ".", 1);
check_repository_format_gently(nongit_ok);
return NULL;
}
diff --git a/t/t1501-worktree.sh b/t/t1501-worktree.sh
index f6a6f839a18de4c3775ea965f164d0d20f2bbe9b..27dc6c55d5f50a7fd30388b60230482bad6be2d8 100755 (executable)
--- a/t/t1501-worktree.sh
+++ b/t/t1501-worktree.sh
test_rev_parse 'in repo.git/sub/dir' false true true sub/dir/
cd ../../../.. || exit 1
+test_expect_success 'detecting gitdir when cwd is in a subdir of gitdir' '
+ (expected=$(pwd)/repo.git &&
+ cd repo.git/refs &&
+ unset GIT_DIR &&
+ test "$expected" = "$(git rev-parse --git-dir)")
+'
+
test_expect_success 'repo finds its work tree' '
(cd repo.git &&
: > work/sub/dir/untracked &&