mirror of
https://github.com/git-for-windows/git.git
synced 2026-03-27 07:26:22 -05:00
Move FSMonitor config settings to a new `struct fsmonitor_settings` structure. Add a lazily-loaded pointer to `struct repo_settings`. Create `fsm_settings__get_*()` getters to lazily look up fsmonitor- related config settings. Get rid of the `core_fsmonitor` global variable, and add support for the new `core.useBuiltinFSMonitor` config setting. Move config code to lookup the existing `core.fsmonitor` value to `fsmonitor-settings.[ch]`. The `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 will lead to confusion when we add support for a builtin FSMonitor based on IPC, since the builtin FSMonitor doesn't need the hook pathname. Replace the boolean usage with an `enum fsmonitor_mode` to represent the state of FSMonitor. And only set the pathname when in HOOK mode. Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
22 lines
606 B
C
22 lines
606 B
C
#ifndef FSMONITOR_SETTINGS_H
|
|
#define FSMONITOR_SETTINGS_H
|
|
|
|
struct repository;
|
|
|
|
enum fsmonitor_mode {
|
|
FSMONITOR_MODE_DISABLED = 0,
|
|
FSMONITOR_MODE_HOOK = 1, /* core.fsmonitor */
|
|
FSMONITOR_MODE_IPC = 2, /* core.useBuiltinFSMonitor */
|
|
};
|
|
|
|
void fsm_settings__set_ipc(struct repository *r);
|
|
void fsm_settings__set_hook(struct repository *r, const char *path);
|
|
void fsm_settings__set_disabled(struct repository *r);
|
|
|
|
enum fsmonitor_mode fsm_settings__get_mode(struct repository *r);
|
|
const char *fsm_settings__get_hook_path(struct repository *r);
|
|
|
|
struct fsmonitor_settings;
|
|
|
|
#endif /* FSMONITOR_SETTINGS_H */
|