aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCaleb White <cdwhite3@pm.me>2024-10-07 22:12:32 -0500
committerJunio C Hamano <gitster@pobox.com>2024-10-08 11:49:22 -0700
commit08830ac00f2e6173d5248744bd6f0b785189dffe (patch)
tree71ca7f2d1c763df4c08850e49c13244b587bbaaf
parent717af916cd69d2565aa2a7b7d73d895aa92ff392 (diff)
downloadgit-08830ac00f2e6173d5248744bd6f0b785189dffe.tar.gz
worktree: add test for path handling in linked worktrees
A failure scenario reported in an earlier patch series[1] that several `git worktree` subcommands failed or misbehaved when invoked from within linked worktrees that used relative paths. This adds a test that executes a `worktree prune` command inside both an internally and an externally linked worktree and asserts that the other worktree was not pruned. [1]: https://lore.kernel.org/git/CAPig+cQXFy=xPVpoSq6Wq0pxMRCjS=WbkgdO+3LySPX=q0nPCw@mail.gmail.com/ Reported-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Caleb White <cdwhite3@pm.me> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xt/t2401-worktree-prune.sh19
1 files changed, 19 insertions, 0 deletions
diff --git a/t/t2401-worktree-prune.sh b/t/t2401-worktree-prune.sh
index 71aa9bcd62..976d048e3e 100755
--- a/t/t2401-worktree-prune.sh
+++ b/t/t2401-worktree-prune.sh
@@ -120,4 +120,23 @@ test_expect_success 'prune duplicate (main/linked)' '
! test -d .git/worktrees/wt
'
+test_expect_success 'not prune proper worktrees when run inside linked worktree' '
+ test_when_finished rm -rf repo wt_ext &&
+ git init repo &&
+ (
+ cd repo &&
+ echo content >file &&
+ git add file &&
+ git commit -m msg &&
+ git worktree add ../wt_ext &&
+ git worktree add wt_int &&
+ cd wt_int &&
+ git worktree prune -v >out &&
+ test_must_be_empty out &&
+ cd ../../wt_ext &&
+ git worktree prune -v >out &&
+ test_must_be_empty out
+ )
+'
+
test_done