Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/revlog.py @ 43000:8a31294fa25c
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
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 27 Sep 2019 13:16:37 +0200 |
parents | 6510c7830838 |
children | 188476e48f51 |
comparison
equal
deleted
inserted
replaced
42999:6510c7830838 | 43000:8a31294fa25c |
---|---|
2435 | 2435 |
2436 # (Possibly) reuse the delta from the revlog if allowed and | 2436 # (Possibly) reuse the delta from the revlog if allowed and |
2437 # the revlog chunk is a delta. | 2437 # the revlog chunk is a delta. |
2438 cachedelta = None | 2438 cachedelta = None |
2439 rawtext = None | 2439 rawtext = None |
2440 if (deltareuse != self.DELTAREUSEFULLADD and destrevlog._lazydelta): | |
2441 dp = self.deltaparent(rev) | |
2442 if dp != nullrev: | |
2443 cachedelta = (dp, bytes(self._chunk(rev))) | |
2444 | |
2445 if not cachedelta: | |
2446 rawtext = self.rawdata(rev) | |
2447 | |
2448 | |
2449 if deltareuse == self.DELTAREUSEFULLADD: | 2440 if deltareuse == self.DELTAREUSEFULLADD: |
2450 destrevlog.addrevision(rawtext, tr, linkrev, p1, p2, | 2441 text = self.revision(rev) |
2442 destrevlog.addrevision(text, tr, linkrev, p1, p2, | |
2451 cachedelta=cachedelta, | 2443 cachedelta=cachedelta, |
2452 node=node, flags=flags, | 2444 node=node, flags=flags, |
2453 deltacomputer=deltacomputer) | 2445 deltacomputer=deltacomputer) |
2454 else: | 2446 else: |
2447 if destrevlog._lazydelta: | |
2448 dp = self.deltaparent(rev) | |
2449 if dp != nullrev: | |
2450 cachedelta = (dp, bytes(self._chunk(rev))) | |
2451 | |
2452 if not cachedelta: | |
2453 rawtext = self.rawdata(rev) | |
2454 | |
2455 ifh = destrevlog.opener(destrevlog.indexfile, 'a+', | 2455 ifh = destrevlog.opener(destrevlog.indexfile, 'a+', |
2456 checkambig=False) | 2456 checkambig=False) |
2457 dfh = None | 2457 dfh = None |
2458 if not destrevlog._inline: | 2458 if not destrevlog._inline: |
2459 dfh = destrevlog.opener(destrevlog.datafile, 'a+') | 2459 dfh = destrevlog.opener(destrevlog.datafile, 'a+') |