Bueno, me atrevería a adivinar que está usando una combinación de llamadas stat()
para averiguar qué parece haber cambiado, y luego, a su vez, asegurarse de usar este motor diferido que este es el caso.
Puede ver el código del motor diff here para tener una idea. Recorrí la base de código para asegurarme de que el comando de estado efectivamente incluye este código (¡parece que muchas cosas sí!) Y en realidad todo esto tiene mucho sentido cuando se sabe que Git funciona bastante mal en Windows, donde está utilizando una capa de emulación para realizar estas llamadas de tipo POSIX: es un orden de magnitud más lento hacer un git status
en esa plataforma.
De todos modos, antes de leer todo el código de arriba a abajo (que puedo ver más adelante si tengo tiempo!) Eso es todo lo que puedo tomar por ahora ... tal vez alguien puede ser más definitivo si han trabajado con la base de código
Nota: otra aceleración posible proviene del uso juicioso de las funciones inline
donde claramente tiene sentido, puede ver esto claramente en los encabezados.
[editar: here ver una explicación de stat()
]
Puede ser diferente para diferentes plataformas. Estoy particularmente interesado en cómo lo hace Git/Windows – Pacerier