diff --git a/Documentation/config/core.txt b/Documentation/config/core.txt index 4f6e519bc0..0210f330d7 100644 --- a/Documentation/config/core.txt +++ b/Documentation/config/core.txt @@ -71,7 +71,7 @@ git by avoiding unnecessary scanning of files that have not changed. + See the "fsmonitor-watchman" section of linkgit:githooks[5]. + -Note: The value of this config setting is ignored if the +Note: The value of this config setting is ignored if the (experimental) built-in file system monitor is enabled (see `core.useBuiltinFSMonitor`). core.fsmonitorHookVersion:: @@ -91,7 +91,7 @@ Note: The value of this config setting is ignored if the built-in file system monitor is enabled (see `core.useBuiltinFSMonitor`). core.useBuiltinFSMonitor:: - If set to true, enable the built-in file system monitor + (EXPERIMENTAL) If set to true, enable the built-in file system monitor daemon for this working directory (linkgit:git-fsmonitor--daemon[1]). + Like hook-based file system monitors, the built-in file system monitor diff --git a/Documentation/git-fsmonitor--daemon.txt b/Documentation/git-fsmonitor--daemon.txt index 154e7684da..cf1d4556a5 100644 --- a/Documentation/git-fsmonitor--daemon.txt +++ b/Documentation/git-fsmonitor--daemon.txt @@ -3,7 +3,7 @@ git-fsmonitor--daemon(1) NAME ---- -git-fsmonitor--daemon - A Built-in File System Monitor +git-fsmonitor--daemon - (EXPERIMENTAL) A Built-in File System Monitor SYNOPSIS -------- @@ -16,6 +16,9 @@ SYNOPSIS DESCRIPTION ----------- +NOTE! This command is still only an experiment, subject to change dramatically +(or even to be abandoned). + A daemon to watch the working directory for file and directory changes using platform-specific file system notification facilities. diff --git a/repo-settings.c b/repo-settings.c index 08c60a9274..fd3a9e04c4 100644 --- a/repo-settings.c +++ b/repo-settings.c @@ -2,13 +2,14 @@ #include "config.h" #include "repository.h" #include "midx.h" -#include "compat/fsmonitor/fsm-listen.h" +#include "fsmonitor-ipc.h" +#include "fsmonitor-settings.h" #define UPDATE_DEFAULT_BOOL(s,v) do { if (s == -1) { s = v; } } while(0) void prepare_repo_settings(struct repository *r) { - int value; + int value, feature_many_files = 0; char *strval; if (r->settings.initialized) @@ -62,6 +63,7 @@ void prepare_repo_settings(struct repository *r) UPDATE_DEFAULT_BOOL(r->settings.core_multi_pack_index, 1); if (!repo_config_get_bool(r, "feature.manyfiles", &value) && value) { + feature_many_files = 1; UPDATE_DEFAULT_BOOL(r->settings.index_version, 4); UPDATE_DEFAULT_BOOL(r->settings.core_untracked_cache, UNTRACKED_CACHE_WRITE); } @@ -70,8 +72,11 @@ void prepare_repo_settings(struct repository *r) r->settings.fetch_write_commit_graph = value; UPDATE_DEFAULT_BOOL(r->settings.fetch_write_commit_graph, 0); - if (!repo_config_get_bool(r, "feature.experimental", &value) && value) + if (!repo_config_get_bool(r, "feature.experimental", &value) && value) { UPDATE_DEFAULT_BOOL(r->settings.fetch_negotiation_algorithm, FETCH_NEGOTIATION_SKIPPING); + if (feature_many_files && fsmonitor_ipc__is_supported()) + fsm_settings__set_ipc(r); + } /* Hack for test programs like test-dump-untracked-cache */ if (ignore_untracked_cache_config)