auto gc: don't write bitmaps for incremental repacks
When git gc --auto does an incremental repack of loose objects, we do not expect to be able to write a bitmap; it is very likely that objects in the new pack will have references to objects outside of the pack. So we shouldn't try to write a bitmap, because doing so will likely issue a warning. This warning was making its way into gc.log. When the gc.log was present, future auto gc runs would refuse to run. Patch by Jeff King. Bug report, test, and commit message by David Turner. Signed-off-by: David Turner <dturner@twosigma.com> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
c3808ca698
commit
bdf56de896
@ -191,6 +191,11 @@ static void add_repack_all_option(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void add_repack_incremental_option(void)
|
||||
{
|
||||
argv_array_push(&repack, "--no-write-bitmap-index");
|
||||
}
|
||||
|
||||
static int need_to_gc(void)
|
||||
{
|
||||
/*
|
||||
@ -208,7 +213,9 @@ static int need_to_gc(void)
|
||||
*/
|
||||
if (too_many_packs())
|
||||
add_repack_all_option();
|
||||
else if (!too_many_loose_objects())
|
||||
else if (too_many_loose_objects())
|
||||
add_repack_incremental_option();
|
||||
else
|
||||
return 0;
|
||||
|
||||
if (run_hook_le(NULL, "pre-auto-gc", NULL))
|
||||
|
Reference in New Issue
Block a user