summaryrefslogtreecommitdiff
path: root/pack-objects.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2018-08-22 18:17:05 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-08-22 18:17:05 (GMT)
commit29d9e3e2c47dd4b5053b0a98c891878d398463e3 (patch)
tree84ddf805214c29fe3309ca4543b4dd249bfd4bd5 /pack-objects.c
parent7e8bfb0412581daf8f3c89909f1d37844e8610dd (diff)
parent9ac3f0e5b3e4cebe5bc9a24e3adef8b8e64fe692 (diff)
downloadgit-29d9e3e2c47dd4b5053b0a98c891878d398463e3.zip
git-29d9e3e2c47dd4b5053b0a98c891878d398463e3.tar.gz
git-29d9e3e2c47dd4b5053b0a98c891878d398463e3.tar.bz2
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.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/pack-objects.c b/pack-objects.c
index 9270852..6ef87e5 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++;