Re: [PATCH 1/3] t7300: add tests to document behavior of clean and nested git
On Mon, Apr 6, 2015 at 7:48 AM, Erik Elfström erik.elfst...@gmail.com wrote: Signed-off-by: Erik Elfström erik.elfst...@gmail.com --- diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh index 99be5d9..cfdf6d4 100755 --- a/t/t7300-clean.sh +++ b/t/t7300-clean.sh @@ -455,6 +455,88 @@ test_expect_success 'nested git work tree' ' +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 In my earlier review, I utterly forgot to mention the broken -chain here and throughout the patch. + git add . + git commit -a -m nested + ) + git clean -f -d foo/bar/baz + test -f foo/.git/HEAD + test -d foo/bar/ + ! test -d foo/bar/baz +' -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/3] t7300: add tests to document behavior of clean and nested git
On 2015-04-07 21.40, Eric Sunshine wrote: On Mon, Apr 6, 2015 at 7:48 AM, Erik Elfström erik.elfst...@gmail.com wrote: Signed-off-by: Erik Elfström erik.elfst...@gmail.com --- diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh index 99be5d9..cfdf6d4 100755 --- a/t/t7300-clean.sh +++ b/t/t7300-clean.sh @@ -455,6 +455,88 @@ test_expect_success 'nested git work tree' ' +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 In my earlier review, I utterly forgot to mention the broken -chain here and throughout the patch. + git add . + git commit -a -m nested + ) Beside that, all cd commands should be done within an own sub-shell. In other words, something like this: mkdir -p bar/baz ( cd bar/baz hello.world git add . git commit -a -m nested ) Side note: Needed to drop Eric: An error occurred while sending mail. The mail server responded: Requested action not taken: mailbox unavailable invalid DNS MX or A/ resource record. Please check the message recipient sunsh...@sunshineco.com and try again. -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/3] t7300: add tests to document behavior of clean and nested git
will fix! On Tue, Apr 7, 2015 at 12:06 AM, Eric Sunshine sunsh...@sunshineco.com wrote: On Mon, Apr 6, 2015 at 7:48 AM, Erik Elfström erik.elfst...@gmail.com wrote: Signed-off-by: Erik Elfström erik.elfst...@gmail.com --- diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh index 99be5d9..cfdf6d4 100755 --- a/t/t7300-clean.sh +++ b/t/t7300-clean.sh @@ -455,6 +455,88 @@ test_expect_success 'nested git work tree' ' ! test -d bar ' +test_expect_failure 'nested git (only init) should be kept' ' + rm -fr foo bar + mkdir foo bar + ( + cd foo + git init + ) + ( + cd bar + goodbye.people + ) (minor; ignore if desired) The above could be simplified to: rm -fr foo bar git init foo mkdir bar bar/goodbye.people + git clean -f -d + test -f foo/.git/HEAD + ! test -d bar Here and elsewhere, you could instead use test_path_is_file() and test_path_is_missing(), respectively. +' + +test_expect_failure 'nested git (bare) should be kept' ' + rm -fr foo bar + mkdir foo bar + ( + cd foo + git init --bare + ) + ( + cd bar + goodbye.people + ) Simplified: rm -fr foo bar git init --bare foo mkdir bar bar/goodbye.people + git clean -f -d + test -f foo/HEAD + ! test -d 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 -f foo/.git/HEAD + test -d foo/bar/ Alternative, here and elsewhere: test_path_is_dir() + ! test -d 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 -f foo/.git/HEAD + test -d foo/.git/refs + test -d foo/.git/objects + test -d 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 0 = $(ls -A foo/.git | wc -l) Although in the latest POSIX, -A may not be portable. Alternative: test_dir_is_empty() + test -d 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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/3] t7300: add tests to document behavior of clean and nested git
On Mon, Apr 6, 2015 at 7:48 AM, Erik Elfström erik.elfst...@gmail.com wrote: Signed-off-by: Erik Elfström erik.elfst...@gmail.com --- diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh index 99be5d9..cfdf6d4 100755 --- a/t/t7300-clean.sh +++ b/t/t7300-clean.sh @@ -455,6 +455,88 @@ test_expect_success 'nested git work tree' ' ! test -d bar ' +test_expect_failure 'nested git (only init) should be kept' ' + rm -fr foo bar + mkdir foo bar + ( + cd foo + git init + ) + ( + cd bar + goodbye.people + ) (minor; ignore if desired) The above could be simplified to: rm -fr foo bar git init foo mkdir bar bar/goodbye.people + git clean -f -d + test -f foo/.git/HEAD + ! test -d bar Here and elsewhere, you could instead use test_path_is_file() and test_path_is_missing(), respectively. +' + +test_expect_failure 'nested git (bare) should be kept' ' + rm -fr foo bar + mkdir foo bar + ( + cd foo + git init --bare + ) + ( + cd bar + goodbye.people + ) Simplified: rm -fr foo bar git init --bare foo mkdir bar bar/goodbye.people + git clean -f -d + test -f foo/HEAD + ! test -d 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 -f foo/.git/HEAD + test -d foo/bar/ Alternative, here and elsewhere: test_path_is_dir() + ! test -d 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 -f foo/.git/HEAD + test -d foo/.git/refs + test -d foo/.git/objects + test -d 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 0 = $(ls -A foo/.git | wc -l) Although in the latest POSIX, -A may not be portable. Alternative: test_dir_is_empty() + test -d 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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html