On Tue, Apr 10, 2018 at 11:04 PM, Ben Peart <Ben.Peart@xxxxxxxxxxxxx> wrote: > In git repos with large working directories an external file system monitor > (like fsmonitor or gvfs) can track what files in the working directory have been > modified. This information can be used to speed up git operations that scale > based on the size of the working directory so that they become O(# of modified > files) vs O(# of files in the working directory). > > The fsmonitor patch series added logic to limit what files git had to stat() to > the set of modified files provided by the fsmonitor hook proc. It also used the > untracked cache (if enabled) to limit the files/folders git had to scan looking > for new/untracked files. GVFS is another external file system model that also > speeds up git working directory based operations that has been using a different > mechanism (programmatically generating an excludes file) to enable git to be > O(# of modified files). > > This patch series will introduce a new way to limit git�s traversal of the > working directory that does not require the untracked cache (fsmonitor) or using > the excludes feature (GVFS). It does this by enhancing the existing excludes > logic in dir.c to support a new �File System Excludes� or fsexcludes API that is > better tuned to these programmatic applications. I have not had a chance to really look at the patches yet but I think these three paragraphs should somehow be included in the commit description of 1/2 (or spread out between 1/2 and 2/2). 1/2 description for example briefly talks about how to use the new thing, but not really tell what it's for, why you need to add it. -- Duy