]> git.ipfire.org Git - thirdparty/git.git/blame - fsmonitor-settings.h
fsmonitor-settings: bare repos are incompatible with FSMonitor
[thirdparty/git.git] / fsmonitor-settings.h
CommitLineData
1e0ea5c4
JH
1#ifndef FSMONITOR_SETTINGS_H
2#define FSMONITOR_SETTINGS_H
3
4struct repository;
5
6enum fsmonitor_mode {
62a62a28 7 FSMONITOR_MODE_INCOMPATIBLE = -1, /* see _reason */
1e0ea5c4
JH
8 FSMONITOR_MODE_DISABLED = 0,
9 FSMONITOR_MODE_HOOK = 1, /* core.fsmonitor=<hook_path> */
10 FSMONITOR_MODE_IPC = 2, /* core.fsmonitor=<true> */
11};
12
62a62a28
JH
13/*
14 * Incompatibility reasons.
15 */
16enum fsmonitor_reason {
17 FSMONITOR_REASON_UNTESTED = 0,
18 FSMONITOR_REASON_OK, /* no incompatibility or when disabled */
19 FSMONITOR_REASON_BARE,
20};
21
1e0ea5c4
JH
22void fsm_settings__set_ipc(struct repository *r);
23void fsm_settings__set_hook(struct repository *r, const char *path);
24void fsm_settings__set_disabled(struct repository *r);
62a62a28
JH
25void fsm_settings__set_incompatible(struct repository *r,
26 enum fsmonitor_reason reason);
1e0ea5c4
JH
27
28enum fsmonitor_mode fsm_settings__get_mode(struct repository *r);
29const char *fsm_settings__get_hook_path(struct repository *r);
30
62a62a28
JH
31enum fsmonitor_reason fsm_settings__get_reason(struct repository *r);
32char *fsm_settings__get_incompatible_msg(const struct repository *r,
33 enum fsmonitor_reason reason);
34
1e0ea5c4
JH
35struct fsmonitor_settings;
36
37#endif /* FSMONITOR_SETTINGS_H */