# HG changeset patch # User Pierre-Yves David # Date 1569582997 -7200 # Node ID 8a31294fa25c0613e2f1f3f4587c0c120fe43c7e # Parent 6510c78308387f7f13b5e9e34cbc1f062381b17d upgrade: fix DELTAREUSEFULLADD implementation in revlog.clone If we do a full addition, we need to start from the full text. Differential Revision: https://phab.mercurial-scm.org/D6901 diff -r 6510c7830838 -r 8a31294fa25c mercurial/revlog.py --- a/mercurial/revlog.py Fri Sep 27 13:10:47 2019 +0200 +++ b/mercurial/revlog.py Fri Sep 27 13:16:37 2019 +0200 @@ -2437,21 +2437,21 @@ # the revlog chunk is a delta. cachedelta = None rawtext = None - if (deltareuse != self.DELTAREUSEFULLADD and destrevlog._lazydelta): - dp = self.deltaparent(rev) - if dp != nullrev: - cachedelta = (dp, bytes(self._chunk(rev))) - - if not cachedelta: - rawtext = self.rawdata(rev) - - if deltareuse == self.DELTAREUSEFULLADD: - destrevlog.addrevision(rawtext, tr, linkrev, p1, p2, + text = self.revision(rev) + destrevlog.addrevision(text, tr, linkrev, p1, p2, cachedelta=cachedelta, node=node, flags=flags, deltacomputer=deltacomputer) else: + if destrevlog._lazydelta: + dp = self.deltaparent(rev) + if dp != nullrev: + cachedelta = (dp, bytes(self._chunk(rev))) + + if not cachedelta: + rawtext = self.rawdata(rev) + ifh = destrevlog.opener(destrevlog.indexfile, 'a+', checkambig=False) dfh = None