# - cwd can't be outside worktree
test_expect_success '#0: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 0 0/sub &&
cd 0 && git init && cd ..
'
# GIT_WORK_TREE is ignored -> #0
test_expect_success '#1: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 1 1/sub 1.wt 1.wt/sub 1/wt 1/wt/sub &&
cd 1 &&
git init &&
cd ..
'
-test_expect_failure '#1: at root' '
+test_expect_success '#1: at root' '
cat >1/expected <<EOF &&
setup: git_dir: .git
setup: worktree: $TRASH_DIRECTORY/1
test_repo 1
'
-test_expect_failure '#1: in subdir' '
+test_expect_success '#1: in subdir' '
cat >1/sub/expected <<EOF &&
setup: git_dir: .git
setup: worktree: $TRASH_DIRECTORY/1
# - cwd can't be outside worktree
test_expect_success '#2: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 2 2/sub &&
cd 2 && git init && cd ..
'
# - cwd can be outside worktree
test_expect_success '#3: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 3 3/sub 3/sub/sub 3.wt 3.wt/sub 3/wt 3/wt/sub &&
cd 3 && git init && cd ..
'
# core.worktree is ignored -> #0
test_expect_success '#4: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 4 4/sub &&
cd 4 &&
git init &&
cd ..
'
-test_expect_failure '#4: at root' '
+test_expect_success '#4: at root' '
cat >4/expected <<EOF &&
setup: git_dir: .git
setup: worktree: $TRASH_DIRECTORY/4
test_repo 4
'
-test_expect_failure '#4: in subdir' '
+test_expect_success '#4: in subdir' '
cat >4/sub/expected <<EOF &&
setup: git_dir: .git
setup: worktree: $TRASH_DIRECTORY/4
# GIT_WORK_TREE/core.worktree are ignored -> #0
test_expect_success '#5: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 5 5/sub &&
cd 5 &&
git init &&
cd ..
'
-test_expect_failure '#5: at root' '
+test_expect_success '#5: at root' '
cat >5/expected <<EOF &&
setup: git_dir: .git
setup: worktree: $TRASH_DIRECTORY/5
test_repo 5
'
-test_expect_failure '#5: in subdir' '
+test_expect_success '#5: in subdir' '
cat >5/sub/expected <<EOF &&
setup: git_dir: .git
setup: worktree: $TRASH_DIRECTORY/5
# - cwd can be outside worktree
test_expect_success '#6: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 6 6/sub 6/sub/sub 6.wt 6.wt/sub 6/wt 6/wt/sub &&
cd 6 && git init && cd ..
'
test_repo 6 "$TRASH_DIRECTORY/6/.git"
'
-test_expect_failure '#6: GIT_DIR(rel), core.worktree=.. in subdir' '
+test_expect_success '#6: GIT_DIR(rel), core.worktree=.. in subdir' '
cat >6/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/6/.git
setup: worktree: $TRASH_DIRECTORY/6
test_repo 6/sub/sub ../../.git
'
-test_expect_failure '#6: GIT_DIR(rel), core.worktree=..(rel) in subdir' '
+test_expect_success '#6: GIT_DIR(rel), core.worktree=..(rel) in subdir' '
cat >6/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/6/.git
setup: worktree: $TRASH_DIRECTORY/6
test_repo 6/sub/sub "$TRASH_DIRECTORY/6/.git"
'
-test_expect_failure '#6: GIT_DIR(rel), core.worktree=../.. at root' '
+test_expect_success '#6: GIT_DIR(rel), core.worktree=../.. at root' '
cat >6/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/6/.git
setup: worktree: $TRASH_DIRECTORY
test_repo 6 .git
'
-test_expect_failure '#6: GIT_DIR(rel), core.worktree=../..(rel) at root' '
+test_expect_success '#6: GIT_DIR(rel), core.worktree=../..(rel) at root' '
cat >6/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/6/.git
setup: worktree: $TRASH_DIRECTORY
test_repo 6 "$TRASH_DIRECTORY/6/.git"
'
-test_expect_failure '#6: GIT_DIR(rel), core.worktree=../.. in subdir' '
+test_expect_success '#6: GIT_DIR(rel), core.worktree=../.. in subdir' '
cat >6/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/6/.git
setup: worktree: $TRASH_DIRECTORY
test_repo 6/sub/sub ../../.git
'
-test_expect_failure '#6: GIT_DIR(rel), core.worktree=../..(rel) in subdir' '
+test_expect_success '#6: GIT_DIR(rel), core.worktree=../..(rel) in subdir' '
cat >6/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/6/.git
setup: worktree: $TRASH_DIRECTORY
# core.worktree is overridden by GIT_WORK_TREE -> #3
test_expect_success '#7: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 7 7/sub 7/sub/sub 7.wt 7.wt/sub 7/wt 7/wt/sub &&
cd 7 &&
git init &&
# #0 except that git_dir is set by .git file
test_expect_success '#8: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 8 8/sub &&
cd 8 &&
git init &&
# #1 except that git_dir is set by .git file
test_expect_success '#9: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 9 9/sub 9.wt 9.wt/sub 9/wt 9/wt/sub &&
cd 9 &&
git init &&
cd ..
'
-test_expect_failure '#9: at root' '
+test_expect_success '#9: at root' '
cat >9/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/9.git
setup: worktree: $TRASH_DIRECTORY/9
test_repo 9
'
-test_expect_failure '#9: in subdir' '
+test_expect_success '#9: in subdir' '
cat >9/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/9.git
setup: worktree: $TRASH_DIRECTORY/9
# #2 except that git_dir is set by .git file
test_expect_success '#10: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 10 10/sub &&
cd 10 &&
git init &&
cd ..
'
-test_expect_failure '#10: at root' '
+test_expect_success '#10: at root' '
cat >10/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/10.git
setup: worktree: $TRASH_DIRECTORY/10
test_repo 10 "$TRASH_DIRECTORY/10/.git"
'
-test_expect_failure '#10: in subdir' '
+test_expect_success '#10: in subdir' '
cat >10/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/10.git
setup: worktree: $TRASH_DIRECTORY/10/sub
test_repo 10/sub "$TRASH_DIRECTORY/10/.git"
'
-test_expect_failure '#10: relative GIT_DIR at root' '
+test_expect_success '#10: relative GIT_DIR at root' '
cat >10/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/10.git
setup: worktree: $TRASH_DIRECTORY/10
test_repo 10 .git
'
-test_expect_failure '#10: relative GIT_DIR in subdir' '
+test_expect_success '#10: relative GIT_DIR in subdir' '
cat >10/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/10.git
setup: worktree: $TRASH_DIRECTORY/10/sub
# #3 except that git_dir is set by .git file
test_expect_success '#11: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 11 11/sub 11/sub/sub 11.wt 11.wt/sub 11/wt 11/wt/sub &&
cd 11 &&
git init &&
cd ..
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11
test_repo 11 .git "$TRASH_DIRECTORY/11"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11
test_repo 11 .git .
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=root at root' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=root at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11
test_repo 11 "$TRASH_DIRECTORY/11/.git" "$TRASH_DIRECTORY/11"
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11
test_repo 11 "$TRASH_DIRECTORY/11/.git" .
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11
test_repo 11/sub/sub ../../.git "$TRASH_DIRECTORY/11"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11
test_repo 11/sub/sub ../../.git ../..
'
-test_expect_failure '#11: GIT_DIR, GIT_WORKTREE=root in subdir' '
+test_expect_success '#11: GIT_DIR, GIT_WORKTREE=root in subdir' '
cat >11/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11
test_repo 11/sub "$TRASH_DIRECTORY/11/.git" "$TRASH_DIRECTORY/11"
'
-test_expect_failure '#11: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
+test_expect_success '#11: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11
test_repo 11/sub/sub "$TRASH_DIRECTORY/11/.git" ../..
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11/wt
test_repo 11 .git "$TRASH_DIRECTORY/11/wt"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11/wt
test_repo 11 .git wt
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11/wt
test_repo 11 "$TRASH_DIRECTORY/11/.git" wt
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=wt at root' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=wt at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11/wt
test_repo 11 "$TRASH_DIRECTORY/11/.git" "$TRASH_DIRECTORY/11/wt"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11/wt
test_repo 11/sub/sub ../../.git "$TRASH_DIRECTORY/11/wt"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11/wt
test_repo 11/sub/sub ../../.git ../../wt
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11/wt
test_repo 11/sub/sub "$TRASH_DIRECTORY/11/.git" ../../wt
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY/11/wt
test_repo 11/sub/sub "$TRASH_DIRECTORY/11/.git" "$TRASH_DIRECTORY/11/wt"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY
test_repo 11 .git "$TRASH_DIRECTORY"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY
test_repo 11 .git ..
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY
test_repo 11 "$TRASH_DIRECTORY/11/.git" ..
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=.. at root' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=.. at root' '
cat >11/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY
test_repo 11 "$TRASH_DIRECTORY/11/.git" "$TRASH_DIRECTORY"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY
test_repo 11/sub/sub ../../.git "$TRASH_DIRECTORY"
'
-test_expect_failure '#11: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
+test_expect_success '#11: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY
test_repo 11/sub/sub ../../.git ../../..
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY
test_repo 11/sub/sub "$TRASH_DIRECTORY/11/.git" ../../../
'
-test_expect_failure '#11: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
+test_expect_success '#11: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
cat >11/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/11.git
setup: worktree: $TRASH_DIRECTORY
test_expect_success '#12: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 12 12/sub 12/sub/sub 12.wt 12.wt/sub 12/wt 12/wt/sub &&
cd 12 &&
git init &&
cd ..
'
-test_expect_failure '#12: at root' '
+test_expect_success '#12: at root' '
cat >12/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/12.git
setup: worktree: $TRASH_DIRECTORY/12
test_repo 12
'
-test_expect_failure '#12: in subdir' '
+test_expect_success '#12: in subdir' '
cat >12/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/12.git
setup: worktree: $TRASH_DIRECTORY/12
# #5 except that git_dir is set by .git file
test_expect_success '#13: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 13 13/sub 13/sub/sub 13.wt 13.wt/sub 13/wt 13/wt/sub &&
cd 13 &&
git init &&
cd ..
'
-test_expect_failure '#13: at root' '
+test_expect_success '#13: at root' '
cat >13/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/13.git
setup: worktree: $TRASH_DIRECTORY/13
test_repo 13
'
-test_expect_failure '#13: in subdir' '
+test_expect_success '#13: in subdir' '
cat >13/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/13.git
setup: worktree: $TRASH_DIRECTORY/13
# #6 except that git_dir is set by .git file
test_expect_success '#14: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 14 14/sub 14/sub/sub 14.wt 14.wt/sub 14/wt 14/wt/sub &&
cd 14 &&
git init &&
cd ..
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=../14 at root' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=../14 at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14
test_repo 14 .git
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=../14(rel) at root' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=../14(rel) at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14
test_repo 14 .git
'
-test_expect_failure '#14: GIT_DIR, core.worktree=../14 at root' '
+test_expect_success '#14: GIT_DIR, core.worktree=../14 at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14
test_repo 14 "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR, core.worktree=../14(rel) at root' '
+test_expect_success '#14: GIT_DIR, core.worktree=../14(rel) at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14
test_repo 14 "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=../14 in subdir' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=../14 in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14
test_repo 14/sub/sub ../../.git
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=../14(rel) in subdir' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=../14(rel) in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14
test_repo 14/sub/sub ../../.git
'
-test_expect_failure '#14: GIT_DIR, core.worktree=../14 in subdir' '
+test_expect_success '#14: GIT_DIR, core.worktree=../14 in subdir' '
cat >14/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14
test_repo 14/sub "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR, core.worktree=../14(rel) in subdir' '
+test_expect_success '#14: GIT_DIR, core.worktree=../14(rel) in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14
test_repo 14/sub/sub "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=../14/wt at root' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=../14/wt at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14/wt
test_repo 14 .git
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=../14/wt(rel) at root' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=../14/wt(rel) at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14/wt
test_repo 14 .git
'
-test_expect_failure '#14: GIT_DIR, core.worktree=../14/wt(rel) at root' '
+test_expect_success '#14: GIT_DIR, core.worktree=../14/wt(rel) at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14/wt
test_repo 14 "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR, core.worktree=../14/wt at root' '
+test_expect_success '#14: GIT_DIR, core.worktree=../14/wt at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14/wt
test_repo 14 "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=../14/wt in subdir' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=../14/wt in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14/wt
test_repo 14/sub/sub ../../.git
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=../14/wt(rel) in subdir' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=../14/wt(rel) in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14/wt
test_repo 14/sub/sub ../../.git
'
-test_expect_failure '#14: GIT_DIR, core.worktree=../14/wt(rel) in subdir' '
+test_expect_success '#14: GIT_DIR, core.worktree=../14/wt(rel) in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14/wt
test_repo 14/sub/sub "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR, core.worktree=../14/wt in subdir' '
+test_expect_success '#14: GIT_DIR, core.worktree=../14/wt in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY/14/wt
test_repo 14/sub/sub "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=.. at root' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=.. at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY
test_repo 14 .git
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=..(rel) at root' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=..(rel) at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY
test_repo 14 .git
'
-test_expect_failure '#14: GIT_DIR, core.worktree=..(rel) at root' '
+test_expect_success '#14: GIT_DIR, core.worktree=..(rel) at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY
test_repo 14 "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR, core.worktree=.. at root' '
+test_expect_success '#14: GIT_DIR, core.worktree=.. at root' '
cat >14/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY
test_repo 14 "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=.. in subdir' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=.. in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY
test_repo 14/sub/sub ../../.git
'
-test_expect_failure '#14: GIT_DIR(rel), core.worktree=..(rel) in subdir' '
+test_expect_success '#14: GIT_DIR(rel), core.worktree=..(rel) in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY
test_repo 14/sub/sub ../../.git
'
-test_expect_failure '#14: GIT_DIR, core.worktree=..(rel) in subdir' '
+test_expect_success '#14: GIT_DIR, core.worktree=..(rel) in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY
test_repo 14/sub/sub "$TRASH_DIRECTORY/14/.git"
'
-test_expect_failure '#14: GIT_DIR, core.worktree=.. in subdir' '
+test_expect_success '#14: GIT_DIR, core.worktree=.. in subdir' '
cat >14/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/14.git
setup: worktree: $TRASH_DIRECTORY
# #7 except that git_dir is set by .git file
test_expect_success '#15: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 15 15/sub 15/sub/sub 15.wt 15.wt/sub 15/wt 15/wt/sub &&
cd 15 &&
git init &&
cd ..
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15
test_repo 15 .git "$TRASH_DIRECTORY/15"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15
test_repo 15 .git .
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=root at root' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=root at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15
test_repo 15 "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY/15"
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15
test_repo 15 "$TRASH_DIRECTORY/15/.git" .
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15
test_repo 15/sub/sub ../../.git "$TRASH_DIRECTORY/15"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15
test_repo 15/sub/sub ../../.git ../..
'
-test_expect_failure '#15: GIT_DIR, GIT_WORKTREE=root in subdir' '
+test_expect_success '#15: GIT_DIR, GIT_WORKTREE=root in subdir' '
cat >15/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15
test_repo 15/sub "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY/15"
'
-test_expect_failure '#15: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
+test_expect_success '#15: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15
test_repo 15/sub/sub "$TRASH_DIRECTORY/15/.git" ../..
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15/wt
test_repo 15 .git "$TRASH_DIRECTORY/15/wt"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15/wt
test_repo 15 .git wt
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15/wt
test_repo 15 "$TRASH_DIRECTORY/15/.git" wt
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=wt at root' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=wt at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15/wt
test_repo 15 "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY/15/wt"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15/wt
test_repo 15/sub/sub ../../.git "$TRASH_DIRECTORY/15/wt"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15/wt
test_repo 15/sub/sub ../../.git ../../wt
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15/wt
test_repo 15/sub/sub "$TRASH_DIRECTORY/15/.git" ../../wt
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY/15/wt
test_repo 15/sub/sub "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY/15/wt"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY
test_repo 15 .git "$TRASH_DIRECTORY"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY
test_repo 15 .git ..
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY
test_repo 15 "$TRASH_DIRECTORY/15/.git" ..
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=.. at root' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=.. at root' '
cat >15/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY
test_repo 15 "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY
test_repo 15/sub/sub ../../.git "$TRASH_DIRECTORY"
'
-test_expect_failure '#15: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
+test_expect_success '#15: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY
test_repo 15/sub/sub ../../.git ../../..
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY
test_repo 15/sub/sub "$TRASH_DIRECTORY/15/.git" ../../../
'
-test_expect_failure '#15: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
+test_expect_success '#15: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
cat >15/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/15.git
setup: worktree: $TRASH_DIRECTORY
# - cwd can't be outside worktree
test_expect_success '#16.1: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 16 16/sub &&
cd 16 &&
git init &&
test_repo 16
'
-test_expect_failure '#16.2: in subdir' '
+test_expect_success '#16.2: in subdir' '
cat >16/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/16/.git
setup: worktree: (null)
# GIT_WORK_TREE is ignored -> #16.1 (with warnings perhaps)
test_expect_success '#17.1: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 17 17/sub &&
cd 17 &&
git init &&
cd ..
'
-test_expect_failure '#17.1: at .git' '
+test_expect_success '#17.1: at .git' '
cat >17/.git/expected <<EOF &&
setup: git_dir: .
setup: worktree: (null)
test_repo 17/.git
'
-test_expect_failure '#17.1: in .git/wt' '
+test_expect_success '#17.1: in .git/wt' '
cat >17/.git/wt/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/17/.git
setup: worktree: (null)
test_repo 17/.git/wt
'
-test_expect_failure '#17.1: in .git/wt/sub' '
+test_expect_success '#17.1: in .git/wt/sub' '
cat >17/.git/wt/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/17/.git
setup: worktree: (null)
git config --file="$TRASH_DIRECTORY/17/.git/config" core.bare true
'
-test_expect_failure '#17.2: at .git' '
+test_expect_success '#17.2: at .git' '
cat >17/.git/expected <<EOF &&
setup: git_dir: .
setup: worktree: (null)
test_repo 17/.git
'
-test_expect_failure '#17.2: in .git/wt' '
+test_expect_success '#17.2: in .git/wt' '
cat >17/.git/wt/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/17/.git
setup: worktree: (null)
test_repo 17/.git/wt
'
-test_expect_failure '#17.2: in .git/wt/sub' '
+test_expect_success '#17.2: in .git/wt/sub' '
cat >17/.git/wt/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/17/.git
setup: worktree: (null)
test_repo 17/.git/wt/sub
'
-test_expect_failure '#17.2: at root' '
+test_expect_success '#17.2: at root' '
cat >17/expected <<EOF &&
setup: git_dir: .git
setup: worktree: (null)
test_repo 17
'
-test_expect_failure '#17.2: in subdir' '
+test_expect_success '#17.2: in subdir' '
cat >17/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/17/.git
setup: worktree: (null)
# - cwd can't be outside worktree
test_expect_success '#18: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 18 18/sub &&
cd 18 &&
git init &&
# bare repo is overridden by GIT_WORK_TREE -> #3
test_expect_success '#19: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 19 19/sub 19/sub/sub 19.wt 19.wt/sub 19/wt 19/wt/sub &&
cd 19 &&
git init &&
# core.worktree is ignored -> #16.1
test_expect_success '#20.1: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 20 20/sub &&
cd 20 &&
git init &&
cd ..
'
-test_expect_failure '#20.1: at .git' '
+test_expect_success '#20.1: at .git' '
cat >20/.git/expected <<EOF &&
setup: git_dir: .
setup: worktree: (null)
test_repo 20/.git
'
-test_expect_failure '#20.1: in .git/wt' '
+test_expect_success '#20.1: in .git/wt' '
cat >20/.git/wt/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/20/.git
setup: worktree: (null)
test_repo 20/.git/wt
'
-test_expect_failure '#20.1: in .git/wt/sub' '
+test_expect_success '#20.1: in .git/wt/sub' '
cat >20/.git/wt/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/20/.git
setup: worktree: (null)
test_repo 20
'
-test_expect_failure '#20.2: in subdir' '
+test_expect_success '#20.2: in subdir' '
cat >20/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/20/.git
setup: worktree: (null)
# GIT_WORK_TREE/core.worktree are ignored -> #20.1
test_expect_success '#21.1: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 21 21/sub &&
cd 21 &&
git init &&
cd ..
'
-test_expect_failure '#21.1: at .git' '
+test_expect_success '#21.1: at .git' '
cat >21/.git/expected <<EOF &&
setup: git_dir: .
setup: worktree: (null)
test_repo 21/.git
'
-test_expect_failure '#21.1: in .git/wt' '
+test_expect_success '#21.1: in .git/wt' '
cat >21/.git/wt/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/21/.git
setup: worktree: (null)
test_repo 21/.git/wt
'
-test_expect_failure '#21.1: in .git/wt/sub' '
+test_expect_success '#21.1: in .git/wt/sub' '
cat >21/.git/wt/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/21/.git
setup: worktree: (null)
git config --file="$TRASH_DIRECTORY/21/.git/config" core.bare true
'
-test_expect_failure '#21.2: at .git' '
+test_expect_success '#21.2: at .git' '
cat >21/.git/expected <<EOF &&
setup: git_dir: .
setup: worktree: (null)
test_repo 21/.git
'
-test_expect_failure '#21.2: in .git/wt' '
+test_expect_success '#21.2: in .git/wt' '
cat >21/.git/wt/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/21/.git
setup: worktree: (null)
test_repo 21/.git/wt
'
-test_expect_failure '#21.2: in .git/wt/sub' '
+test_expect_success '#21.2: in .git/wt/sub' '
cat >21/.git/wt/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/21/.git
setup: worktree: (null)
test_repo 21/.git/wt/sub
'
-test_expect_failure '#21.2: at root' '
+test_expect_success '#21.2: at root' '
cat >21/expected <<EOF &&
setup: git_dir: .git
setup: worktree: (null)
test_repo 21
'
-test_expect_failure '#21.2: in subdir' '
+test_expect_success '#21.2: in subdir' '
cat >21/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/21/.git
setup: worktree: (null)
# - cwd can be outside worktree
test_expect_success '#22.1: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 22 &&
cd 22 &&
git init &&
test_repo 22/.git "$TRASH_DIRECTORY/22/.git"
'
-test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=. in .git/sub' '
+test_expect_success '#22.1: GIT_DIR(rel), core.worktree=. in .git/sub' '
cat >22/.git/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/22/.git
setup: worktree: $TRASH_DIRECTORY/22/.git
test_repo 22/.git/sub ..
'
-test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=.(rel) in .git/sub' '
+test_expect_success '#22.1: GIT_DIR(rel), core.worktree=.(rel) in .git/sub' '
cat >22/.git/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/22/.git
setup: worktree: $TRASH_DIRECTORY/22/.git
test_repo 22/.git/sub "$TRASH_DIRECTORY/22/.git"
'
-test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=.. at .git' '
+test_expect_success '#22.1: GIT_DIR(rel), core.worktree=.. at .git' '
cat >22/.git/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/22/.git
setup: worktree: $TRASH_DIRECTORY/22
test_repo 22/.git .
'
-test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=..(rel) at .git' '
+test_expect_success '#22.1: GIT_DIR(rel), core.worktree=..(rel) at .git' '
cat >22/.git/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/22/.git
setup: worktree: $TRASH_DIRECTORY/22
test_repo 22/.git "$TRASH_DIRECTORY/22/.git"
'
-test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=.. in .git/sub' '
+test_expect_success '#22.1: GIT_DIR(rel), core.worktree=.. in .git/sub' '
cat >22/.git/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/22/.git
setup: worktree: $TRASH_DIRECTORY/22
test_repo 22/.git/sub ..
'
-test_expect_failure '#22.1: GIT_DIR(rel), core.worktree=..(rel) in .git/sub' '
+test_expect_success '#22.1: GIT_DIR(rel), core.worktree=..(rel) in .git/sub' '
cat >22/.git/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/22/.git
setup: worktree: $TRASH_DIRECTORY/22
git config --file="$TRASH_DIRECTORY/22/.git/config" core.bare true
'
-test_expect_failure '#22.2: at .git' '
+test_expect_success '#22.2: at .git' '
(
cd 22/.git &&
GIT_DIR=. &&
)
'
-test_expect_failure '#22.2: at root' '
+test_expect_success '#22.2: at root' '
(
cd 22 &&
GIT_DIR=.git &&
# core.worktree is overridden by GIT_WORK_TREE -> #19
test_expect_success '#23: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 23 23/sub 23/sub/sub 23.wt 23.wt/sub 23/wt 23/wt/sub &&
cd 23 &&
git init &&
# #16.2 except git_dir is set according to .git file
test_expect_success '#24: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 24 24/sub &&
cd 24 &&
git init &&
# #17.2 except git_dir is set according to .git file
test_expect_success '#25: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 25 25/sub &&
cd 25 &&
git init &&
cd ..
'
-test_expect_failure '#25: at root' '
+test_expect_success '#25: at root' '
cat >25/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/25.git
setup: worktree: (null)
test_repo 25
'
-test_expect_failure '#25: in subdir' '
+test_expect_success '#25: in subdir' '
cat >25/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/25.git
setup: worktree: (null)
# #18 except git_dir is set according to .git file
test_expect_success '#26: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 26 26/sub &&
cd 26 &&
git init &&
cd ..
'
-test_expect_failure '#26: (rel) at root' '
+test_expect_success '#26: (rel) at root' '
cat >26/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/26.git
setup: worktree: (null)
test_repo 26 .git
'
-test_expect_failure '#26: at root' '
+test_expect_success '#26: at root' '
cat >26/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/26.git
setup: worktree: (null)
test_repo 26 "$TRASH_DIRECTORY/26/.git"
'
-test_expect_failure '#26: (rel) in subdir' '
+test_expect_success '#26: (rel) in subdir' '
cat >26/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/26.git
setup: worktree: (null)
test_repo 26/sub ../.git
'
-test_expect_failure '#26: in subdir' '
+test_expect_success '#26: in subdir' '
cat >26/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/26.git
setup: worktree: (null)
# #19 except git_dir is set according to .git file
test_expect_success '#27: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 27 27/sub 27/sub/sub 27.wt 27.wt/sub 27/wt 27/wt/sub &&
cd 27 &&
git init &&
cd ..
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27
test_repo 27 .git "$TRASH_DIRECTORY/27"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27
test_repo 27 .git .
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=root at root' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=root at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27
test_repo 27 "$TRASH_DIRECTORY/27/.git" "$TRASH_DIRECTORY/27"
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27
test_repo 27 "$TRASH_DIRECTORY/27/.git" .
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27
test_repo 27/sub/sub ../../.git "$TRASH_DIRECTORY/27"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27
test_repo 27/sub/sub ../../.git ../..
'
-test_expect_failure '#27: GIT_DIR, GIT_WORKTREE=root in subdir' '
+test_expect_success '#27: GIT_DIR, GIT_WORKTREE=root in subdir' '
cat >27/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27
test_repo 27/sub "$TRASH_DIRECTORY/27/.git" "$TRASH_DIRECTORY/27"
'
-test_expect_failure '#27: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
+test_expect_success '#27: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27
test_repo 27/sub/sub "$TRASH_DIRECTORY/27/.git" ../..
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27/wt
test_repo 27 .git "$TRASH_DIRECTORY/27/wt"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27/wt
test_repo 27 .git wt
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27/wt
test_repo 27 "$TRASH_DIRECTORY/27/.git" wt
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=wt at root' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=wt at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27/wt
test_repo 27 "$TRASH_DIRECTORY/27/.git" "$TRASH_DIRECTORY/27/wt"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27/wt
test_repo 27/sub/sub ../../.git "$TRASH_DIRECTORY/27/wt"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27/wt
test_repo 27/sub/sub ../../.git ../../wt
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27/wt
test_repo 27/sub/sub "$TRASH_DIRECTORY/27/.git" ../../wt
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY/27/wt
test_repo 27/sub/sub "$TRASH_DIRECTORY/27/.git" "$TRASH_DIRECTORY/27/wt"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY
test_repo 27 .git "$TRASH_DIRECTORY"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY
test_repo 27 .git ..
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY
test_repo 27 "$TRASH_DIRECTORY/27/.git" ..
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=.. at root' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=.. at root' '
cat >27/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY
test_repo 27 "$TRASH_DIRECTORY/27/.git" "$TRASH_DIRECTORY"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY
test_repo 27/sub/sub ../../.git "$TRASH_DIRECTORY"
'
-test_expect_failure '#27: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
+test_expect_success '#27: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY
test_repo 27/sub/sub ../../.git ../../..
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY
test_repo 27/sub/sub "$TRASH_DIRECTORY/27/.git" ../../../
'
-test_expect_failure '#27: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
+test_expect_success '#27: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
cat >27/sub/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/27.git
setup: worktree: $TRASH_DIRECTORY
# core.worktree is ignored -> #24
test_expect_success '#28: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 28 28/sub &&
cd 28 &&
git init &&
# GIT_WORK_TREE/core.worktree are ignored -> #28
test_expect_success '#29: setup' '
- unset GIT_DIR GIT_WORK_TREE &&
+ sane_unset GIT_DIR GIT_WORK_TREE &&
mkdir 29 29/sub &&
cd 29 &&
git init &&
cd ..
'
-test_expect_failure '#29: at root' '
+test_expect_success '#29: at root' '
cat >29/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/29.git
setup: worktree: (null)
test_repo 29
'
-test_expect_failure '#29: in subdir' '
+test_expect_success '#29: in subdir' '
cat >29/sub/expected <<EOF &&
setup: git_dir: $TRASH_DIRECTORY/29.git
setup: worktree: (null)
test_repo 29/sub
'
+#
+# case #30
+#
+############################################################
+#
+# Input:
+#
+# - GIT_WORK_TREE is not set
+# - GIT_DIR is set
+# - core.worktree is set
+# - .git is a file
+# - core.bare is set
+#
+# Output:
+#
+# core.worktree and core.bare conflict, won't fly.
+
+test_expect_success '#30: setup' '
+ sane_unset GIT_DIR GIT_WORK_TREE &&
+ mkdir 30 &&
+ cd 30 &&
+ git init &&
+ git config core.bare true &&
+ git config core.worktree non-existent &&
+ mv .git ../30.git &&
+ echo gitdir: ../30.git >.git &&
+ cd ..
+'
+
+test_expect_success '#30: at root' '
+ (
+ cd 30 &&
+ GIT_DIR=.git &&
+ export GIT_DIR &&
+ test_must_fail git symbolic-ref HEAD 2>result &&
+ grep "core.bare and core.worktree do not make sense" result
+ )
+'
+
+#
+# case #31
+#
+############################################################
+#
+# Input:
+#
+# - GIT_WORK_TREE is set
+# - GIT_DIR is set
+# - core.worktree is set
+# - .git is a file
+# - core.bare is set
+#
+# Output:
+#
+# #23 except git_dir is set according to .git file
+
+test_expect_success '#31: setup' '
+ sane_unset GIT_DIR GIT_WORK_TREE &&
+ mkdir 31 31/sub 31/sub/sub 31.wt 31.wt/sub 31/wt 31/wt/sub &&
+ cd 31 &&
+ git init &&
+ git config core.bare true &&
+ git config core.worktree non-existent &&
+ mv .git ../31.git &&
+ echo gitdir: ../31.git >.git &&
+ cd ..
+'
+
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=root at root' '
+ cat >31/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY/31
+setup: cwd: $TRASH_DIRECTORY/31
+setup: prefix: (null)
+EOF
+ test_repo 31 .git "$TRASH_DIRECTORY/31"
+'
+
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=root(rel) at root' '
+ cat >31/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY/31
+setup: cwd: $TRASH_DIRECTORY/31
+setup: prefix: (null)
+EOF
+ test_repo 31 .git .
+'
+
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=root at root' '
+ cat >31/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY/31
+setup: cwd: $TRASH_DIRECTORY/31
+setup: prefix: (null)
+EOF
+ test_repo 31 "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY/31"
+'
+
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=root(rel) at root' '
+ cat >31/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY/31
+setup: cwd: $TRASH_DIRECTORY/31
+setup: prefix: (null)
+EOF
+ test_repo 31 "$TRASH_DIRECTORY/31/.git" .
+'
+
+test_expect_success '#31: GIT_DIR(rel), GIT_WORKTREE=root in subdir' '
+ cat >31/sub/sub/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY/31
+setup: cwd: $TRASH_DIRECTORY/31
+setup: prefix: sub/sub/
+EOF
+ test_repo 31/sub/sub ../../.git "$TRASH_DIRECTORY/31"
+'
+
+test_expect_success '#31: GIT_DIR(rel), GIT_WORKTREE=root(rel) in subdir' '
+ cat >31/sub/sub/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY/31
+setup: cwd: $TRASH_DIRECTORY/31
+setup: prefix: sub/sub/
+EOF
+ test_repo 31/sub/sub ../../.git ../..
+'
+
+test_expect_success '#31: GIT_DIR, GIT_WORKTREE=root in subdir' '
+ cat >31/sub/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY/31
+setup: cwd: $TRASH_DIRECTORY/31
+setup: prefix: sub/
+EOF
+ test_repo 31/sub "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY/31"
+'
+
+test_expect_success '#31: GIT_DIR, GIT_WORKTREE=root(rel) in subdir' '
+ cat >31/sub/sub/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY/31
+setup: cwd: $TRASH_DIRECTORY/31
+setup: prefix: sub/sub/
+EOF
+ test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" ../..
+'
+
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
+ cat >31/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY/31/wt
+setup: cwd: $TRASH_DIRECTORY/31
+setup: prefix: (null)
+EOF
+ test_repo 31 .git "$TRASH_DIRECTORY/31/wt"
+'
+
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
+ cat >31/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY/31/wt
+setup: cwd: $TRASH_DIRECTORY/31
+setup: prefix: (null)
+EOF
+ test_repo 31 .git wt
+'
+
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
+ cat >31/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY/31/wt
+setup: cwd: $TRASH_DIRECTORY/31
+setup: prefix: (null)
+EOF
+ test_repo 31 "$TRASH_DIRECTORY/31/.git" wt
+'
+
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=wt at root' '
+ cat >31/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY/31/wt
+setup: cwd: $TRASH_DIRECTORY/31
+setup: prefix: (null)
+EOF
+ test_repo 31 "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY/31/wt"
+'
+
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
+ cat >31/sub/sub/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY/31/wt
+setup: cwd: $TRASH_DIRECTORY/31/sub/sub
+setup: prefix: (null)
+EOF
+ test_repo 31/sub/sub ../../.git "$TRASH_DIRECTORY/31/wt"
+'
+
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
+ cat >31/sub/sub/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY/31/wt
+setup: cwd: $TRASH_DIRECTORY/31/sub/sub
+setup: prefix: (null)
+EOF
+ test_repo 31/sub/sub ../../.git ../../wt
+'
+
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
+ cat >31/sub/sub/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY/31/wt
+setup: cwd: $TRASH_DIRECTORY/31/sub/sub
+setup: prefix: (null)
+EOF
+ test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" ../../wt
+'
+
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
+ cat >31/sub/sub/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY/31/wt
+setup: cwd: $TRASH_DIRECTORY/31/sub/sub
+setup: prefix: (null)
+EOF
+ test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY/31/wt"
+'
+
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
+ cat >31/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY
+setup: cwd: $TRASH_DIRECTORY
+setup: prefix: 31/
+EOF
+ test_repo 31 .git "$TRASH_DIRECTORY"
+'
+
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
+ cat >31/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY
+setup: cwd: $TRASH_DIRECTORY
+setup: prefix: 31/
+EOF
+ test_repo 31 .git ..
+'
+
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
+ cat >31/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY
+setup: cwd: $TRASH_DIRECTORY
+setup: prefix: 31/
+EOF
+ test_repo 31 "$TRASH_DIRECTORY/31/.git" ..
+'
+
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=.. at root' '
+ cat >31/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY
+setup: cwd: $TRASH_DIRECTORY
+setup: prefix: 31/
+EOF
+ test_repo 31 "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY"
+'
+
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
+ cat >31/sub/sub/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY
+setup: cwd: $TRASH_DIRECTORY
+setup: prefix: 31/sub/sub/
+EOF
+ test_repo 31/sub/sub ../../.git "$TRASH_DIRECTORY"
+'
+
+test_expect_success '#31: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
+ cat >31/sub/sub/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY
+setup: cwd: $TRASH_DIRECTORY
+setup: prefix: 31/sub/sub/
+EOF
+ test_repo 31/sub/sub ../../.git ../../..
+'
+
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
+ cat >31/sub/sub/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY
+setup: cwd: $TRASH_DIRECTORY
+setup: prefix: 31/sub/sub/
+EOF
+ test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" ../../../
+'
+
+test_expect_success '#31: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
+ cat >31/sub/sub/expected <<EOF &&
+setup: git_dir: $TRASH_DIRECTORY/31.git
+setup: worktree: $TRASH_DIRECTORY
+setup: cwd: $TRASH_DIRECTORY
+setup: prefix: 31/sub/sub/
+EOF
+ test_repo 31/sub/sub "$TRASH_DIRECTORY/31/.git" "$TRASH_DIRECTORY"
+'
+
test_done