2022-04-06 20:41:22 +02:00
|
|
|
git-fsmonitor{litdd}daemon(1)
|
|
|
|
=============================
|
2022-03-25 19:02:48 +01:00
|
|
|
|
|
|
|
NAME
|
|
|
|
----
|
2022-10-04 19:32:31 +02:00
|
|
|
git-fsmonitor--daemon - A Built-in Filesystem Monitor
|
2022-03-25 19:02:48 +01:00
|
|
|
|
|
|
|
SYNOPSIS
|
|
|
|
--------
|
|
|
|
[verse]
|
2022-04-06 20:41:22 +02:00
|
|
|
'git fsmonitor{litdd}daemon' start
|
|
|
|
'git fsmonitor{litdd}daemon' run
|
|
|
|
'git fsmonitor{litdd}daemon' stop
|
|
|
|
'git fsmonitor{litdd}daemon' status
|
2022-03-25 19:02:48 +01:00
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
-----------
|
|
|
|
|
|
|
|
A daemon to watch the working directory for file and directory
|
2022-10-04 19:32:31 +02:00
|
|
|
changes using platform-specific filesystem notification facilities.
|
2022-03-25 19:02:48 +01:00
|
|
|
|
|
|
|
This daemon communicates directly with commands like `git status`
|
|
|
|
using the link:technical/api-simple-ipc.html[simple IPC] interface
|
|
|
|
instead of the slower linkgit:githooks[5] interface.
|
|
|
|
|
|
|
|
This daemon is built into Git so that no third-party tools are
|
|
|
|
required.
|
|
|
|
|
|
|
|
OPTIONS
|
|
|
|
-------
|
|
|
|
|
|
|
|
start::
|
|
|
|
Starts a daemon in the background.
|
|
|
|
|
|
|
|
run::
|
|
|
|
Runs a daemon in the foreground.
|
|
|
|
|
|
|
|
stop::
|
|
|
|
Stops the daemon running in the current working
|
|
|
|
directory, if present.
|
|
|
|
|
|
|
|
status::
|
|
|
|
Exits with zero status if a daemon is watching the
|
|
|
|
current working directory.
|
|
|
|
|
|
|
|
REMARKS
|
|
|
|
-------
|
|
|
|
|
|
|
|
This daemon is a long running process used to watch a single working
|
|
|
|
directory and maintain a list of the recently changed files and
|
|
|
|
directories. Performance of commands such as `git status` can be
|
|
|
|
increased if they just ask for a summary of changes to the working
|
|
|
|
directory and can avoid scanning the disk.
|
|
|
|
|
|
|
|
When `core.fsmonitor` is set to `true` (see linkgit:git-config[1])
|
|
|
|
commands, such as `git status`, will ask the daemon for changes and
|
|
|
|
automatically start it (if necessary).
|
|
|
|
|
|
|
|
For more information see the "File System Monitor" section in
|
|
|
|
linkgit:git-update-index[1].
|
|
|
|
|
|
|
|
CAVEATS
|
|
|
|
-------
|
|
|
|
|
|
|
|
The fsmonitor daemon does not currently know about submodules and does
|
2022-10-04 19:32:31 +02:00
|
|
|
not know to filter out filesystem events that happen within a
|
2022-03-25 19:02:48 +01:00
|
|
|
submodule. If fsmonitor daemon is watching a super repo and a file is
|
|
|
|
modified within the working directory of a submodule, it will report
|
|
|
|
the change (as happening against the super repo). However, the client
|
|
|
|
will properly ignore these extra events, so performance may be affected
|
|
|
|
but it will not cause an incorrect result.
|
|
|
|
|
2022-10-04 19:32:31 +02:00
|
|
|
By default, the fsmonitor daemon refuses to work against network-mounted
|
|
|
|
repositories; this may be overridden by setting `fsmonitor.allowRemote` to
|
|
|
|
`true`. Note, however, that the fsmonitor daemon is not guaranteed to work
|
|
|
|
correctly with all network-mounted repositories and such use is considered
|
|
|
|
experimental.
|
|
|
|
|
|
|
|
On Mac OS, the inter-process communication (IPC) between various Git
|
|
|
|
commands and the fsmonitor daemon is done via a Unix domain socket (UDS) -- a
|
|
|
|
special type of file -- which is supported by native Mac OS filesystems,
|
|
|
|
but not on network-mounted filesystems, NTFS, or FAT32. Other filesystems
|
|
|
|
may or may not have the needed support; the fsmonitor daemon is not guaranteed
|
|
|
|
to work with these filesystems and such use is considered experimental.
|
|
|
|
|
|
|
|
By default, the socket is created in the `.git` directory, however, if the
|
|
|
|
`.git` directory is on a network-mounted filesystem, it will be instead be
|
|
|
|
created at `$HOME/.git-fsmonitor-*` unless `$HOME` itself is on a
|
|
|
|
network-mounted filesystem in which case you must set the configuration
|
|
|
|
variable `fsmonitor.socketDir` to the path of a directory on a Mac OS native
|
|
|
|
filesystem in which to create the socket file.
|
|
|
|
|
|
|
|
If none of the above directories (`.git`, `$HOME`, or `fsmonitor.socketDir`)
|
|
|
|
is on a native Mac OS file filesystem the fsmonitor daemon will report an
|
|
|
|
error that will cause the daemon and the currently running command to exit.
|
|
|
|
|
|
|
|
CONFIGURATION
|
|
|
|
-------------
|
|
|
|
|
|
|
|
include::includes/cmd-config-section-all.txt[]
|
|
|
|
|
|
|
|
include::config/fsmonitor--daemon.txt[]
|
|
|
|
|
2022-03-25 19:02:48 +01:00
|
|
|
GIT
|
|
|
|
---
|
|
|
|
Part of the linkgit:git[1] suite
|