summaryrefslogtreecommitdiff
path: root/builtin/repack.c
diff options
context:
space:
mode:
authorLibravatar Jeff King <peff@peff.net>2019-07-31 01:39:27 -0400
committerLibravatar Junio C Hamano <gitster@pobox.com>2019-07-31 13:15:51 -0700
commit25575015cafbbb8554ff6ac82236c2a062055ae6 (patch)
treed61b68d0810731759e506518bd84afec461188c8 /builtin/repack.c
parentt7700: clean up .keep file in bitmap-writing test (diff)
downloadtgif-25575015cafbbb8554ff6ac82236c2a062055ae6.tar.xz
repack: silence warnings when auto-enabled bitmaps cannot be built
Depending on various config options, a full repack may not be able to build a reachability bitmap index (e.g., if pack.packSizeLimit forces us to write multiple packs). In these cases pack-objects may write a warning to stderr. Since 36eba0323d (repack: enable bitmaps by default on bare repos, 2019-03-14), we may generate these warnings even when the user did not explicitly ask for bitmaps. This has two downsides: - it can be confusing, if they don't know what bitmaps are - a daemonized auto-gc will write this to its log file, and the presence of the warning may suppress further auto-gc (until gc.logExpiry has elapsed) Let's have repack communicate to pack-objects that the choice to turn on bitmaps was not made explicitly by the user, which in turn allows pack-objects to suppress these warnings. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/repack.c')
-rw-r--r--builtin/repack.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/builtin/repack.c b/builtin/repack.c
index 30982ed2a2..db93ca3660 100644
--- a/builtin/repack.c
+++ b/builtin/repack.c
@@ -345,13 +345,14 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
die(_("--keep-unreachable and -A are incompatible"));
if (write_bitmaps < 0) {
- write_bitmaps = (pack_everything & ALL_INTO_ONE) &&
- is_bare_repository() &&
- keep_pack_list.nr == 0 &&
- !has_pack_keep_file();
+ if (!(pack_everything & ALL_INTO_ONE) ||
+ !is_bare_repository() ||
+ keep_pack_list.nr != 0 ||
+ has_pack_keep_file())
+ write_bitmaps = 0;
}
if (pack_kept_objects < 0)
- pack_kept_objects = write_bitmaps;
+ pack_kept_objects = !!write_bitmaps;
if (write_bitmaps && !(pack_everything & ALL_INTO_ONE))
die(_(incremental_bitmap_conflict_error));
@@ -375,8 +376,10 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
argv_array_push(&cmd.args, "--indexed-objects");
if (repository_format_partial_clone)
argv_array_push(&cmd.args, "--exclude-promisor-objects");
- if (write_bitmaps)
+ if (write_bitmaps > 0)
argv_array_push(&cmd.args, "--write-bitmap-index");
+ else if (write_bitmaps < 0)
+ argv_array_push(&cmd.args, "--write-bitmap-index-quiet");
if (use_delta_islands)
argv_array_push(&cmd.args, "--delta-islands");