aboutsummaryrefslogtreecommitdiff
path: root/t/t1501-worktree.sh
diff options
context:
space:
mode:
authorSZEDER Gábor <szeder@ira.uka.de>2009-01-16 16:37:33 +0100
committerJunio C Hamano <gitster@pobox.com>2009-01-17 21:46:50 -0800
commit72183cb297f614dc2df1c0ed08afac1be27ec35a (patch)
tree2c27182ec9b1be03b7b786cf92456b8436f7edfc /t/t1501-worktree.sh
parentbf474e2402e51843e8230c064da6ccfdf3a8ff54 (diff)
downloadgit-72183cb297f614dc2df1c0ed08afac1be27ec35a.tar.gz
git-72183cb297f614dc2df1c0ed08afac1be27ec35a.tar.xz
Fix gitdir detection when in subdir of gitdir
If the current working directory is a subdirectory of the gitdir (e.g. <repo>/.git/refs/), then setup_git_directory_gently() will climb its parent directories until it finds itself in a gitdir. However, no matter how many parent directories it climbs, it sets 'GIT_DIR_ENVIRONMENT' to ".", which is obviously wrong. This behaviour affected at least 'git rev-parse --git-dir' and hence caused some errors in bash completion (e.g. customized command prompt when on a detached head and completion of refs). To fix this, we set the absolute path of the found gitdir instead. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t1501-worktree.sh')
-rwxr-xr-xt/t1501-worktree.sh7
1 files changed, 7 insertions, 0 deletions
diff --git a/t/t1501-worktree.sh b/t/t1501-worktree.sh
index c039ee3fd..1bcadf3eb 100755
--- a/t/t1501-worktree.sh
+++ b/t/t1501-worktree.sh
@@ -92,6 +92,13 @@ cd sub/dir || exit 1
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 &&