Browse Source

Do not try futile object pairs when repacking.

In the repacking window, if both objects we are looking at already came
from the same (old) pack-file, don't bother delta'ing them against each
other.

That means that we'll still always check for better deltas for (and
against!) _unpacked_ objects, but assuming incremental repacks, you'll
avoid the delta creation 99% of the time.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Linus Torvalds 19 years ago committed by Junio C Hamano
parent
commit
51d1e83f91
  1. 7
      pack-objects.c

7
pack-objects.c

@ -987,6 +987,13 @@ static int try_delta(struct unpacked *trg, struct unpacked *src, @@ -987,6 +987,13 @@ static int try_delta(struct unpacked *trg, struct unpacked *src,
if (trg_entry->preferred_base)
return -1;

/*
* We do not bother to try a delta that we discarded
* on an earlier try.
*/
if (trg_entry->in_pack && trg_entry->in_pack == src_entry->in_pack)
return 0;

/*
* If the current object is at pack edge, take the depth the
* objects that depend on the current object into account --

Loading…
Cancel
Save