Autogenerated manpages for v2.46.0-164-g477ce
[git-manpages.git] / man1 / git-fsmonitor--daemon.1
blob86ee7a9544da4718c9a0472f7afc7f04c2a8107b
1 '\" t
2 .\"     Title: git-fsmonitor--daemon
3 .\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
4 .\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/>
5 .\"      Date: 2024-08-14
6 .\"    Manual: Git Manual
7 .\"    Source: Git 2.46.0.164.g477ce5ccd6
8 .\"  Language: English
9 .\"
10 .TH "GIT\-FSMONITOR\-\-DAEMON" "1" "2024-08-14" "Git 2\&.46\&.0\&.164\&.g477ce5" "Git Manual"
11 .\" -----------------------------------------------------------------
12 .\" * Define some portability stuff
13 .\" -----------------------------------------------------------------
14 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15 .\" http://bugs.debian.org/507673
16 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
17 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18 .ie \n(.g .ds Aq \(aq
19 .el       .ds Aq '
20 .\" -----------------------------------------------------------------
21 .\" * set default formatting
22 .\" -----------------------------------------------------------------
23 .\" disable hyphenation
24 .nh
25 .\" disable justification (adjust text to left margin only)
26 .ad l
27 .\" -----------------------------------------------------------------
28 .\" * MAIN CONTENT STARTS HERE *
29 .\" -----------------------------------------------------------------
30 .SH "NAME"
31 git-fsmonitor--daemon \- A Built\-in Filesystem Monitor
32 .SH "SYNOPSIS"
33 .sp
34 .nf
35 \fIgit fsmonitor\-\-daemon\fR start
36 \fIgit fsmonitor\-\-daemon\fR run
37 \fIgit fsmonitor\-\-daemon\fR stop
38 \fIgit fsmonitor\-\-daemon\fR status
39 .fi
40 .SH "DESCRIPTION"
41 .sp
42 A daemon to watch the working directory for file and directory changes using platform\-specific filesystem notification facilities\&.
43 .sp
44 This daemon communicates directly with commands like \fBgit status\fR using the \m[blue]\fBsimple IPC\fR\m[]\&\s-2\u[1]\d\s+2 interface instead of the slower \fBgithooks\fR(5) interface\&.
45 .sp
46 This daemon is built into Git so that no third\-party tools are required\&.
47 .SH "OPTIONS"
48 .PP
49 start
50 .RS 4
51 Starts a daemon in the background\&.
52 .RE
53 .PP
54 run
55 .RS 4
56 Runs a daemon in the foreground\&.
57 .RE
58 .PP
59 stop
60 .RS 4
61 Stops the daemon running in the current working directory, if present\&.
62 .RE
63 .PP
64 status
65 .RS 4
66 Exits with zero status if a daemon is watching the current working directory\&.
67 .RE
68 .SH "REMARKS"
69 .sp
70 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 \fBgit status\fR can be increased if they just ask for a summary of changes to the working directory and can avoid scanning the disk\&.
71 .sp
72 When \fBcore\&.fsmonitor\fR is set to \fBtrue\fR (see \fBgit-config\fR(1)) commands, such as \fBgit status\fR, will ask the daemon for changes and automatically start it (if necessary)\&.
73 .sp
74 For more information see the "File System Monitor" section in \fBgit-update-index\fR(1)\&.
75 .SH "CAVEATS"
76 .sp
77 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\&.
78 .sp
79 By default, the fsmonitor daemon refuses to work with network\-mounted repositories; this may be overridden by setting \fBfsmonitor\&.allowRemote\fR to \fBtrue\fR\&. Note, however, that the fsmonitor daemon is not guaranteed to work correctly with all network\-mounted repositories, so such use is considered experimental\&.
80 .sp
81 On Mac OS, the inter\-process communication (IPC) between various Git commands and the fsmonitor daemon is done via a Unix domain socket (UDS) \(em a special type of file \(em 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\&.
82 .sp
83 By default, the socket is created in the \fB\&.git\fR directory\&. However, if the \fB\&.git\fR directory is on a network\-mounted filesystem, it will instead be created at \fB$HOME/\&.git\-fsmonitor\-*\fR unless \fB$HOME\fR itself is on a network\-mounted filesystem, in which case you must set the configuration variable \fBfsmonitor\&.socketDir\fR to the path of a directory on a Mac OS native filesystem in which to create the socket file\&.
84 .sp
85 If none of the above directories (\fB\&.git\fR, \fB$HOME\fR, or \fBfsmonitor\&.socketDir\fR) 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\&.
86 .SH "CONFIGURATION"
87 .sp
88 Everything below this line in this section is selectively included from the \fBgit-config\fR(1) documentation\&. The content is the same as what\(cqs found there:
89 .PP
90 fsmonitor\&.allowRemote
91 .RS 4
92 By default, the fsmonitor daemon refuses to work with network\-mounted repositories\&. Setting
93 \fBfsmonitor\&.allowRemote\fR
95 \fBtrue\fR
96 overrides this behavior\&. Only respected when
97 \fBcore\&.fsmonitor\fR
98 is set to
99 \fBtrue\fR\&.
102 fsmonitor\&.socketDir
103 .RS 4
104 This Mac OS\-specific option, if set, specifies the directory in which to create the Unix domain socket used for communication between the fsmonitor daemon and various Git commands\&. The directory must reside on a native Mac OS filesystem\&. Only respected when
105 \fBcore\&.fsmonitor\fR
106 is set to
107 \fBtrue\fR\&.
109 .SH "GIT"
111 Part of the \fBgit\fR(1) suite
112 .SH "NOTES"
113 .IP " 1." 4
114 simple IPC
115 .RS 4
116 \%git-htmldocs/technical/api-simple-ipc.html