Changes from V4 include: fsmonitor.c: Only flag index dirty if fsmonitor extension is added or removed or if new cache or untracked cache entries are marked dirty dir.c: If an untracked cache entry is flagged as fsmonitor_dirty, fall back to existing logic to stat the file and check for changes instead of assuming it is dirty. hooks--query-fsmonitor.sample: Optimize query to exclude transitory files (files that were created and deleted since the last call). Update path mangling on Windows to match Watchman beta. test-drop-caches.c: Add perf helper to drop the disk cache on Windows. p7519-fsmonitor.sh: Add perf test for fsmonitor changes Ben Peart (7): bswap: add 64 bit endianness helper get_be64 dir: make lookup_untracked() available outside of dir.c fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files. fsmonitor: add test cases for fsmonitor extension fsmonitor: add documentation for the fsmonitor extension. fsmonitor: add a sample query-fsmonitor hook script for Watchman fsmonitor: add a performance test Documentation/config.txt | 7 + Documentation/githooks.txt | 23 +++ Documentation/technical/index-format.txt | 19 +++ Makefile | 2 + builtin/update-index.c | 1 + cache.h | 5 + compat/bswap.h | 4 + config.c | 4 + dir.c | 29 ++-- dir.h | 5 + entry.c | 1 + environment.c | 1 + fsmonitor.c | 261 +++++++++++++++++++++++++++++++ fsmonitor.h | 9 ++ read-cache.c | 28 +++- t/helper/test-drop-caches.c | 107 +++++++++++++ t/perf/p7519-fsmonitor.sh | 161 +++++++++++++++++++ t/t7519-status-fsmonitor.sh | 173 ++++++++++++++++++++ templates/hooks--query-fsmonitor.sample | 76 +++++++++ unpack-trees.c | 1 + 20 files changed, 904 insertions(+), 13 deletions(-) create mode 100644 fsmonitor.c create mode 100644 fsmonitor.h create mode 100644 t/helper/test-drop-caches.c create mode 100755 t/perf/p7519-fsmonitor.sh create mode 100755 t/t7519-status-fsmonitor.sh create mode 100755 templates/hooks--query-fsmonitor.sample -- 2.13.0