| #include "git-compat-util.h" | |
| #include "config.h" | |
| #include "repository.h" | |
| #include "fsmonitor-ll.h" | |
| #include "fsmonitor-settings.h" | |
| #include "fsmonitor-path-utils.h" | |
| /* | |
| * VFS for Git is incompatible with FSMonitor. | |
| * | |
| * Granted, core Git does not know anything about VFS for Git and we | |
| * shouldn't make assumptions about a downstream feature, but users | |
| * can install both versions. And this can lead to incorrect results | |
| * from core Git commands. So, without bringing in any of the VFS for | |
| * Git code, do a simple config test for a published config setting. | |
| * (We do not look at the various *_TEST_* environment variables.) | |
| */ | |
| static enum fsmonitor_reason check_vfs4git(struct repository *r) | |
| { | |
| const char *const_str; | |
| if (!repo_config_get_value(r, "core.virtualfilesystem", &const_str)) | |
| return FSMONITOR_REASON_VFS4GIT; | |
| return FSMONITOR_REASON_OK; | |
| } | |
| enum fsmonitor_reason fsm_os__incompatible(struct repository *r, int ipc UNUSED) | |
| { | |
| enum fsmonitor_reason reason; | |
| reason = check_vfs4git(r); | |
| if (reason != FSMONITOR_REASON_OK) | |
| return reason; | |
| return FSMONITOR_REASON_OK; | |
| } |