diff options
Diffstat (limited to 'builtin/repack.c')
-rw-r--r-- | builtin/repack.c | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/builtin/repack.c b/builtin/repack.c index 30982ed2a2..632c0c0a79 100644 --- a/builtin/repack.c +++ b/builtin/repack.c @@ -89,17 +89,6 @@ static void remove_pack_on_signal(int signo) raise(signo); } -static int has_pack_keep_file(void) -{ - struct packed_git *p; - - for (p = get_all_packs(the_repository); p; p = p->next) { - if (p->pack_keep) - return 1; - } - return 0; -} - /* * Adds all packs hex strings to the fname list, which do not * have a corresponding .keep file. These packs are not to @@ -345,13 +334,12 @@ 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()) + write_bitmaps = 0; } if (pack_kept_objects < 0) - pack_kept_objects = write_bitmaps; + pack_kept_objects = write_bitmaps > 0; if (write_bitmaps && !(pack_everything & ALL_INTO_ONE)) die(_(incremental_bitmap_conflict_error)); @@ -375,8 +363,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"); |