If git sees a directory which contains only untracked and ignored
files, clean -d should not remove that directory. It was recently
discovered that this is *not* true of git clean -d, and it's possible
that this has never worked correctly; this test and its accompanying
patch series aims to fix that.

Signed-off-by: Samuel Lijin <sxli...@gmail.com>
---
 t/t7300-clean.sh | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh
index b89fd2a6a..c14c98e56 100755
--- a/t/t7300-clean.sh
+++ b/t/t7300-clean.sh
@@ -653,4 +653,15 @@ test_expect_success 'git clean -d respects pathspecs 
(pathspec is prefix of dir)
        test_path_is_dir foobar
 '
 
+test_expect_failure 'git clean -d skips untracked dirs containing ignored 
files' '
+       echo /foo/bar >.gitignore &&
+       rm -rf foo &&
+       mkdir foo &&
+       touch foo/bar foo/baz &&
+       git clean -df &&
+       test_path_is_dir foo &&
+       test_path_is_file foo/bar &&
+       test_path_is_missing foo/baz
+'
+
 test_done
-- 
2.12.2

Reply via email to