Der eingebaute Daemon
Git 2.36 fuhrte einen eingebauten fsmonitor-Daemon ein, der die Notwendigkeit externer Dienste wie Watchman eliminiert.
Lebenszyklus
git config core.fsmonitor true
git status
git fsmonitor--daemon status
git fsmonitor--daemon stop
git fsmonitor--daemon run
Wie er sich integriert
Wenn core.fsmonitor=true, fragt Git den Daemon nach geanderten Pfaden.
Speedup verifizieren
time git -c core.fsmonitor=false status
time git -c core.fsmonitor=true status
GIT_TRACE2_PERF=1 git status 2>&1 | grep fsmonitor
Ressourcennutzung
sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl fs.inotify.max_user_instances=8192
Mehrere Worktrees
Jeder Worktree erhalt seinen eigenen Daemon.
Logging
Logs landen in .git/fsmonitor--daemon.log, wenn im Debug gestartet.
Haufige Fehler
Auf Netzwerk-Dateisystemen ausfuhren, wo Anderungs-Events unzuverlassig sind (NFS, SMB).
Watchman vs eingebaut
Der eingebaute Daemon ist die empfohlene Standardeinstellung.