--- a/mercurial/revlog.py Tue Dec 01 16:22:49 2015 -0800
+++ b/mercurial/revlog.py Tue Dec 01 16:06:20 2015 -0800
@@ -1427,7 +1427,12 @@
if cachedelta and self._generaldelta and self._lazydeltabase:
# Assume what we received from the server is a good choice
# build delta will reuse the cache
- delta = builddelta(cachedelta[0])
+ candidatedelta = builddelta(cachedelta[0])
+ if self._isgooddelta(candidatedelta, textlen):
+ delta = candidatedelta
+ elif prev != candidatedelta[3]:
+ # Try against prev to hopefully save us a fulltext.
+ delta = builddelta(prev)
elif self._generaldelta:
if p2r != nullrev and self._aggressivemergedeltas:
delta = builddelta(p1r)