]> git.ipfire.org Git - thirdparty/git.git/commit - dir.h
dir: hide untracked contents of untracked dirs
authorSamuel Lijin <sxlijin@gmail.com>
Thu, 18 May 2017 08:21:52 +0000 (04:21 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 22 May 2017 03:14:09 +0000 (12:14 +0900)
commitfb898888491b83c9a3396fb559032ca78807a0c0
tree0af74000ad2fcf7f9310422324b1ec70e976c2db
parentdf5bcdf83aeb94718602ebc8c0f597166bb493f1
dir: hide untracked contents of untracked dirs

When we taught read_directory_recursive() to recurse into untracked
directories in search of ignored files given DIR_SHOW_IGNORED_TOO, that
had the side effect of teaching it to collect the untracked contents of
untracked directories. It doesn't always make sense to return these,
though (we do need them for `clean -d`), so we introduce a flag
(DIR_KEEP_UNTRACKED_CONTENTS) to control whether or not read_directory()
strips dir->entries of the untracked contents of untracked dirs.

We also introduce check_contains() to check if one dir_entry corresponds
to a path which contains the path corresponding to another dir_entry.

This also fixes known breakages in t7061, since status --ignored now
searches untracked directories for ignored files.

Signed-off-by: Samuel Lijin <sxlijin@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/technical/api-directory-listing.txt
dir.c
dir.h
t/t7061-wtstatus-ignore.sh