4 The directory listing API is used to enumerate paths in the work tree,
5 optionally taking `.git/info/exclude` and `.gitignore` files per
6 directory into account.
11 `struct dir_struct` structure is used to pass directory traversal
12 options to the library and to record the paths discovered. The notable
17 The name of the file to be read in each directory for excluded
18 files (typically `.gitignore`).
22 Include paths that are to be excluded in the result.
26 The traversal is for finding just ignored files, not unignored
29 `show_other_directories`::
31 Include a directory that is not tracked.
33 `hide_empty_directories`::
35 Do not include a directory that is not tracked and is empty.
39 If set, recurse into a directory that looks like a git
40 directory. Otherwise it is shown as a directory.
42 The result of the enumeration is left in these fields::
46 An array of `struct dir_entry`, each element of which describes
51 The number of members in `entries[]` array.
55 Internal use; keeps track of allocation of `entries[]` array.
61 Note: index may be looked at for .gitignore files that are CE_SKIP_WORKTREE
62 marked. If you to exclude files, make sure you have loaded index first.
64 * Prepare `struct dir_struct dir` and clear it with `memset(&dir, 0,
67 * Call `add_exclude()` to add single exclude pattern,
68 `add_excludes_from_file()` to add patterns from a file
69 (e.g. `.git/info/exclude`), and/or set `dir.exclude_per_dir`. A
70 short-hand function `setup_standard_excludes()` can be used to set up
71 the standard set of exclude settings.
73 * Set options described in the Data Structure section above.
75 * Call `read_directory()`.
77 * Use `dir.entries[]`.