diff --git a/builtin/repack.c b/builtin/repack.c index db93ca3660..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 @@ -346,13 +335,11 @@ int cmd_repack(int argc, const char **argv, const char *prefix) if (write_bitmaps < 0) { if (!(pack_everything & ALL_INTO_ONE) || - !is_bare_repository() || - keep_pack_list.nr != 0 || - has_pack_keep_file()) + !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)); diff --git a/t/t7700-repack.sh b/t/t7700-repack.sh index 54f815b8b9..4e855bc21b 100755 --- a/t/t7700-repack.sh +++ b/t/t7700-repack.sh @@ -245,7 +245,8 @@ test_expect_success 'no bitmaps created if .keep files present' ' keep=${pack%.pack}.keep && test_when_finished "rm -f \"\$keep\"" && >"$keep" && - git -C bare.git repack -ad && + git -C bare.git repack -ad 2>stderr && + test_must_be_empty stderr && find bare.git/objects/pack/ -type f -name "*.bitmap" >actual && test_must_be_empty actual '