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 | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh
index b89fd2a6a..252c75b40 100755
--- a/t/t7300-clean.sh
+++ b/t/t7300-clean.sh
@@ -653,4 +653,14 @@ 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 -p foo &&
+       touch foo/bar &&
+       git clean -df &&
+       test_path_is_file foo/bar &&
+       test_path_is_dir foo
+'
+
 test_done
-- 
2.12.2

Reply via email to