t7300: clean -d should skip dirs with ignored files
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 <sxlijin@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
95d6787973
commit
b3487ccc0b
@ -653,4 +653,20 @@ test_expect_success 'git clean -d respects pathspecs (pathspec is prefix of dir)
|
|||||||
test_path_is_dir foobar
|
test_path_is_dir foobar
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_failure 'git clean -d skips untracked dirs containing ignored files' '
|
||||||
|
echo /foo/bar >.gitignore &&
|
||||||
|
echo ignoreme >>.gitignore &&
|
||||||
|
rm -rf foo &&
|
||||||
|
mkdir -p foo/a/aa/aaa foo/b/bb/bbb &&
|
||||||
|
touch foo/bar foo/baz foo/a/aa/ignoreme foo/b/ignoreme foo/b/bb/1 foo/b/bb/2 &&
|
||||||
|
git clean -df &&
|
||||||
|
test_path_is_dir foo &&
|
||||||
|
test_path_is_file foo/bar &&
|
||||||
|
test_path_is_missing foo/baz &&
|
||||||
|
test_path_is_file foo/a/aa/ignoreme &&
|
||||||
|
test_path_is_missing foo/a/aa/aaa &&
|
||||||
|
test_path_is_file foo/b/ignoreme &&
|
||||||
|
test_path_is_missing foo/b/bb
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user