git-fsmonitor{litdd}daemon(1)
=============================

NAME
----
git-fsmonitor--daemon - A Built-in Filesystem Monitor

SYNOPSIS
--------
[verse]
'git fsmonitor{litdd}daemon' start
'git fsmonitor{litdd}daemon' run
'git fsmonitor{litdd}daemon' stop
'git fsmonitor{litdd}daemon' status

DESCRIPTION
-----------

A daemon to watch the working directory for file and directory
changes using platform-specific filesystem notification facilities.

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
not know to filter out filesystem events that happen within a
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.

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[]

GIT
---
Part of the linkgit:git[1] suite
