diff options
-rw-r--r-- | dir.c | 4 | ||||
-rwxr-xr-x | t/t7300-clean.sh | 2 |
2 files changed, 5 insertions, 1 deletions
@@ -2383,6 +2383,10 @@ static int treat_leading_path(struct dir_struct *dir, (dir->flags & DIR_SHOW_IGNORED_TOO || do_match_pathspec(istate, pathspec, sb.buf, sb.len, baselen, NULL, DO_MATCH_LEADING_PATHSPEC) == MATCHED_RECURSIVELY_LEADING_PATHSPEC)) { + if (!match_pathspec(istate, pathspec, sb.buf, sb.len, + 0 /* prefix */, NULL, + 0 /* do NOT special case dirs */)) + state = path_none; add_path_to_appropriate_result_list(dir, NULL, &cdir, istate, &sb, baselen, diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh index 782e125..cb5e34d 100755 --- a/t/t7300-clean.sh +++ b/t/t7300-clean.sh @@ -737,7 +737,7 @@ test_expect_success MINGW 'handle clean & core.longpaths = false nicely' ' test_i18ngrep "too long" .git/err ' -test_expect_failure 'clean untracked paths by pathspec' ' +test_expect_success 'clean untracked paths by pathspec' ' git init untracked && mkdir untracked/dir && echo >untracked/dir/file.txt && |