Skip to content

Commit

Permalink
fast-import: use the diff_delta() max_delta_size argument
Browse files Browse the repository at this point in the history
This let diff_delta() abort early if it is going to bust the given
size limit.  Also, only objects larger than 20 bytes are considered
as objects smaller than that are most certainly going to produce
larger deltas than the original object due to the additional headers.

Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Nicolas Pitre authored and Junio C Hamano committed Feb 17, 2010
1 parent 8c2ca8d commit b500d5e
Showing 1 changed file with 2 additions and 6 deletions.
8 changes: 2 additions & 6 deletions fast-import.c
Original file line number Diff line number Diff line change
Expand Up @@ -1041,14 +1041,10 @@ static int store_object(
return 1;
}

if (last && last->data.buf && last->depth < max_depth) {
if (last && last->data.buf && last->depth < max_depth && dat->len > 20) {
delta = diff_delta(last->data.buf, last->data.len,
dat->buf, dat->len,
&deltalen, 0);
if (delta && deltalen >= dat->len) {
free(delta);
delta = NULL;
}
&deltalen, dat->len - 20);
} else
delta = NULL;

Expand Down

0 comments on commit b500d5e

Please sign in to comment.