@@ -62,22 +62,54 @@ core.protectNTFS::
62
62
Defaults to `true` on Windows, and `false` elsewhere.
63
63
64
64
core.fsmonitor::
65
- If set, the value of this variable is used as a command which
66
- will identify all files that may have changed since the
67
- requested date/time. This information is used to speed up git by
68
- avoiding unnecessary processing of files that have not changed.
69
- See the "fsmonitor-watchman" section of linkgit:githooks[5].
65
+ If set to true, enable the built-in file system monitor
66
+ daemon for this working directory (linkgit:git-fsmonitor--daemon[1]).
67
+ +
68
+ Like hook-based file system monitors, the built-in file system monitor
69
+ can speed up Git commands that need to refresh the Git index
70
+ (e.g. `git status`) in a working directory with many files. The
71
+ built-in monitor eliminates the need to install and maintain an
72
+ external third-party tool.
73
+ +
74
+ The built-in file system monitor is currently available only on a
75
+ limited set of supported platforms. Currently, this includes Windows
76
+ and MacOS.
77
+ +
78
+ Otherwise, this variable contains the pathname of the "fsmonitor"
79
+ hook command.
80
+ +
81
+ This hook command is used to identify all files that may have changed
82
+ since the requested date/time. This information is used to speed up
83
+ git by avoiding unnecessary scanning of files that have not changed.
84
+ +
85
+ See the "fsmonitor-watchman" section of linkgit:githooks[5].
86
+ +
87
+ Note that if you concurrently use multiple versions of Git, such
88
+ as one version on the command line and another version in an IDE
89
+ tool, that the definition of `core.fsmonitor` was extended to
90
+ allow boolean values in addition to hook pathnames. Git versions
91
+ 2.35.1 and prior will not understand the boolean values and will
92
+ consider the "true" or "false" values as hook pathnames to be
93
+ invoked. Git versions 2.26 thru 2.35.1 default to hook protocol
94
+ V2 and will fall back to no fsmonitor (full scan). Git versions
95
+ prior to 2.26 default to hook protocol V1 and will silently
96
+ assume there were no changes to report (no scan), so status
97
+ commands may report incomplete results. For this reason, it is
98
+ best to upgrade all of your Git versions before using the built-in
99
+ file system monitor.
70
100
71
101
core.fsmonitorHookVersion::
72
- Sets the version of hook that is to be used when calling fsmonitor.
73
- There are currently versions 1 and 2. When this is not set,
74
- version 2 will be tried first and if it fails then version 1
75
- will be tried. Version 1 uses a timestamp as input to determine
76
- which files have changes since that time but some monitors
77
- like watchman have race conditions when used with a timestamp.
78
- Version 2 uses an opaque string so that the monitor can return
79
- something that can be used to determine what files have changed
80
- without race conditions.
102
+ Sets the protocol version to be used when invoking the
103
+ "fsmonitor" hook.
104
+ +
105
+ There are currently versions 1 and 2. When this is not set,
106
+ version 2 will be tried first and if it fails then version 1
107
+ will be tried. Version 1 uses a timestamp as input to determine
108
+ which files have changes since that time but some monitors
109
+ like Watchman have race conditions when used with a timestamp.
110
+ Version 2 uses an opaque string so that the monitor can return
111
+ something that can be used to determine what files have changed
112
+ without race conditions.
81
113
82
114
core.trustctime::
83
115
If false, the ctime differences between the index and the
0 commit comments