Da Anonimo (non verificato) , 29 Aprile 2026

Realta dei monorepo

Un monorepo contiene molti progetti in un solo repository — refactor migliori, modifiche atomiche tra progetti, un solo grafo di dipendenze. Il costo: la scala.

Lo stack di performance

  • Sparse checkout (modalita cone).
  • Sparse index (Git 2.37+).
  • Partial clone.
  • Commit-graph + Bloom filter.
  • Fsmonitor.
  • Background maintenance.

Setup one-shot

git clone --filter=blob:none --sparse https://example.com/big.git
cd big
git sparse-checkout init --cone --sparse-index
git sparse-checkout set apps/web libs/ui
git config feature.manyFiles true
git config core.fsmonitor true
git config core.untrackedCache true
git maintenance start

CODEOWNERS e protezione branch

I monorepo si basano su ownership per directory. Combinare i file CODEOWNERS di GitHub/GitLab con review obbligatorie.

CI consapevole dei path

changed=$(git diff --name-only origin/main..HEAD | cut -d/ -f1 | sort -u)
for pkg in $changed; do
  [ -f "$pkg/Makefile" ] && make -C "$pkg" test
done

Strato di tooling

Build orchestrator (Bazel, Buck2, Pants, Nx, Turborepo) consumano il diff e rieseguono solo i target affetti. Scalar di Microsoft (ora incluso in Git) raggruppa molte impostazioni.

Errori comuni

Trattare un monorepo come un piccolo repo e saltare le ottimizzazioni.