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

[PATCH 10/10] Additional tests to capture worktree special cases

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Mar 2, 2008, 10:35 UTC
Message-ID
<20080302103543.GA9028@laptop>
In-Reply-To
<cover.1204453703.git.pclouds@gmail.com>

Most of them are for setup_git_directory_gently() commands as those are likely to break.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 t/t1501-worktree.sh |   57 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 55 insertions(+), 2 deletions(-)
diff --git a/t/t1501-worktree.sh b/t/t1501-worktree.sh
index 7ee3820..a53c1f5 100755
--- a/t/t1501-worktree.sh
+++ b/t/t1501-worktree.sh
@@ -47,7 +47,19 @@ export GIT_CONFIG="$(pwd)"/$GIT_DIR/config
 test_rev_parse 'subdirectory' false false true sub/dir/
 cd ../../.. || exit 1
 
-say "core.worktree = absolute path"
+say "core.worktree = absolute path with GIT_DIR unset"
+mkdir -p $(pwd)/repo.git/work/sub/dir || exit 1
+unset GIT_DIR
+export GIT_CONFIG=$(pwd)/repo.git/config
+git config core.worktree "$(pwd)/repo.git/work"
+test_rev_parse 'outside'      false false false
+cd repo.git/work || exit 1
+test_rev_parse 'inside'       false true true ''
+cd sub/dir || exit 1
+test_rev_parse 'subdirectory' false true true sub/dir/
+cd ../../../.. || exit 1
+
+say "core.worktree = absolute path with GIT_DIR set"
 export GIT_DIR=$(pwd)/repo.git
 export GIT_CONFIG=$GIT_DIR/config
 git config core.worktree "$(pwd)/work"
@@ -58,6 +70,47 @@ cd sub/dir || exit 1
 test_rev_parse 'subdirectory' false false true sub/dir/
 cd ../../.. || exit 1
 
+test_expect_success '"git ls-files -o" gets correct prefix' '
+	(cd work/sub && touch untracked &&
+	test "$(git ls-files -o)" = untracked)'
+
+rm work/sub/untracked || exit 1
+
+cat <<EOF >expected
+:100644 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0000000000000000000000000000000000000000 M	sub/tracked
+EOF
+
+cat <<EOF >expected2
+:100644 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0000000000000000000000000000000000000000 M	tracked
+EOF
+
+test_expect_success '"git diff-files" gets correct prefix' '
+	(cd work/sub  && touch tracked &&
+	git add tracked && echo modified > tracked &&
+	git diff-files > ../../result &&
+	git diff-files --relative > ../../result2 &&
+	git rm -f tracked) &&
+	cmp result expected &&
+	cmp result2 expected2'
+
+cat <<EOF >expected
+:100644 100644 e69de29... 0000000... M	sub/tracked
+EOF
+
+cat <<EOF >expected2
+:100644 100644 e69de29... 0000000... M	tracked
+EOF
+
+
+test_expect_success '"git diff" gets correct prefix' '
+	(cd work/sub  && touch tracked &&
+	git add tracked && echo modified > tracked &&
+	git diff --raw > ../../result &&
+	git diff --raw --relative > ../../result2 &&
+	git rm -f tracked) &&
+	cmp result expected &&
+	cmp result2 expected2'
+
 say "GIT_WORK_TREE=relative path (override core.worktree)"
 export GIT_DIR=$(pwd)/repo.git
 export GIT_CONFIG=$GIT_DIR/config
@@ -103,7 +156,7 @@ test_expect_success 'repo finds its work tree from work tree, too' '
 	 test sub/dir/tracked = "$(git ls-files)")
 '
 
-test_expect_success '_gently() groks relative GIT_DIR & GIT_WORK_TREE' '
+test_expect_success '"git diff" setup worktree properly' '
 	cd repo.git/work/sub/dir &&
 	GIT_DIR=../../.. GIT_WORK_TREE=../.. GIT_PAGER= \
 		git diff --exit-code tracked &&
-- 
1.5.4.2.281.g28d0e
Previous: Nguyễn Thái Ngọc Duy
Message 32 of 32 in “"git read-tree -m" and the like require worktree”
  1. 01/10 "git read-tree -m" and the like require worktreeNguyễn Thái Ngọc Duy, Mar 2, 2008
  2. Johannes SchindelinMar 11, 2008
  3. Nguyen Thai Ngoc DuyMar 11, 2008
  4. Johannes SchindelinMar 11, 2008
  5. Nguyen Thai Ngoc DuyMar 11, 2008
  6. 02/10 Make sure setup_git_directory is called before accessing repositoryNguyễn Thái Ngọc Duy, Mar 2, 2008
  7. 03/10 Make get_git_dir() and 'git rev-parse --git-dir' absolute pathNguyễn Thái Ngọc Duy, Mar 2, 2008
  8. Johannes SchindelinMar 11, 2008
  9. Nguyen Thai Ngoc DuyMar 11, 2008
  10. Johannes SchindelinMar 11, 2008
  11. Nguyen Thai Ngoc DuyMar 11, 2008
  12. Johannes SchindelinMar 11, 2008
  13. 04/10 Make setup_work_tree() return new prefixNguyễn Thái Ngọc Duy, Mar 2, 2008
  14. Johannes SchindelinMar 11, 2008
  15. Nguyen Thai Ngoc DuyMar 11, 2008
  16. 05/10 http-push: Avoid calling setup_git_directory() twiceNguyễn Thái Ngọc Duy, Mar 2, 2008
  17. Johannes SchindelinMar 11, 2008
  18. Nguyen Thai Ngoc DuyMar 11, 2008
  19. Johannes SchindelinMar 11, 2008
  20. Nguyen Thai Ngoc DuyMar 11, 2008
  21. 06/10 Completely move out worktree setup from setup_git_directory_gently()Nguyễn Thái Ngọc Duy, Mar 2, 2008
  22. Johannes SchindelinMar 11, 2008
  23. Nguyen Thai Ngoc DuyMar 11, 2008
  24. Johannes SchindelinMar 11, 2008
  25. 07/10 builtin-archive: mark unused prefix "unused_prefix"Nguyễn Thái Ngọc Duy, Mar 2, 2008
  26. Johannes SchindelinMar 11, 2008
  27. Nguyen Thai Ngoc DuyMar 11, 2008
  28. Jay SoffianMar 11, 2008
  29. Nguyen Thai Ngoc DuyMar 11, 2008
  30. 08/10 Make setup_git_directory() auto-setup worktree if foundNguyễn Thái Ngọc Duy, Mar 2, 2008
  31. 09/10 Documentation: update api-builtin and api-setupNguyễn Thái Ngọc Duy, Mar 2, 2008
  32. 10/10 Additional tests to capture worktree special casesNguyễn Thái Ngọc Duy, Mar 2, 2008

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.