I have some unexpected behavior with 'git repack' on git 2.10.2 and 2.11.0. $ cat /etc/gitconfig [pack] writeBitmapHashCache = true [repack] writeBitmaps = true $ touch objects/pack/pack-3841d81123a96cedeb3c1bd7acf7e29bfba26639.keep $ find objects objects objects/pack objects/pack/pack-3841d81123a96cedeb3c1bd7acf7e29bfba26639.keep objects/pack/pack-3841d81123a96cedeb3c1bd7acf7e29bfba26639.idx objects/pack/pack-3841d81123a96cedeb3c1bd7acf7e29bfba26639.bitmap objects/pack/pack-3841d81123a96cedeb3c1bd7acf7e29bfba26639.pack objects/info objects/info/packs $ git repack -Adfl Counting objects: 16321, done. Delta compression using up to 24 threads. Compressing objects: 100% (16118/16118), done. Writing objects: 100% (16321/16321), done. Reusing bitmaps: 110, done. Selecting bitmap commits: 3257, done. Building bitmaps: 100% (137/137), done. Total 16321 (delta 11568), reused 4507 (delta 0) $ du -sh objects/pack/pack* 100K objects/pack/pack-3841d81123a96cedeb3c1bd7acf7e29bfba26639.bitmap 524K objects/pack/pack-3841d81123a96cedeb3c1bd7acf7e29bfba26639.idx 512 objects/pack/pack-3841d81123a96cedeb3c1bd7acf7e29bfba26639.keep 4.3M objects/pack/pack-3841d81123a96cedeb3c1bd7acf7e29bfba26639.pack 100K objects/pack/pack-6043151bee7bd61bdae6e3a2ba0f13cd1b0277af.bitmap 524K objects/pack/pack-6043151bee7bd61bdae6e3a2ba0f13cd1b0277af.idx 5.8M objects/pack/pack-6043151bee7bd61bdae6e3a2ba0f13cd1b0277af.pack It seems like it's behaving as though I've provided --pack-kept-objects. In order to ensure the .bitmap is created, it repacks everything, including everything in existing .pack files (not respecting .keep). But then it's not deleting the old .pack file (oddly, respecting .keep). What I'd expect it to do here is ignore the 'repack.writeBitmaps = true' value if there's a .keep that needs to be respected. Is this not a correct assumption?