[PATCH v2 1/3] t7300: add tests to document behavior of clean and nested git
From: Erik Elfström <hidden>
Date: 2016-06-15 23:04:24
Subsystem:
the rest · Maintainer:
Linus Torvalds
Signed-off-by: Erik Elfström <redacted> --- 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