repack: add -F flag to let user choose between --no-reuse-delta/object
commit5c47e1c7c56c60360646367e4067ed344a833b01
authorJan Krüger <jk@jk.gs>
Mon, 27 Sep 2010 12:19:36 +0000 (27 14:19 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 27 Sep 2010 19:39:05 +0000 (27 12:39 -0700)
treed8968cf10ba560e941d8fa3ff4352e8642bc9b8a
parent9027fa9eb7df606b6658dd48a40bb993ce222ddd
repack: add -F flag to let user choose between --no-reuse-delta/object

In 479b56ba ('make "repack -f" imply "pack-objects --no-reuse-object"'),
git repack -f was changed to include recompressing all objects on the
zlib level on the assumption that if the user wants to spend that much
time already, some more time won't hurt (and recompressing is useful if
the user changed the zlib compression level).

However, "some more time" can be quite long with very big repositories,
so some users are going to appreciate being able to choose. If we are
going to give them the choice, --no-reuse-object will probably be
interesting a lot less frequently than --no-reuse-delta. Hence, this
reverts -f to the old behaviour (--no-reuse-delta) and adds a new -F
option that replaces the current -f.

Measurements taken using this patch on a current clone of git.git
indicate a 17% decrease in time being made available to users:

git repack -Adf  34.84s user 0.56s system 145% cpu 24.388 total
git repack -AdF  38.79s user 0.56s system 133% cpu 29.394 total

Signed-off-by: Jan Krüger <jk@jk.gs>
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-repack.txt
git-repack.sh