Files
git/builtin
Jeff Hostetler 1e0ea5c431 fsmonitor: config settings are repository-specific
Move fsmonitor config settings to a new and opaque
`struct fsmonitor_settings` structure.  Add a lazily-loaded pointer
to this into `struct repo_settings`

Create an `enum fsmonitor_mode` type in `struct fsmonitor_settings` to
represent the state of fsmonitor.  This lets us represent which, if
any, fsmonitor provider (hook or IPC) is enabled.

Create `fsm_settings__get_*()` getters to lazily look up fsmonitor-
related config settings.

Get rid of the `core_fsmonitor` global variable.  Move the code to
lookup the existing `core.fsmonitor` config value into the fsmonitor
settings.

Create a hook pathname variable in `struct fsmonitor-settings` and
only set it when in hook mode.

Extend the definition of `core.fsmonitor` to be either a boolean
or a hook pathname.  When true, the builtin FSMonitor is used.
When false or unset, no FSMonitor (neither builtin nor hook) is
used.

The existing `core_fsmonitor` global variable was used to store the
pathname to the fsmonitor hook *and* it was used as a boolean to see
if fsmonitor was enabled.  This dual usage and global visibility leads
to confusion when we add the IPC-based provider.  So lets hide the
details in fsmonitor-settings.c and let it decide which provider to
use in the case of multiple settings.  This avoids cluttering up
repo-settings.c with these private details.

A future commit in builtin-fsmonitor series will add the ability to
disqualify worktrees for various reasons, such as being mounted from a
remote volume, where fsmonitor should not be started.  Having the
config settings hidden in fsmonitor-settings.c allows such worktree
restrictions to override the config values used.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-03-25 16:04:15 -07:00
..
2022-01-27 18:00:15 -08:00
2022-02-25 15:47:36 -08:00
2022-02-25 15:47:35 -08:00
2022-02-17 16:25:05 -08:00
2022-02-25 15:47:36 -08:00
2021-10-28 09:57:09 -07:00
2022-02-25 15:47:35 -08:00
2022-02-09 14:21:00 -08:00
2022-02-25 15:47:36 -08:00
2022-02-25 15:47:36 -08:00
2021-09-28 10:31:02 -07:00
2022-01-03 16:24:15 -08:00
2022-02-25 15:47:35 -08:00
2022-02-25 15:47:36 -08:00
2022-01-10 11:52:56 -08:00
2022-02-11 10:06:41 -08:00
2022-02-16 15:14:30 -08:00
2021-11-03 13:25:36 -07:00