aboutsummaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorDavid Turner <dturner@twosigma.com>2016-12-28 17:45:41 -0500
committerJunio C Hamano <gitster@pobox.com>2016-12-29 13:45:35 -0800
commitbdf56de896b48d6fe3ad90e92138b5fd6579748d (patch)
tree1be4c69a1fa9b5222cd4cd2ba8a1d27626a394b7 /builtin
parentc3808ca6982b0ad7ee9b87eca9b50b9a24ec08b0 (diff)
downloadgit-bdf56de896b48d6fe3ad90e92138b5fd6579748d.tar.gz
git-bdf56de896b48d6fe3ad90e92138b5fd6579748d.tar.xz
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>
Diffstat (limited to 'builtin')
-rw-r--r--builtin/gc.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/builtin/gc.c b/builtin/gc.c
index 069950d0b..331f21926 100644
--- a/builtin/gc.c
+++ b/builtin/gc.c
@@ -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))