L'impostazione bundle
Il tuning dei monorepo coinvolge una dozzina di impostazioni. Invece di memorizzarle e applicarle ognuna, Git fornisce "feature flag" che attivano un bundle coerente.
Cosa imposta
index.version=4.core.untrackedCache=true.
git config feature.manyFiles true
git config --list | grep -E '^(index|core)\.'
Feature sorelle
feature.experimental=true.feature.manyCommits.
Combinare 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
Comportamento tra versioni
L'insieme esatto di impostazioni che feature.manyFiles attiva puo cambiare tra versioni Git.
Verificare l'impatto
time git -c feature.manyFiles=false status
time git -c feature.manyFiles=true status
GIT_TRACE2_PERF=1 git status 2>&1 | head -50
Errori comuni
git update-index --index-version 4
git status
Reset
git config --unset feature.manyFiles
git update-index --index-version 2