Da Anonimo (non verificato) , 29 Aprile 2026

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.

Da Anonimo (non verificato) , 29 Aprile 2026

Versioni dell'index

L'index di Git ha avuto vari formati. Versione 2 e la baseline storica. Versione 3 ha aggiunto skip-worktree. Versione 4 (raccomandata per repo grandi) aggiunge compressione del prefisso dei percorsi.

Impostazione

git config index.version 4
git update-index --index-version 4

Perche la versione 4 aiuta

Per monorepo con percorsi profondi, i prefissi ripetuti dominano la dimensione dell'index. V4 memorizza ogni percorso come delta dal precedente, riducendo l'index del 30-60% sui monorepo reali.

Da Anonimo (non verificato) , 29 Aprile 2026

Il daemon integrato

Git 2.36 ha introdotto un daemon fsmonitor integrato, eliminando la necessita di servizi esterni come Watchman.

Ciclo di vita

git config core.fsmonitor true
git status
git fsmonitor--daemon status
git fsmonitor--daemon stop
git fsmonitor--daemon run

Come si integra

Quando core.fsmonitor=true, Git chiede al daemon i percorsi modificati. Il daemon risponde con un delta dal token di query precedente.

Da Anonimo (non verificato) , 29 Aprile 2026

Il problema dell'attraversamento status

git status confronta il working tree con l'index, attraversando le info stat di ogni file tracciato. Su un repo da un milione di file questo puo prendere secondi. Fsmonitor usa le notifiche di cambio file del sistema operativo (FSEvents su macOS, ReadDirectoryChangesW su Windows, inotify su Linux).

Da Anonimo (non verificato) , 29 Aprile 2026

Cos'e Scalar

Scalar (originariamente uno strumento Microsoft, incluso in Git da 2.38+) e un wrapper che applica l'intero stack di performance — partial clone, sparse checkout, sparse index, fsmonitor, commit-graph, MIDX, repack geometrico, manutenzione in background — con un solo comando.

Da Anonimo (non verificato) , 29 Aprile 2026

Recupero pigro degli oggetti

Il clone parziale (--filter) consente a un clone di omettere alcuni oggetti dal trasferimento iniziale, recuperandoli pigrame quando necessario. Il promisor remote mantiene la sua promessa di fornirli su richiesta.

Da Anonimo (non verificato) , 29 Aprile 2026

Perche l'index e lento

Anche con sparse checkout, l'index per default contiene una voce per file nell'intero repo. Lo sparse index (Git 2.37+) sostituisce le directory escluse con una singola voce di tree, riducendo l'index di 100x o piu.

Abilitare

git sparse-checkout init --cone --sparse-index
git config index.sparse true
git update-index --sparse

Come funziona

Ogni directory esclusa e rappresentata nell'index come una voce di modo 040000 (tree).

Da Anonimo (non verificato) , 29 Aprile 2026

Il working set del monorepo

In un monorepo, gli sviluppatori individuali toccano di solito un piccolo sottoinsieme — un'app o due, una manciata di librerie. Il sparse checkout popola solo quei percorsi nel working tree.