El problema de muchos packs
Un repo con muchos packfiles debe buscar en cada uno para localizar un objeto — una búsqueda binaria por pack. Con docenas o cientos de packs (común en repos activos usando repack geométrico), este costo O(packs × log objetos) se acumula. El multi-pack-index (MIDX) consolida todos los índices de pack en una búsqueda binaria.
Escribir
git multi-pack-index write
git multi-pack-index verify
git multi-pack-index expire
git multi-pack-index repack --batch-size=2g
Configuración
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
Integración geométrica
MIDX brilla emparejado con repack geométrico: muchos packs son normales, la búsqueda permanece rápida, y solo los packs más pequeños se repackean rutinariamente.
Verificación
git multi-pack-index verify
git fsck --multi-pack-index
ls -la .git/objects/pack/multi-pack-index*
Errores comunes
Eliminar manualmente archivos de pack referenciados por el MIDX; siempre usa multi-pack-index expire.
Impacto en rendimiento
En un repo con 50+ packs, el tiempo de búsqueda de objetos puede caer 5-10x.