El daemon integrado
Git 2.36 introdujo un daemon fsmonitor integrado, eliminando la necesidad de servicios externos como Watchman. Se ejecuta como git fsmonitor--daemon, escucha eventos del SO y responde a las consultas de Git con la lista de rutas cambiadas.
Ciclo de vida
git config core.fsmonitor true
git status
git fsmonitor--daemon status
git fsmonitor--daemon stop
git fsmonitor--daemon run
Cómo se integra
Cuando core.fsmonitor=true, Git pregunta al daemon por las rutas cambiadas. El daemon responde con un delta desde el token de consulta anterior.
Verificar 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 de recursos
sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl fs.inotify.max_user_instances=8192
Múltiples worktrees
Cada worktree obtiene su propio daemon.
Logging
Los logs van a .git/fsmonitor--daemon.log cuando se inicia en debug.
Errores comunes
Ejecutar en filesystems de red donde los eventos de cambio no son confiables (NFS, SMB).
Watchman vs integrado
El daemon integrado es la opción recomendada por defecto.