diff --git a/pack-objects.c b/pack-objects.c
index bed2497b7974bed96a6ac9478807059cb8de17cb..6e1767652c886d48781f7fbeb9599d57b1de09c7 100644 (file)
--- a/pack-objects.c
+++ b/pack-objects.c
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 --