Da Anonimo (non verificato) , 29 Aprile 2026

Il daemon integrato

Git 2.36 ha introdotto un daemon fsmonitor integrato, eliminando la necessita di servizi esterni come Watchman.

Ciclo di vita

git config core.fsmonitor true
git status
git fsmonitor--daemon status
git fsmonitor--daemon stop
git fsmonitor--daemon run

Come si integra

Quando core.fsmonitor=true, Git chiede al daemon i percorsi modificati. Il daemon risponde con un delta dal token di query precedente.

Verificare lo speedup

time git -c core.fsmonitor=false status
time git -c core.fsmonitor=true status
GIT_TRACE2_PERF=1 git status 2>&1 | grep fsmonitor

Uso risorse

sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl fs.inotify.max_user_instances=8192

Worktree multipli

Ogni worktree ottiene il proprio daemon.

Logging

I log atterrano in .git/fsmonitor--daemon.log quando avviato in debug.

Errori comuni

Eseguire su filesystem di rete dove gli eventi di cambio sono inaffidabili (NFS, SMB).

Watchman vs integrato

Il daemon integrato e il default raccomandato.