Par Anonyme (non vérifié) , 29 avril 2026

Le daemon intégré

Git 2.36 a introduit un daemon fsmonitor intégré, éliminant le besoin de services externes comme Watchman. Il s'exécute sous git fsmonitor--daemon, écoute les événements OS et répond aux requêtes Git avec la liste des chemins changés.

Cycle de vie

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

Comment ça s'intègre

Quand core.fsmonitor=true, Git interroge le daemon pour les chemins changés.

Vérifier le 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

Usage des ressources

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

Plusieurs worktrees

Chaque worktree a son propre daemon.

Logging

Les logs vont à .git/fsmonitor--daemon.log en debug.

Erreurs courantes

Lancer sur des filesystems réseau où les événements de changement ne sont pas fiables (NFS, SMB).

Watchman vs intégré

Le daemon intégré est le défaut recommandé.