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