mirror of
https://github.com/git/git
synced 2024-08-27 19:49:21 +00:00
fsmonitor: update documentation for hook version and watchman hooks
A new config value for core.fsmonitorHookVersion was added to be able to force the version of the fsmonitor hook. Possible values are 1 or 2. When this is not set the code will use a value of -1 and attempt to use version 2 of the hook first and if that fails will attempt version 1. Signed-off-by: Kevin Willford <Kevin.Willford@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e4e1e8342a
commit
dfaed02862
|
@ -68,6 +68,17 @@ core.fsmonitor::
|
||||||
avoiding unnecessary processing of files that have not changed.
|
avoiding unnecessary processing of files that have not changed.
|
||||||
See the "fsmonitor-watchman" section of linkgit:githooks[5].
|
See the "fsmonitor-watchman" section of linkgit:githooks[5].
|
||||||
|
|
||||||
|
core.fsmonitorHookVersion::
|
||||||
|
Sets the version of hook that is to be used when calling fsmonitor.
|
||||||
|
There are currently versions 1 and 2. When this is not set,
|
||||||
|
version 2 will be tried first and if it fails then version 1
|
||||||
|
will be tried. Version 1 uses a timestamp as input to determine
|
||||||
|
which files have changes since that time but some monitors
|
||||||
|
like watchman have race conditions when used with a timestamp.
|
||||||
|
Version 2 uses an opaque string so that the monitor can return
|
||||||
|
something that can be used to determine what files have changed
|
||||||
|
without race conditions.
|
||||||
|
|
||||||
core.trustctime::
|
core.trustctime::
|
||||||
If false, the ctime differences between the index and the
|
If false, the ctime differences between the index and the
|
||||||
working tree are ignored; useful when the inode change time
|
working tree are ignored; useful when the inode change time
|
||||||
|
|
|
@ -490,9 +490,16 @@ fsmonitor-watchman
|
||||||
~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
This hook is invoked when the configuration option `core.fsmonitor` is
|
This hook is invoked when the configuration option `core.fsmonitor` is
|
||||||
set to `.git/hooks/fsmonitor-watchman`. It takes two arguments, a version
|
set to `.git/hooks/fsmonitor-watchman` or `.git/hooks/fsmonitor-watchmanv2`
|
||||||
(currently 1) and the time in elapsed nanoseconds since midnight,
|
depending on the version of the hook to use.
|
||||||
January 1, 1970.
|
|
||||||
|
Version 1 takes two arguments, a version (1) and the time in elapsed
|
||||||
|
nanoseconds since midnight, January 1, 1970.
|
||||||
|
|
||||||
|
Version 2 takes two arguments, a version (2) and a token that is used
|
||||||
|
for identifying changes since the token. For watchman this would be
|
||||||
|
a clock id. This version must output to stdout the new token followed
|
||||||
|
by a NUL before the list of files.
|
||||||
|
|
||||||
The hook should output to stdout the list of all files in the working
|
The hook should output to stdout the list of all files in the working
|
||||||
directory that may have changed since the requested time. The logic
|
directory that may have changed since the requested time. The logic
|
||||||
|
|
Loading…
Reference in a new issue