From: Erik Elfström Date: Sat, 11 Apr 2015 16:43:05 GMT Subject: [PATCH v2 1/3] t7300: add tests to document behavior of clean and nested git Message-ID: <1428770587-9674-3-git-send-email-erik.elfstrom@gmail.com> In-Reply-To: <1428770587-9674-1-git-send-email-erik.elfstrom@gmail.com> Signed-off-by: Erik Elfström --- t/t7300-clean.sh | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh index 99be5d9..58e6b4a 100755 --- a/t/t7300-clean.sh +++ b/t/t7300-clean.sh @@ -455,6 +455,78 @@ test_expect_success 'nested git work tree' ' ! test -d bar ' +test_expect_failure 'nested git (only init) should be kept' ' + rm -fr foo bar && + git init foo && + mkdir bar && + >bar/goodbye.people && + git clean -f -d && + test_path_is_file foo/.git/HEAD && + test_path_is_missing bar +' + +test_expect_failure 'nested git (bare) should be kept' ' + rm -fr foo bar && + git init --bare foo && + mkdir bar && + >bar/goodbye.people && + git clean -f -d && + test_path_is_file foo/HEAD && + test_path_is_missing bar +' + +test_expect_success 'giving path in nested git work tree will remove it' ' + rm -fr foo && + mkdir foo && + ( + cd foo && + git init && + mkdir -p bar/baz && + ( + cd bar/baz && + >hello.world && + git add . && + git commit -a -m nested + ) + ) && + git clean -f -d foo/bar/baz && + test_path_is_file foo/.git/HEAD && + test_path_is_dir foo/bar/ && + test_path_is_missing foo/bar/baz +' + +test_expect_success 'giving path to nested .git will not remove it' ' + rm -fr foo && + mkdir foo bar && + ( + cd foo && + git init && + >hello.world && + git add . && + git commit -a -m nested + ) && + git clean -f -d foo/.git && + test_path_is_file foo/.git/HEAD && + test_path_is_dir foo/.git/refs && + test_path_is_dir foo/.git/objects && + test_path_is_dir bar/ +' + +test_expect_success 'giving path to nested .git/ will remove contents' ' + rm -fr foo bar && + mkdir foo bar && + ( + cd foo && + git init && + >hello.world && + git add . && + git commit -a -m nested + ) && + git clean -f -d foo/.git/ && + test_path_is_dir foo/.git && + test_dir_is_empty foo/.git +' + test_expect_success 'force removal of nested git work tree' ' rm -fr foo bar baz && mkdir -p foo bar baz/boo && -- 2.4.0.rc0.37.ga3b75b3