path: root/Documentation/githooks.txt
diff options
authorBen Peart <>2017-09-22 16:35:41 (GMT)
committerJunio C Hamano <>2017-10-01 08:23:05 (GMT)
commit780494b1f5c3744860c485d1e9f1b23879f8936f (patch)
tree004b18325fca198ffb5e15b827728c6abf9f9edc /Documentation/githooks.txt
parent883e248b8a0fd88773cb902ab8e91273eb147d07 (diff)
fsmonitor: add documentation for the fsmonitor extension.
This includes the core.fsmonitor setting, the fsmonitor integration hook, and the fsmonitor index extension. Also add documentation for the new fsmonitor options to ls-files and update-index. Signed-off-by: Ben Peart <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'Documentation/githooks.txt')
1 files changed, 28 insertions, 0 deletions
diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt
index 1bb4f92..ae60559 100644
--- a/Documentation/githooks.txt
+++ b/Documentation/githooks.txt
@@ -455,6 +455,34 @@ the name of the file that holds the e-mail to be sent. Exiting with a
non-zero status causes 'git send-email' to abort before sending any
+This hook is invoked when the configuration option core.fsmonitor is
+set to .git/hooks/fsmonitor-watchman. It takes two arguments, a version
+(currently 1) and the time in elapsed nanoseconds since midnight,
+January 1, 1970.
+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
+should be inclusive so that it does not miss any potential changes.
+The paths should be relative to the root of the working directory
+and be separated by a single NUL.
+It is OK to include files which have not actually changed. All changes
+including newly-created and deleted files should be included. When
+files are renamed, both the old and the new name should be included.
+Git will limit what files it checks for changes as well as which
+directories are checked for untracked files based on the path names
+An optimized way to tell git "all files have changed" is to return
+the filename '/'.
+The exit status determines whether git will use the data from the
+hook to limit its search. On error, it will fall back to verifying
+all files and folders.