El bundle de configuración
Afinar monorepos involucra una docena de configuraciones. En lugar de memorizar y aplicar cada una, Git proporciona "feature flags" que activan un bundle coherente. feature.manyFiles es el más útil: una sola perilla que habilita todas las optimizaciones de índice y stat.
Qué establece
index.version=4— compresión de prefijos.core.untrackedCache=true— cachear listados de untracked.- (Implícito) rutas de lectura de índice recomendadas.
git config feature.manyFiles true
git config --list | grep -E '^(index|core)\.'
Características hermanas
feature.experimental=true— activa flags de rendimiento de vanguardia.- Histórico:
feature.manyCommits.
Combinar con stack monorepo
git config feature.manyFiles true
git config core.fsmonitor true
git config core.commitGraph true
git sparse-checkout init --cone --sparse-index
git maintenance start
Comportamiento entre versiones
El conjunto exacto de configuraciones que feature.manyFiles activa puede cambiar entre versiones de Git.
Verificar impacto
time git -c feature.manyFiles=false status
time git -c feature.manyFiles=true status
GIT_TRACE2_PERF=1 git status 2>&1 | head -50
Errores comunes
git update-index --index-version 4
git status
Reset
git config --unset feature.manyFiles
git update-index --index-version 2