path: root/Documentation/technical/api-directory-listing.txt
diff options
authorSamuel Lijin <>2017-05-18 08:21:52 (GMT)
committerJunio C Hamano <>2017-05-22 03:14:09 (GMT)
commitfb898888491b83c9a3396fb559032ca78807a0c0 (patch)
tree0af74000ad2fcf7f9310422324b1ec70e976c2db /Documentation/technical/api-directory-listing.txt
parentdf5bcdf83aeb94718602ebc8c0f597166bb493f1 (diff)
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 <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'Documentation/technical/api-directory-listing.txt')
1 files changed, 6 insertions, 0 deletions
diff --git a/Documentation/technical/api-directory-listing.txt b/Documentation/technical/api-directory-listing.txt
index 7f8e78d..6c77b49 100644
--- a/Documentation/technical/api-directory-listing.txt
+++ b/Documentation/technical/api-directory-listing.txt
@@ -33,6 +33,12 @@ The notable options are:
Similar to `DIR_SHOW_IGNORED`, but return ignored files in `ignored[]`
in addition to untracked files in `entries[]`.
+ Only has meaning if `DIR_SHOW_IGNORED_TOO` is also set; if this is set, the
+ untracked contents of untracked directories are also returned in
+ `entries[]`.
Special mode for git-add. Return ignored files in `ignored[]` and