diff options
author | Junio C Hamano <gitster@pobox.com> | 2023-06-23 21:21:16 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-06-23 21:21:16 +0300 |
commit | a813d9e23962ba5c922b486757d69ae582adea4d (patch) | |
tree | 5fad6f3479ca50338dde9d0e1a6d510ee1411de1 /t | |
parent | dcedba13b38978f56e5b703bfaff379a86d6e52f (diff) | |
parent | 8fac776f441c69af60825452a3b5d4adecd47ad9 (diff) |
Merge branch 'sl/worktree-sparse'
"git worktree" learned to work better with sparse index feature.
* sl/worktree-sparse:
worktree: integrate with sparse-index
Diffstat (limited to 't')
-rwxr-xr-x | t/perf/p2000-sparse-operations.sh | 1 | ||||
-rwxr-xr-x | t/t1092-sparse-checkout-compatibility.sh | 37 |
2 files changed, 38 insertions, 0 deletions
diff --git a/t/perf/p2000-sparse-operations.sh b/t/perf/p2000-sparse-operations.sh index 5a11910189..96ed3e1d69 100755 --- a/t/perf/p2000-sparse-operations.sh +++ b/t/perf/p2000-sparse-operations.sh @@ -133,5 +133,6 @@ test_perf_on_all git diff-files test_perf_on_all git diff-files -- $SPARSE_CONE/a test_perf_on_all git diff-tree HEAD test_perf_on_all git diff-tree HEAD -- $SPARSE_CONE/a +test_perf_on_all "git worktree add ../temp && git worktree remove ../temp" test_done diff --git a/t/t1092-sparse-checkout-compatibility.sh b/t/t1092-sparse-checkout-compatibility.sh index 0deeae3fc9..8a95adf4b5 100755 --- a/t/t1092-sparse-checkout-compatibility.sh +++ b/t/t1092-sparse-checkout-compatibility.sh @@ -2222,4 +2222,41 @@ test_expect_success 'sparse-index is not expanded: diff-tree' ' ensure_not_expanded diff-tree HEAD update-folder1 -- folder1/a ' +test_expect_success 'worktree' ' + init_repos && + + write_script edit-contents <<-\EOF && + echo text >>"$1" + EOF + + for repo in full-checkout sparse-checkout sparse-index + do + worktree=${repo}-wt && + git -C $repo worktree add ../$worktree && + + # Compare worktree content with "ls" + (cd $repo && ls) >worktree_contents && + (cd $worktree && ls) >new_worktree_contents && + test_cmp worktree_contents new_worktree_contents && + + # Compare index content with "ls-files --sparse" + git -C $repo ls-files --sparse >index_contents && + git -C $worktree ls-files --sparse >new_index_contents && + test_cmp index_contents new_index_contents && + + git -C $repo worktree remove ../$worktree || return 1 + done && + + test_all_match git worktree add .worktrees/hotfix && + run_on_all ../edit-contents .worktrees/hotfix/deep/a && + test_all_match test_must_fail git worktree remove .worktrees/hotfix +' + +test_expect_success 'worktree is not expanded' ' + init_repos && + + ensure_not_expanded worktree add .worktrees/hotfix && + ensure_not_expanded worktree remove .worktrees/hotfix +' + test_done |