On Sun, Apr 2, 2017 at 11:25 AM, Daniel Ferreira (theiostream) <bnmvco@xxxxxxxxx> wrote: > Why exactly would it not be applicable to read_directory_recursively()? Because that function is a beast (and probably should have "beast" in the function name). The function is supposed to read .gitignore, index file and whatever else needed, traverse the directory and return the list of untracked files, or ignored files. It even has options to return a directory path, if all entries inside is ignored/untracked, instead of the list of files inside. On top of that, it has "untracked cache" to skip traversing directories to speed up. Using dir_iterator might be possible but we'll need to improve it a lot. read_directory_recursively() needs really fine control over traversing: it can decide to not recurse in a subdirectory, it can decide to ignore the rest of the entries in a directory and go back to its parent, and in the case of untracked cache, it can switch to traversing the cache instead of on-disk directories. It's possible, probably, but it's going to need quite a lot of work (and care, since I think there are corner cases that have been abused in real world and we just cannot change those behaviors). Using iterator interface would be a good improvement to clean up the "on disk or on cache" directory traversal there though. > > On Thu, Mar 30, 2017 at 8:08 AM, Duy Nguyen <pclouds@xxxxxxxxx> wrote: >> On Thu, Mar 30, 2017 at 1:39 PM, Michael Haggerty <mhagger@xxxxxxxxxxxx> wrote: >>> * DIR_ITERATOR_RECURSE -- recurse into subdirectories >>> >>> would make the set of possible options complete. If this option is not >>> set, then the iteration would be over the entries in a single directory >>> without traversing its subdirectories. >> >> And would make it possible to use dir-iterator everywhere (except >> read_directory_recursiveky). That would be really nice :) >> -- >> Duy -- Duy