git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[WIP PATCH 10/18] t1510: setup case #7

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Oct 24, 2010, 12:11 UTC
Message-ID
<1287922310-14678-11-git-send-email-pclouds@gmail.com>
In-Reply-To
<1287922310-14678-1-git-send-email-pclouds@gmail.com>
---
 t/t1510-repo-setup.sh |  261 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 261 insertions(+), 0 deletions(-)
diff --git a/t/t1510-repo-setup.sh b/t/t1510-repo-setup.sh
index 7e902b0..2f36bfe 100755
--- a/t/t1510-repo-setup.sh
+++ b/t/t1510-repo-setup.sh
@@ -1002,4 +1002,265 @@ EOF
 	GIT_DIR="$TRASH_DIRECTORY/6/.git" test_repo 6/sub/sub
 '
 
+#
+# case #7
+#
+############################################################
+#
+# Input:
+#
+#  - GIT_WORK_TREE is set
+#  - GIT_DIR is set
+#  - core.worktree is set
+#  - .git is a directory
+#  - core.bare is not set, cwd is outside .git
+#
+# Output:
+#
+# core.worktree is overridden by GIT_WORK_TREE, so this is the same as
+# case #3.
+#
+#  - worktree is at $GIT_WORK_TREE
+#  - cwd is at worktree root
+#  - prefix is calculated
+#  - git_dir is at $GIT_DIR
+#  - cwd can be outside worktree
+
+test_expect_success '#7: setup' '
+	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 &&
+	git config core.worktree non-existent &&
+	cd ..
+'
+
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE at root' '
+	cat >7/expected <<EOF &&
+.git
+$TRASH_DIRECTORY/7
+$TRASH_DIRECTORY/7
+EOF
+	GIT_DIR=.git GIT_WORK_TREE="$TRASH_DIRECTORY/7" test_repo 7
+'
+
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE(rel) at root' '
+	cat >7/expected <<EOF &&
+.git
+$TRASH_DIRECTORY/7
+$TRASH_DIRECTORY/7
+EOF
+	GIT_DIR=.git GIT_WORK_TREE=. test_repo 7
+'
+
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE at root' '
+	cat >7/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY/7
+$TRASH_DIRECTORY/7
+EOF
+	GIT_DIR="$TRASH_DIRECTORY/7/.git" GIT_WORK_TREE="$TRASH_DIRECTORY/7" test_repo 7
+'
+
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE(rel) at root' '
+	cat >7/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY/7
+$TRASH_DIRECTORY/7
+EOF
+	GIT_DIR="$TRASH_DIRECTORY/7/.git" GIT_WORK_TREE=. test_repo 7
+'
+
+test_expect_success '#7: GIT_DIR(rel), GIT_WORKTREE in subdir' '
+	cat >7/sub/sub/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY/7
+$TRASH_DIRECTORY/7
+sub/sub/
+EOF
+	GIT_DIR=../../.git GIT_WORK_TREE="$TRASH_DIRECTORY/7" test_repo 7/sub/sub
+'
+
+test_expect_success '#7: GIT_DIR(rel), GIT_WORKTREE(rel) in subdir' '
+	cat >7/sub/sub/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY/7
+$TRASH_DIRECTORY/7
+sub/sub/
+EOF
+	GIT_DIR=../../.git GIT_WORK_TREE=../.. test_repo 7/sub/sub
+'
+
+test_expect_success '#7: GIT_DIR, GIT_WORKTREE in subdir' '
+	cat >7/sub/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY/7
+$TRASH_DIRECTORY/7
+sub/
+EOF
+	GIT_DIR="$TRASH_DIRECTORY/7/.git" GIT_WORK_TREE="$TRASH_DIRECTORY/7" test_repo 7/sub
+'
+
+test_expect_success '#7: GIT_DIR, GIT_WORKTREE(rel) in subdir' '
+	cat >7/sub/sub/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY/7
+$TRASH_DIRECTORY/7
+sub/sub/
+EOF
+	GIT_DIR="$TRASH_DIRECTORY/7/.git" GIT_WORK_TREE=../.. test_repo 7/sub/sub
+'
+
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=wt at root' '
+	cat >7/expected <<EOF &&
+.git
+$TRASH_DIRECTORY/7/wt
+$TRASH_DIRECTORY/7
+EOF
+	GIT_DIR=.git GIT_WORK_TREE="$TRASH_DIRECTORY/7/wt" test_repo 7
+'
+
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) at root' '
+	cat >7/expected <<EOF &&
+.git
+$TRASH_DIRECTORY/7/wt
+$TRASH_DIRECTORY/7
+EOF
+	GIT_DIR=.git GIT_WORK_TREE=wt test_repo 7
+'
+
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=wt(rel) at root' '
+	cat >7/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY/7/wt
+$TRASH_DIRECTORY/7
+EOF
+	GIT_DIR="$TRASH_DIRECTORY/7/.git" GIT_WORK_TREE=wt test_repo 7
+'
+
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=wt at root' '
+	cat >7/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY/7/wt
+$TRASH_DIRECTORY/7
+EOF
+	GIT_DIR="$TRASH_DIRECTORY/7/.git" GIT_WORK_TREE="$TRASH_DIRECTORY/7/wt" test_repo 7
+'
+
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=wt in subdir' '
+	cat >7/sub/sub/expected <<EOF &&
+../../.git
+$TRASH_DIRECTORY/7/wt
+$TRASH_DIRECTORY/7/sub/sub
+EOF
+	GIT_DIR=../../.git GIT_WORK_TREE="$TRASH_DIRECTORY/7/wt" test_repo 7/sub/sub
+'
+
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=wt(rel) in subdir' '
+	cat >7/sub/sub/expected <<EOF &&
+../../.git
+$TRASH_DIRECTORY/7/wt
+$TRASH_DIRECTORY/7/sub/sub
+EOF
+	GIT_DIR=../../.git GIT_WORK_TREE=../../wt test_repo 7/sub/sub
+'
+
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=wt(rel) in subdir' '
+	cat >7/sub/sub/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY/7/wt
+$TRASH_DIRECTORY/7/sub/sub
+EOF
+	GIT_DIR="$TRASH_DIRECTORY/7/.git" GIT_WORK_TREE=../../wt test_repo 7/sub/sub
+'
+
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=wt in subdir' '
+	cat >7/sub/sub/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY/7/wt
+$TRASH_DIRECTORY/7/sub/sub
+EOF
+	GIT_DIR="$TRASH_DIRECTORY/7/.git" GIT_WORK_TREE="$TRASH_DIRECTORY/7/wt" test_repo 7/sub/sub
+'
+
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=.. at root' '
+	cat >7/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY
+$TRASH_DIRECTORY
+7/
+EOF
+	GIT_DIR=.git GIT_WORK_TREE="$TRASH_DIRECTORY" test_repo 7
+'
+
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=..(rel) at root' '
+	cat >7/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY
+$TRASH_DIRECTORY
+7/
+EOF
+	GIT_DIR=.git GIT_WORK_TREE=.. test_repo 7
+'
+
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=..(rel) at root' '
+	cat >7/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY
+$TRASH_DIRECTORY
+7/
+EOF
+	GIT_DIR="$TRASH_DIRECTORY/7/.git" GIT_WORK_TREE=.. test_repo 7
+'
+
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=.. at root' '
+	cat >7/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY
+$TRASH_DIRECTORY
+7/
+EOF
+	GIT_DIR="$TRASH_DIRECTORY/7/.git" GIT_WORK_TREE="$TRASH_DIRECTORY" test_repo 7
+'
+
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=.. in subdir' '
+	cat >7/sub/sub/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY
+$TRASH_DIRECTORY
+7/sub/sub/
+EOF
+	GIT_DIR=../../.git GIT_WORK_TREE="$TRASH_DIRECTORY" test_repo 7/sub/sub
+'
+
+test_expect_success '#7: GIT_DIR(rel), GIT_WORK_TREE=..(rel) in subdir' '
+	cat >7/sub/sub/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY
+$TRASH_DIRECTORY
+7/sub/sub/
+EOF
+	GIT_DIR=../../.git GIT_WORK_TREE=../../.. test_repo 7/sub/sub
+'
+
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=..(rel) in subdir' '
+	cat >7/sub/sub/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY
+$TRASH_DIRECTORY
+7/sub/sub/
+EOF
+	GIT_DIR="$TRASH_DIRECTORY/7/.git" GIT_WORK_TREE=../../../ test_repo 7/sub/sub
+'
+
+test_expect_success '#7: GIT_DIR, GIT_WORK_TREE=.. in subdir' '
+	cat >7/sub/sub/expected <<EOF &&
+$TRASH_DIRECTORY/7/.git
+$TRASH_DIRECTORY
+$TRASH_DIRECTORY
+7/sub/sub/
+EOF
+	GIT_DIR="$TRASH_DIRECTORY/7/.git" GIT_WORK_TREE="$TRASH_DIRECTORY" test_repo 7/sub/sub
+'
+
 test_done
