El problema de operaciones de conjunto
Operaciones como clone, fetch y gc necesitan calcular "¿qué objetos son alcanzables desde estos commits?" — un recorrido de grafo que toca cada objeto alcanzable. Los bitmaps de alcanzabilidad almacenan esta respuesta como bitmaps comprimidos, convirtiendo el recorrido en operaciones bitwise OR/AND.
Generación
git repack -adb
git multi-pack-index write --bitmap
git config repack.writeBitmaps true
git config pack.writeBitmaps true
Cómo los usan los servidores
Cuando un cliente clona, el servidor debe enumerar todos los objetos alcanzables. Con bitmaps, esto es un OR sobre los bitmaps de todos los tips de branch.
Bitmaps pseudo-merge (Git 2.45+)
git config pack.writeBitmapPseudoMergeStable true
git config repack.writeBitmapHashCache true
Verificación
ls .git/objects/pack/*.bitmap
git rev-list --use-bitmap-index --count --all
git rev-list --test-bitmap HEAD
Servidor vs cliente
Los bitmaps benefician a ambos lados pero importan más en el servidor.
Errores comunes
Escribir bitmaps en cada gc en repos pequeños — el overhead puede exceder el beneficio.
Números reales
GitHub reportó reducciones del 50-90% en CPU de clone tras habilitar bitmaps. Los tiempos de replicación de GitLab Geo cayeron de horas a minutos.