diff options
author | Nicolas Pitre <nico@cam.org> | 2006-12-06 23:01:00 -0500 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-12-06 21:47:07 -0800 |
commit | 46732fae3d049254f4f12b8a716cf56159277eda (patch) | |
tree | 4694091ba5367ab41cfbeb39878f434d32899d0d | |
parent | cd976f5c52694acb4b23c3f2425ed4f0a47ec799 (diff) | |
download | git-46732fae3d049254f4f12b8a716cf56159277eda.tar.gz git-46732fae3d049254f4f12b8a716cf56159277eda.tar.xz |
change the unpack limit treshold to a saner value
Currently the treshold is 5000. The likelihood of this value to ever be
crossed for a single push is really small making it not really useful.
The optimal treshold for a pure space saving on a filesystem with 4kb
blocks is 3. However this is likely to create many small packs
concentrating a large number of files in a single directory compared to
the same objects which are spread over 256 directories when loose. This
means we would need 512 objects per pack on average to approximagte the
same directory cost (a pack has 2 files because of the index).
But 512 is a really high value just like 5000 since most pushes are
unlikely to have that many objects. So let's try with a value of 100
which should have a good balance between small pushes going to be
exploded into loose objects and large pushes kept as whole packs.
This is not a replacement for periodic repacks of course.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | receive-pack.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/receive-pack.c b/receive-pack.c index a20bc924d..e76d9aea3 100644 --- a/receive-pack.c +++ b/receive-pack.c @@ -11,7 +11,7 @@ static const char receive_pack_usage[] = "git-receive-pack <git-dir>"; static int deny_non_fast_forwards = 0; -static int unpack_limit = 5000; +static int unpack_limit = 100; static int report_status; static char capabilities[] = " report-status delete-refs "; |