diff -r 5482c6b826f4 -r b1c839659140 mercurial/revlog.py --- a/mercurial/revlog.py Sat Oct 30 02:47:34 2010 -0500 +++ b/mercurial/revlog.py Sat Oct 30 02:47:34 2010 -0500 @@ -1194,15 +1194,14 @@ d = None p1r, p2r = self.rev(p1), self.rev(p2) - if self._parentdelta: - deltarev, deltanode = p1r, p1 - flags = REVIDX_PARENTDELTA - else: - deltarev, deltanode = prev, self.node(prev) - # should we try to build a delta? - if deltarev != nullrev: - d = builddelta(deltarev) + if prev != nullrev: + d = builddelta(prev) + if self._parentdelta and prev != p1r: + d2 = builddelta(p1r) + if d2 < d: + d = d2 + flags = REVIDX_PARENTDELTA dist, l, data, base = d # full versions are inserted when the needed deltas