diff options
author | Junio C Hamano <gitster@pobox.com> | 2018-08-22 21:17:05 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-08-22 21:17:05 +0300 |
commit | 29d9e3e2c47dd4b5053b0a98c891878d398463e3 (patch) | |
tree | 84ddf805214c29fe3309ca4543b4dd249bfd4bd5 /pack-objects.c | |
parent | 7e8bfb0412581daf8f3c89909f1d37844e8610dd (diff) | |
parent | 9ac3f0e5b3e4cebe5bc9a24e3adef8b8e64fe692 (diff) |
Merge branch 'nd/pack-deltify-regression-fix'
In a recent update in 2.18 era, "git pack-objects" started
producing a larger than necessary packfiles by missing
opportunities to use large deltas.
* nd/pack-deltify-regression-fix:
pack-objects: fix performance issues on packing large deltas
Diffstat (limited to 'pack-objects.c')
-rw-r--r-- | pack-objects.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/pack-objects.c b/pack-objects.c index 92708522e7..6ef87e5683 100644 --- a/pack-objects.c +++ b/pack-objects.c @@ -146,6 +146,8 @@ void prepare_packing_data(struct packing_data *pdata) pdata->oe_size_limit = git_env_ulong("GIT_TEST_OE_SIZE", 1U << OE_SIZE_BITS); + pdata->oe_delta_size_limit = git_env_ulong("GIT_TEST_OE_DELTA_SIZE", + 1UL << OE_DELTA_SIZE_BITS); } struct object_entry *packlist_alloc(struct packing_data *pdata, @@ -160,6 +162,8 @@ struct object_entry *packlist_alloc(struct packing_data *pdata, if (!pdata->in_pack_by_idx) REALLOC_ARRAY(pdata->in_pack, pdata->nr_alloc); + if (pdata->delta_size) + REALLOC_ARRAY(pdata->delta_size, pdata->nr_alloc); } new_entry = pdata->objects + pdata->nr_objects++; |