diff -r 748347e0e8d4 -r 562cfc99e611 mercurial/revlog.py --- a/mercurial/revlog.py Sun Aug 30 13:33:00 2015 -0700 +++ b/mercurial/revlog.py Sun Aug 30 13:34:30 2015 -0700 @@ -1332,6 +1332,14 @@ basecache = self._basecache p1r, p2r = self.rev(p1), self.rev(p2) + # full versions are inserted when the needed deltas + # become comparable to the uncompressed text + if text is None: + textlen = mdiff.patchedsize(self.rawsize(cachedelta[0]), + cachedelta[1]) + else: + textlen = len(text) + # should we try to build a delta? if prev != nullrev: if self._generaldelta: @@ -1345,14 +1353,6 @@ d = builddelta(prev) dist, l, data, base, chainbase, chainlen, compresseddeltalen = d - # full versions are inserted when the needed deltas - # become comparable to the uncompressed text - if text is None: - textlen = mdiff.patchedsize(self.rawsize(cachedelta[0]), - cachedelta[1]) - else: - textlen = len(text) - if not self._isgooddelta(d, textlen): text = buildtext() data = self.compress(text)