Signed-off-by: Erik Elfström <erik.elfstrom@xxxxxxxxx> --- 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html