From: Junio C Hamano Date: Fri, 16 Oct 2015 21:32:57 +0000 (-0700) Subject: Merge branch 'es/worktree-add-cleanup' into maint X-Git-Tag: v2.6.2~2 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/71ae53526d019fb18a44df8cfab9dfbd215159cf?hp=0dd9e571e837d0f3567af7cb83f92034b4a18ee3 Merge branch 'es/worktree-add-cleanup' into maint A no-op code-health maintenance. * es/worktree-add-cleanup: t2026: rename worktree prune test --- diff --git a/t/t2026-prune-linked-checkouts.sh b/t/t2026-prune-linked-checkouts.sh deleted file mode 100755 index a0f1e3bb80..0000000000 --- a/t/t2026-prune-linked-checkouts.sh +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/sh - -test_description='prune $GIT_DIR/worktrees' - -. ./test-lib.sh - -test_expect_success initialize ' - git commit --allow-empty -m init -' - -test_expect_success 'worktree prune on normal repo' ' - git worktree prune && - test_must_fail git worktree prune abc -' - -test_expect_success 'prune files inside $GIT_DIR/worktrees' ' - mkdir .git/worktrees && - : >.git/worktrees/abc && - git worktree prune --verbose >actual && - cat >expect <.git/worktrees/def/def && - cat >expect <actual && - test_i18ncmp expect actual && - ! test -d .git/worktrees/def && - ! test -d .git/worktrees -' - -test_expect_success SANITY 'prune directories with unreadable gitdir' ' - mkdir -p .git/worktrees/def/abc && - : >.git/worktrees/def/def && - : >.git/worktrees/def/gitdir && - chmod u-r .git/worktrees/def/gitdir && - git worktree prune --verbose >actual && - test_i18ngrep "Removing worktrees/def: unable to read gitdir file" actual && - ! test -d .git/worktrees/def && - ! test -d .git/worktrees -' - -test_expect_success 'prune directories with invalid gitdir' ' - mkdir -p .git/worktrees/def/abc && - : >.git/worktrees/def/def && - : >.git/worktrees/def/gitdir && - git worktree prune --verbose >actual && - test_i18ngrep "Removing worktrees/def: invalid gitdir file" actual && - ! test -d .git/worktrees/def && - ! test -d .git/worktrees -' - -test_expect_success 'prune directories with gitdir pointing to nowhere' ' - mkdir -p .git/worktrees/def/abc && - : >.git/worktrees/def/def && - echo "$(pwd)"/nowhere >.git/worktrees/def/gitdir && - git worktree prune --verbose >actual && - test_i18ngrep "Removing worktrees/def: gitdir file points to non-existent location" actual && - ! test -d .git/worktrees/def && - ! test -d .git/worktrees -' - -test_expect_success 'not prune locked checkout' ' - test_when_finished rm -r .git/worktrees && - mkdir -p .git/worktrees/ghi && - : >.git/worktrees/ghi/locked && - git worktree prune && - test -d .git/worktrees/ghi -' - -test_expect_success 'not prune recent checkouts' ' - test_when_finished rm -r .git/worktrees && - mkdir zz && - mkdir -p .git/worktrees/jlm && - echo "$(pwd)"/zz >.git/worktrees/jlm/gitdir && - rmdir zz && - git worktree prune --verbose --expire=2.days.ago && - test -d .git/worktrees/jlm -' - -test_expect_success 'not prune proper checkouts' ' - test_when_finished rm -r .git/worktrees && - git worktree add --detach "$PWD/nop" master && - git worktree prune && - test -d .git/worktrees/nop -' - -test_done diff --git a/t/t2026-worktree-prune.sh b/t/t2026-worktree-prune.sh new file mode 100755 index 0000000000..a0f1e3bb80 --- /dev/null +++ b/t/t2026-worktree-prune.sh @@ -0,0 +1,96 @@ +#!/bin/sh + +test_description='prune $GIT_DIR/worktrees' + +. ./test-lib.sh + +test_expect_success initialize ' + git commit --allow-empty -m init +' + +test_expect_success 'worktree prune on normal repo' ' + git worktree prune && + test_must_fail git worktree prune abc +' + +test_expect_success 'prune files inside $GIT_DIR/worktrees' ' + mkdir .git/worktrees && + : >.git/worktrees/abc && + git worktree prune --verbose >actual && + cat >expect <.git/worktrees/def/def && + cat >expect <actual && + test_i18ncmp expect actual && + ! test -d .git/worktrees/def && + ! test -d .git/worktrees +' + +test_expect_success SANITY 'prune directories with unreadable gitdir' ' + mkdir -p .git/worktrees/def/abc && + : >.git/worktrees/def/def && + : >.git/worktrees/def/gitdir && + chmod u-r .git/worktrees/def/gitdir && + git worktree prune --verbose >actual && + test_i18ngrep "Removing worktrees/def: unable to read gitdir file" actual && + ! test -d .git/worktrees/def && + ! test -d .git/worktrees +' + +test_expect_success 'prune directories with invalid gitdir' ' + mkdir -p .git/worktrees/def/abc && + : >.git/worktrees/def/def && + : >.git/worktrees/def/gitdir && + git worktree prune --verbose >actual && + test_i18ngrep "Removing worktrees/def: invalid gitdir file" actual && + ! test -d .git/worktrees/def && + ! test -d .git/worktrees +' + +test_expect_success 'prune directories with gitdir pointing to nowhere' ' + mkdir -p .git/worktrees/def/abc && + : >.git/worktrees/def/def && + echo "$(pwd)"/nowhere >.git/worktrees/def/gitdir && + git worktree prune --verbose >actual && + test_i18ngrep "Removing worktrees/def: gitdir file points to non-existent location" actual && + ! test -d .git/worktrees/def && + ! test -d .git/worktrees +' + +test_expect_success 'not prune locked checkout' ' + test_when_finished rm -r .git/worktrees && + mkdir -p .git/worktrees/ghi && + : >.git/worktrees/ghi/locked && + git worktree prune && + test -d .git/worktrees/ghi +' + +test_expect_success 'not prune recent checkouts' ' + test_when_finished rm -r .git/worktrees && + mkdir zz && + mkdir -p .git/worktrees/jlm && + echo "$(pwd)"/zz >.git/worktrees/jlm/gitdir && + rmdir zz && + git worktree prune --verbose --expire=2.days.ago && + test -d .git/worktrees/jlm +' + +test_expect_success 'not prune proper checkouts' ' + test_when_finished rm -r .git/worktrees && + git worktree add --detach "$PWD/nop" master && + git worktree prune && + test -d .git/worktrees/nop +' + +test_done