Add support in update-index to manually add/remove the fsmonitor extension via --fsmonitor/--no-fsmonitor flags Signed-off-by: Ben Peart <benpeart@xxxxxxxxxxxxx> --- builtin/update-index.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/builtin/update-index.c b/builtin/update-index.c index 6f39ee9274..b03afc1f3a 100644 --- a/builtin/update-index.c +++ b/builtin/update-index.c @@ -918,6 +918,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix) int lock_error = 0; int split_index = -1; int force_write = 0; + int fsmonitor = -1; struct lock_file *lock_file; struct parse_opt_ctx_t ctx; strbuf_getline_fn getline_fn; @@ -1011,6 +1012,8 @@ int cmd_update_index(int argc, const char **argv, const char *prefix) N_("enable untracked cache without testing the filesystem"), UC_FORCE), OPT_SET_INT(0, "force-write-index", &force_write, N_("write out the index even if is not flagged as changed"), 1), + OPT_BOOL(0, "fsmonitor", &fsmonitor, + N_("enable or disable file system monitor")), OPT_END() }; @@ -1152,6 +1155,22 @@ int cmd_update_index(int argc, const char **argv, const char *prefix) die("BUG: bad untracked_cache value: %d", untracked_cache); } + if (fsmonitor > 0) { + if (git_config_get_fsmonitor() == 0) + warning(_("core.fsmonitor is unset; " + "set it if you really want to " + "enable fsmonitor")); + add_fsmonitor(&the_index); + report(_("fsmonitor enabled")); + } else if (!fsmonitor) { + if (git_config_get_fsmonitor() == 1) + warning(_("core.fsmonitor is set; " + "remove it if you really want to " + "disable fsmonitor")); + remove_fsmonitor(&the_index); + report(_("fsmonitor disabled")); + } + if (active_cache_changed || force_write) { if (newfd < 0) { if (refresh_args.flags & REFRESH_QUIET) -- 2.14.1.548.ge54b1befee.dirty