-- 
1.7.0.2.445.gcbdb3
Previous: Nguyễn Thái Ngọc DuyNext: Nguyễn Thái Ngọc Duy
Message 15 of 23 in “setup tests”
  1. 00/18 setup testsNguyễn Thái Ngọc Duy, Oct 24, 2010
  2. 01/18 rev-parse: add --internal-cwd and --internal-git-dir for testsNguyễn Thái Ngọc Duy, Oct 24, 2010
  3. Jonathan NiederOct 24, 2010
  4. Nguyen Thai Ngoc DuyOct 25, 2010
  5. Jakub NarebskiOct 25, 2010
  6. Nguyen Thai Ngoc DuyOct 25, 2010
  7. 02/18 Add t1510 for setup testsNguyễn Thái Ngọc Duy, Oct 24, 2010
  8. 03/18 t1510: setup case #0Nguyễn Thái Ngọc Duy, Oct 24, 2010
  9. 04/18 t1510: setup case #1Nguyễn Thái Ngọc Duy, Oct 24, 2010
  10. 05/18 t1510: setup case #2Nguyễn Thái Ngọc Duy, Oct 24, 2010
  11. 06/18 t1510: setup case #3Nguyễn Thái Ngọc Duy, Oct 24, 2010
  12. 07/18 t1510: setup case #4Nguyễn Thái Ngọc Duy, Oct 24, 2010
  13. 08/18 t1510: setup case #5Nguyễn Thái Ngọc Duy, Oct 24, 2010
  14. 09/18 t1510: setup case #6Nguyễn Thái Ngọc Duy, Oct 24, 2010
  15. 10/18 t1510: setup case #7Nguyễn Thái Ngọc Duy, Oct 24, 2010
  16. 11/18 t1510: setup case #8Nguyễn Thái Ngọc Duy, Oct 24, 2010
  17. 12/18 t1510: setup case #9Nguyễn Thái Ngọc Duy, Oct 24, 2010
  18. 13/18 t1510: setup case #10Nguyễn Thái Ngọc Duy, Oct 24, 2010
  19. 14/18 t1510: setup case #11Nguyễn Thái Ngọc Duy, Oct 24, 2010
  20. 15/18 t1510: setup case #12Nguyễn Thái Ngọc Duy, Oct 24, 2010
  21. 16/18 t1510: setup case #13Nguyễn Thái Ngọc Duy, Oct 24, 2010
  22. 17/18 t1510: setup case #14Nguyễn Thái Ngọc Duy, Oct 24, 2010
  23. 18/18 t1510: setup case #15Nguyễn Thái Ngọc Duy, Oct 24, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.