dir: traverse into untracked directories if they may have ignored subfiles
authorElijah Newren <newren@gmail.com>
Wed, 12 May 2021 17:28:20 +0000 (17:28 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 12 May 2021 23:45:03 +0000 (08:45 +0900)
commitdd55fc0df15c338a8dbec6dec6ca6b58edc8acef
tree59eba3ec0924940c5c68e54c6a1820022edc0833
parentaa6e1b21e5de8fae7121b8c6543e1482144c1ed3
dir: traverse into untracked directories if they may have ignored subfiles

A directory that is untracked does not imply that all files under it
should be categorized as untracked; in particular, if the caller is
interested in ignored files, many files or directories underneath the
untracked directory may be ignored.  We previously partially handled
this right with DIR_SHOW_IGNORED_TOO, but missed DIR_SHOW_IGNORED.  It
was not obvious, though, because the logic for untracked and excluded
files had been fused together making it harder to reason about.  The
previous commit split that logic out, making it easier to notice that
DIR_SHOW_IGNORED was missing.  Add it.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
dir.c
t/t3001-ls-files-others-exclude.sh
t/t7300-clean.sh