diff --git a/pack-objects.c b/pack-objects.c index bed2497b7..6e1767652 100644 --- a/pack-objects.c +++ b/pack-objects.c @@ -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 --