diff options
author | Junio C Hamano <gitster@pobox.com> | 2019-07-19 11:30:22 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-07-19 11:30:22 -0700 |
commit | d60dc1a0b3829f3c4d69696f43f1c178c0701cdb (patch) | |
tree | 5d27c9ed3cc2068f3a23250bf78afb9f0fa333fd /builtin/repack.c | |
parent | Merge branch 'jk/check-connected-with-alternates' (diff) | |
parent | repack: disable bitmaps-by-default if .keep files exist (diff) | |
download | tgif-d60dc1a0b3829f3c4d69696f43f1c178c0701cdb.tar.xz |
Merge branch 'ew/repack-with-bitmaps-by-default'
Generation of pack bitmaps are now disabled when .keep files exist,
as these are mutually exclusive features.
* ew/repack-with-bitmaps-by-default:
repack: disable bitmaps-by-default if .keep files exist
Diffstat (limited to 'builtin/repack.c')
-rw-r--r-- | builtin/repack.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/builtin/repack.c b/builtin/repack.c index d6abf74608..30982ed2a2 100644 --- a/builtin/repack.c +++ b/builtin/repack.c @@ -89,6 +89,17 @@ 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 @@ -333,9 +344,12 @@ int cmd_repack(int argc, const char **argv, const char *prefix) (unpack_unreachable || (pack_everything & LOOSEN_UNREACHABLE))) die(_("--keep-unreachable and -A are incompatible")); - if (write_bitmaps < 0) + if (write_bitmaps < 0) { write_bitmaps = (pack_everything & ALL_INTO_ONE) && - is_bare_repository(); + is_bare_repository() && + keep_pack_list.nr == 0 && + !has_pack_keep_file(); + } if (pack_kept_objects < 0) pack_kept_objects = write_bitmaps; |