repack: repack promisor objects if -a or -A is set
authorJonathan Tan <jonathantanmy@google.com>
Wed, 8 Aug 2018 22:34:06 +0000 (15:34 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 9 Aug 2018 16:17:39 +0000 (09:17 -0700)
commit5d19e8138d5f24dbbe8d3736b4e57e117fc099b3
tree7fea50a8902ff71afcb52c58f9ff4a19db1343b2
parent2b958e790b9c6f74442b94bfc0e297dcbba4db82
repack: repack promisor objects if -a or -A is set

Currently, repack does not touch promisor packfiles at all, potentially
causing the performance of repositories that have many such packfiles to
drop. Therefore, repack all promisor objects if invoked with -a or -A.

This is done by an additional invocation of pack-objects on all promisor
objects individually given, which takes care of deduplication and allows
the resulting packfiles to respect flags such as --max-pack-size.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-repack.txt
builtin/repack.c
t/t0410-partial-clone.sh