You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.6 KiB
62 lines
1.6 KiB
#!/bin/sh |
|
|
|
test_description='test git worktree move, remove, lock and unlock' |
|
|
|
. ./test-lib.sh |
|
|
|
test_expect_success 'setup' ' |
|
test_commit init && |
|
git worktree add source && |
|
git worktree list --porcelain | grep "^worktree" >actual && |
|
cat <<-EOF >expected && |
|
worktree $(pwd) |
|
worktree $(pwd)/source |
|
EOF |
|
test_cmp expected actual |
|
' |
|
|
|
test_expect_success 'lock main worktree' ' |
|
test_must_fail git worktree lock . |
|
' |
|
|
|
test_expect_success 'lock linked worktree' ' |
|
git worktree lock --reason hahaha source && |
|
echo hahaha >expected && |
|
test_cmp expected .git/worktrees/source/locked |
|
' |
|
|
|
test_expect_success 'lock linked worktree from another worktree' ' |
|
rm .git/worktrees/source/locked && |
|
git worktree add elsewhere && |
|
git -C elsewhere worktree lock --reason hahaha ../source && |
|
echo hahaha >expected && |
|
test_cmp expected .git/worktrees/source/locked |
|
' |
|
|
|
test_expect_success 'lock worktree twice' ' |
|
test_must_fail git worktree lock source && |
|
echo hahaha >expected && |
|
test_cmp expected .git/worktrees/source/locked |
|
' |
|
|
|
test_expect_success 'lock worktree twice (from the locked worktree)' ' |
|
test_must_fail git -C source worktree lock . && |
|
echo hahaha >expected && |
|
test_cmp expected .git/worktrees/source/locked |
|
' |
|
|
|
test_expect_success 'unlock main worktree' ' |
|
test_must_fail git worktree unlock . |
|
' |
|
|
|
test_expect_success 'unlock linked worktree' ' |
|
git worktree unlock source && |
|
test_path_is_missing .git/worktrees/source/locked |
|
' |
|
|
|
test_expect_success 'unlock worktree twice' ' |
|
test_must_fail git worktree unlock source && |
|
test_path_is_missing .git/worktrees/source/locked |
|
' |
|
|
|
test_done
|
|
|