This is basically a resend from the last round but rebased on 'master'. The old base results in some conflicts with packfile and oid conversion series. This one should reduce merge conflicts on 'pu' to trivial ones. Nguyễn Thái Ngọc Duy (7): t7700: have closing quote of a test at the beginning of line repack: add --keep-pack option gc: add --keep-largest-pack option gc: add gc.bigPackThreshold config gc: handle a corner case in gc.bigPackThreshold gc --auto: exclude base pack if not enough mem to "repack -ad" pack-objects: show some progress when counting kept objects Documentation/config.txt | 12 +++ Documentation/git-gc.txt | 19 +++- Documentation/git-pack-objects.txt | 9 +- Documentation/git-repack.txt | 9 +- builtin/gc.c | 165 +++++++++++++++++++++++++++-- builtin/pack-objects.c | 83 +++++++++++---- builtin/repack.c | 21 +++- config.mak.uname | 1 + git-compat-util.h | 4 + object-store.h | 1 + pack-objects.h | 2 + t/t6500-gc.sh | 32 ++++++ t/t7700-repack.sh | 27 ++++- 13 files changed, 349 insertions(+), 36 deletions(-) -- 2.17.0.367.g5dd2e386c3