[PATCH 0/5] Builtin FSMonitor Part 2
From: Jeff Hostetler via GitGitGadget <hidden>
Date: 2021-09-16 19:54:28
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