Subject: [PATCH 0/7] fsmonitor: completing a stale patch that Implements fsmonitor for Linux

From: "marzi via GitGitGadget" <[email-masked]>
Date: Thu, 15 Feb 2024 10:29:31 +0000

The goal in the original pull is to deliver fsmonitor for Linux that works
similar to fsmonitor for Windows and Mac OS.

The original stale patch : https://github.com/git/git/pull/1352

This patch set builds upon previous work for done for Windows and Mac OS to
implement a fsmonitor back-end for Linux based on the Linux inotify API.
inotify differs significantly from the equivalent Windows and Mac OS APIs in
that a watch must be registered for every directory of interest (rather than
a singular watch at the root of the directory tree) and special care must be
taken to handle directory renames correctly.

More information about inotify:
https://man7.org/linux/man-pages/man7/inotify.7.html

Eric DeCosta (6):
  fsmonitor: rebase with master
  fsmonitor: determine if filesystem is local or remote
  fsmonitor: implement filesystem change listener for Linux
  fsmonitor: enable fsmonitor for Linux
  fsmonitor: test updates
  fsmonitor: update doc for Linux

marzi.esipreh (1):
  fsmonitor: addressed comments for patch 1352

 Documentation/config/fsmonitor--daemon.txt |   4 +-
 Documentation/git-fsmonitor--daemon.txt    |  26 +-
 Makefile                                   |   4 +
 compat/fsmonitor/fsm-health-linux.c        |  24 +
 compat/fsmonitor/fsm-ipc-darwin.c          |  57 +-
 compat/fsmonitor/fsm-ipc-linux.c           |   1 +
 compat/fsmonitor/fsm-ipc-unix.c            |  55 ++
 compat/fsmonitor/fsm-listen-linux.c        | 678 +++++++++++++++++++++
 compat/fsmonitor/fsm-path-utils-linux.c    | 196 ++++++
 compat/fsmonitor/fsm-path-utils-linux.h    |  91 +++
 compat/fsmonitor/fsm-settings-darwin.c     |  64 +-
 compat/fsmonitor/fsm-settings-linux.c      |   1 +
 compat/fsmonitor/fsm-settings-unix.c       |  64 ++
 config.mak.uname                           |  11 +
 contrib/buildsystems/CMakeLists.txt        |  11 +-
 t/t7527-builtin-fsmonitor.sh               | 138 ++++-
 16 files changed, 1262 insertions(+), 163 deletions(-)
 create mode 100644 compat/fsmonitor/fsm-health-linux.c
 create mode 100644 compat/fsmonitor/fsm-ipc-linux.c
 create mode 100644 compat/fsmonitor/fsm-ipc-unix.c
 create mode 100644 compat/fsmonitor/fsm-listen-linux.c
 create mode 100644 compat/fsmonitor/fsm-path-utils-linux.c
 create mode 100644 compat/fsmonitor/fsm-path-utils-linux.h
 create mode 100644 compat/fsmonitor/fsm-settings-linux.c
 create mode 100644 compat/fsmonitor/fsm-settings-unix.c

base-commit: 4fc51f00ef18d2c0174ab2fd39d0ee473fd144bd
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1667%2Fmaryis%2Ffsmonitor_linux-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1667/maryis/fsmonitor_linux-v1
Pull-Request: https://github.com/git/git/pull/1667
-- 
gitgitgadget