repack: consider bitmaps when performing repacks
commit5cf2741c5a55cfb63076ce679e4b5842595125c2
authorVicent Marti <tanoku@gmail.com>
Sat, 21 Dec 2013 14:00:31 +0000 (21 09:00 -0500)
committerJunio C Hamano <gitster@pobox.com>
Mon, 30 Dec 2013 20:19:23 +0000 (30 12:19 -0800)
tree9461f3b5c5a2a3ebe4d9b5409c83eb6676d1ae10
parentb77fcd1edca58621627d46af0321a9737b1310f0
repack: consider bitmaps when performing repacks

Since `pack-objects` will write a `.bitmap` file next to the `.pack` and
`.idx` files, this commit teaches `git-repack` to consider the new
bitmap indexes (if they exist) when performing repack operations.

This implies moving old bitmap indexes out of the way if we are
repacking a repository that already has them, and moving the newly
generated bitmap indexes into the `objects/pack` directory, next to
their corresponding packfiles.

Since `git repack` is now capable of handling these `.bitmap` files,
a normal `git gc` run on a repository that has `pack.writebitmaps` set
to true in its config file will generate bitmap indexes as part of the
garbage collection process.

Alternatively, `git repack` can be called with the `-b` switch to
explicitly generate bitmap indexes if you are experimenting
and don't want them on all the time.

Signed-off-by: Vicent Marti <tanoku@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-repack.txt
builtin/repack.c