git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH v1 0/2] fsexcludes: Add programmatic way to exclude files
@ 2018-04-10 21:04 Ben Peart
  2018-04-10 21:04 ` [PATCH v1 1/2] fsexcludes: add a programmatic way to exclude files from git's working directory traversal logic Ben Peart
                   ` (4 more replies)
  0 siblings, 5 replies; 17+ messages in thread
From: Ben Peart @ 2018-04-10 21:04 UTC (permalink / raw)
  To: git@vger.kernel.org
  Cc: pclouds@gmail.com, alexmv@dropbox.com, blees@dcon.de,
	gitster@pobox.com, bmwill@google.com, avarab@gmail.com,
	johannes.schindelin@gmx.de, Ben Peart

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.

Base Ref: master
Web-Diff: https://github.com/benpeart/git/commit/2ccbcd6360
Checkout: git fetch https://github.com/benpeart/git fsexcludes-v1 && git checkout 2ccbcd6360

Ben Peart (2):
  fsexcludes: add a programmatic way to exclude files from git's working
    directory traversal logic
  fsmonitor: switch to use new fsexcludes logic and remove unused
    untracked cache based logic

 Makefile                    |   1 +
 dir.c                       |  33 ++++--
 dir.h                       |   2 -
 fsexcludes.c                | 210 ++++++++++++++++++++++++++++++++++++
 fsexcludes.h                |  27 +++++
 fsmonitor.c                 |  21 +---
 fsmonitor.h                 |  10 +-
 t/t7519-status-fsmonitor.sh |  14 +--
 8 files changed, 270 insertions(+), 48 deletions(-)
 create mode 100644 fsexcludes.c
 create mode 100644 fsexcludes.h


base-commit: 0b0cc9f86731f894cff8dd25299a9b38c254569e
-- 
2.17.0.windows.1



^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2018-04-18 21:26 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-10 21:04 [PATCH v1 0/2] fsexcludes: Add programmatic way to exclude files Ben Peart
2018-04-10 21:04 ` [PATCH v1 1/2] fsexcludes: add a programmatic way to exclude files from git's working directory traversal logic Ben Peart
2018-04-10 22:09   ` Martin Ågren
2018-04-11 19:56     ` Ben Peart
2018-04-11  6:58   ` Junio C Hamano
2018-04-10 21:04 ` [PATCH v1 2/2] fsmonitor: switch to use new fsexcludes logic and remove unused untracked cache based logic Ben Peart
2018-04-11 20:01 ` [PATCH v2 0/2] fsexcludes: Add programmatic way to exclude files Ben Peart
2018-04-11 20:01   ` [PATCH v2 1/2] fsexcludes: add a programmatic way to exclude files from git's working directory traversal logic Ben Peart
2018-04-11 23:52     ` Junio C Hamano
2018-04-13 11:53       ` Ben Peart
2018-04-11 20:01   ` [PATCH v2 2/2] fsmonitor: switch to use new fsexcludes logic and remove unused untracked cache based logic Ben Peart
2018-04-13 12:22 ` [PATCH v3 0/2] fsexcludes: Add programmatic way to exclude files Ben Peart
2018-04-13 12:22   ` [PATCH v3 1/2] fsexcludes: add a programmatic way to exclude files from git's working directory traversal logic Ben Peart
2018-04-13 12:22   ` [PATCH v3 2/2] fsmonitor: switch to use new fsexcludes logic and remove unused untracked cache based logic Ben Peart
2018-04-18 15:31   ` [PATCH v3 0/2] fsexcludes: Add programmatic way to exclude files Ben Peart
2018-04-18 21:25     ` Junio C Hamano
2018-04-14 15:59 ` [PATCH v1 " Duy Nguyen

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).