Here is Part 2 of my Builtin FSMonitor series. Part 2 requires jh/builtin-fsmonitor-part1 be present. Part 2 contains: * Client-side code to connect to a (yet to be developed) FSMonitor daemon over simple IPC (using Named Pipes or Unix Domain Sockets). * Updated config settings to allow the client to decide whether to use Simple IPC or the existing FSMonitor Hook API. The original FSMonitor feature "e05336bdda (Merge branch 'bp/fsmonitor', 2017-11-21)" consisted of two parts: 1. Client code: 1.1. Called by commands like git status 1.2. Uses the Hook API to spawn and talk to a shell or perl script (usually) 1.3. Receives a list of recently modified files and/or directories 1.4. Updates flags and/or loops in various algorithms to avoid unnecessary lstat() calls on unchanged ones. 2. Hook code: 2.1. A hook process, spawned by each client command, talks to a long-running FS monitoring process. 2.2. A long-running FS monitoring process, usually Watchman. 2.3. The hook process acts as a relay to translate requests responses from Watchman back to the client command. The Builtin FSMonitor feature extends step 1.2 and allows clients to communicate directly with a FS daemon process using Simple IPC. The daemon response is then processed as before in step 1.3. Part 2 contains these client-side changes for IPC. A builtin FSMonitor daemon will be added in a later patch series. Jeff Hostetler (5): fsmonitor: enhance existing comments fsmonitor-ipc: create client routines for git-fsmonitor--daemon fsmonitor: config settings are repository-specific fsmonitor: use IPC to query the builtin FSMonitor daemon fsmonitor: update fsmonitor config documentation Documentation/config/core.txt | 56 ++++++--- Documentation/git-update-index.txt | 27 +++-- Documentation/githooks.txt | 3 +- Makefile | 2 + builtin/update-index.c | 19 +++- cache.h | 1 - config.c | 14 --- config.h | 1 - environment.c | 1 - fsmonitor-ipc.c | 176 +++++++++++++++++++++++++++++ fsmonitor-ipc.h | 48 ++++++++ fsmonitor-settings.c | 97 ++++++++++++++++ fsmonitor-settings.h | 21 ++++ fsmonitor.c | 130 +++++++++++++++------ fsmonitor.h | 18 ++- repo-settings.c | 2 + repository.h | 3 + t/README | 4 +- 18 files changed, 538 insertions(+), 85 deletions(-) create mode 100644 fsmonitor-ipc.c create mode 100644 fsmonitor-ipc.h create mode 100644 fsmonitor-settings.c create mode 100644 fsmonitor-settings.h base-commit: 8b7c11b8668b4e774f81a9f0b4c30144b818f1d1 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1041%2Fjeffhostetler%2Fbuiltin-fsmonitor-part2-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1041/jeffhostetler/builtin-fsmonitor-part2-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/1041 -- gitgitgadget