Le problème des nombreux packs
Un repo avec de nombreux packfiles doit chercher dans chacun pour localiser un objet — une recherche binaire par pack. Avec des dizaines ou centaines de packs (commun dans les repos actifs utilisant le repack géométrique), ce coût O(packs × log objets) s'accumule. Le multi-pack-index (MIDX) consolide tous les indexes de pack en une seule recherche binaire.
Écrire
git multi-pack-index write
git multi-pack-index verify
git multi-pack-index expire
git multi-pack-index repack --batch-size=2g
Configuration
git config core.multiPackIndex true
git config maintenance.multi-pack-index.enabled true
Bitmap MIDX (Git 2.34+)
git multi-pack-index write --bitmap
git config repack.writeBitmaps true
git config pack.writeBitmaps true
Intégration géométrique
MIDX brille apparié au repack géométrique.
Vérification
git multi-pack-index verify
git fsck --multi-pack-index
ls -la .git/objects/pack/multi-pack-index*
Erreurs courantes
Supprimer manuellement les fichiers pack référencés par le MIDX ; utilisez toujours multi-pack-index expire.
Impact sur la performance
Sur un repo avec 50+ packs, le temps de recherche d'objet peut chuter 5-10x.