Pregunta:
Al usar Emacs en Windows, tengo problemas debido a las invocaciones en segundo plano de git.exe
. Los mismos problemas pueden aplicarse en Linux, aunque las llamadas al proceso más livianas pueden hacerlas imperceptibles.
Síntomas
- De vez en cuando, Windows informará que "Git se ha bloqueado", independientemente de la ventana de escritorio activa.
- En el Administrador de tareas, aparecen uno o dos procesos
git.exe
cada pocos segundos y desaparecen nuevamente. - En Emacs, ocurren micro-tartamudeos aleatorios.
Intentos de diagnóstico
- Usando “Process Explorer” (procexp.exe), se puede encontrar que los procesos
git.exe
son subprocesos de Emacs. - Ocurren cada vez que se abre un archivo dentro de un directorio con versión de git. Más directorios de este tipo → más tartamudeo.
- Hacer
Mx trace-function RET call-process RET
con cuatro archivos abiertos en dos repositorios de git muestra más de 30 invocaciones de git por ciclo. Una gran cantidad de llamadas sincrónicas definitivamente explica la tartamudez.
Respuesta:
Solución
Los problemas resultaron ser causados por la variable de personalización auto-revert-check-vc-info
.
Si esta configuración está activa, el software de control de versiones, git en mi caso, se invocará cada segundo de auto-revert-interval
(predeterminado 5) para cada repositorio, lo que provocará el comportamiento descrito.
Las únicas soluciones que encontré fueron aumentar el intervalo (contraproducente) y deshabilitar auto-revert-check-vc-info
(aceptable para mí).