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
This commit is contained in:
Junio C Hamano
2018-08-22 11:17:05 -07:00
5 changed files with 58 additions and 15 deletions

View File

@ -2041,10 +2041,6 @@ static int try_delta(struct unpacked *trg, struct unpacked *src,
delta_buf = create_delta(src->index, trg->data, trg_size, &delta_size, max_size);
if (!delta_buf)
return 0;
if (delta_size >= (1U << OE_DELTA_SIZE_BITS)) {
free(delta_buf);
return 0;
}
if (DELTA(trg_entry)) {
/* Prefer only shallower same-sized deltas. */
@ -2303,6 +2299,7 @@ static void init_threaded_search(void)
pthread_mutex_init(&cache_mutex, NULL);
pthread_mutex_init(&progress_mutex, NULL);
pthread_cond_init(&progress_cond, NULL);
pthread_mutex_init(&to_pack.lock, NULL);
old_try_to_free_routine = set_try_to_free_routine(try_to_free_from_threads);
}