mercurial/revlog.py
changeset 27180 8e7db961535a
parent 27179 b481bf14992d
child 27189 7b6cb7c15109
--- 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)