# HG changeset patch # User Boris Feld # Date 1539120395 -7200 # Node ID 6a917075535aa9648a8aecb951d08e51c9159b4b # Parent 59a870a4ad6ee47266990f97bc57a4b8a28b42ae storage: also use `deltamode argument` for ifiledata Now that lower level uses such argument, we can propagate the change to higher layers. diff -r 59a870a4ad6e -r 6a917075535a mercurial/changegroup.py --- a/mercurial/changegroup.py Tue Oct 09 22:02:01 2018 +0200 +++ b/mercurial/changegroup.py Tue Oct 09 23:26:35 2018 +0200 @@ -697,12 +697,16 @@ progress = repo.ui.makeprogress(topic, unit=_('chunks'), total=len(nodes)) + deltamode = repository.CG_DELTAMODE_STD + if forcedeltaparentprev: + deltamode = repository.CG_DELTAMODE_PREV + revisions = store.emitrevisions( nodes, nodesorder=nodesorder, revisiondata=True, assumehaveparentrevisions=not ellipses, - deltaprevious=forcedeltaparentprev) + deltamode=deltamode) for i, revision in enumerate(revisions): if progress: diff -r 59a870a4ad6e -r 6a917075535a mercurial/filelog.py --- a/mercurial/filelog.py Tue Oct 09 22:02:01 2018 +0200 +++ b/mercurial/filelog.py Tue Oct 09 23:26:35 2018 +0200 @@ -92,11 +92,11 @@ def emitrevisions(self, nodes, nodesorder=None, revisiondata=False, assumehaveparentrevisions=False, - deltaprevious=False): + deltamode=repository.CG_DELTAMODE_STD): return self._revlog.emitrevisions( nodes, nodesorder=nodesorder, revisiondata=revisiondata, assumehaveparentrevisions=assumehaveparentrevisions, - deltaprevious=deltaprevious) + deltamode=deltamode) def addrevision(self, revisiondata, transaction, linkrev, p1, p2, node=None, flags=revlog.REVIDX_DEFAULT_FLAGS, diff -r 59a870a4ad6e -r 6a917075535a mercurial/manifest.py --- a/mercurial/manifest.py Tue Oct 09 22:02:01 2018 +0200 +++ b/mercurial/manifest.py Tue Oct 09 23:26:35 2018 +0200 @@ -1575,11 +1575,11 @@ def emitrevisions(self, nodes, nodesorder=None, revisiondata=False, assumehaveparentrevisions=False, - deltaprevious=False): + deltamode=repository.CG_DELTAMODE_STD): return self._revlog.emitrevisions( nodes, nodesorder=nodesorder, revisiondata=revisiondata, assumehaveparentrevisions=assumehaveparentrevisions, - deltaprevious=deltaprevious) + deltamode=deltamode) def addgroup(self, deltas, linkmapper, transaction, addrevisioncb=None): return self._revlog.addgroup(deltas, linkmapper, transaction, diff -r 59a870a4ad6e -r 6a917075535a mercurial/repository.py --- a/mercurial/repository.py Tue Oct 09 22:02:01 2018 +0200 +++ b/mercurial/repository.py Tue Oct 09 23:26:35 2018 +0200 @@ -618,7 +618,7 @@ nodesorder=None, revisiondata=False, assumehaveparentrevisions=False, - deltaprevious=False): + deltamode=CG_DELTAMODE_STD): """Produce ``irevisiondelta`` for revisions. Given an iterable of nodes, emits objects conforming to the @@ -661,10 +661,10 @@ The ``linknode`` attribute on the returned ``irevisiondelta`` may not be set and it is the caller's responsibility to resolve it, if needed. - If ``deltaprevious`` is True and revision data is requested, all - revision data should be emitted as deltas against the revision - emitted just prior. The initial revision should be a delta against - its 1st parent. + If ``deltamode`` is CG_DELTAMODE_PREV and revision data is requested, + all revision data should be emitted as deltas against the revision + emitted just prior. The initial revision should be a delta against its + 1st parent. """ class ifilemutation(interfaceutil.Interface): diff -r 59a870a4ad6e -r 6a917075535a mercurial/revlog.py --- a/mercurial/revlog.py Tue Oct 09 22:02:01 2018 +0200 +++ b/mercurial/revlog.py Tue Oct 09 23:26:35 2018 +0200 @@ -2205,7 +2205,8 @@ return res def emitrevisions(self, nodes, nodesorder=None, revisiondata=False, - assumehaveparentrevisions=False, deltaprevious=False): + assumehaveparentrevisions=False, + deltamode=repository.CG_DELTAMODE_STD): if nodesorder not in ('nodes', 'storage', None): raise error.ProgrammingError('unhandled value for nodesorder: %s' % nodesorder) @@ -2213,10 +2214,8 @@ if nodesorder is None and not self._generaldelta: nodesorder = 'storage' - deltamode = repository.CG_DELTAMODE_STD - if deltaprevious: - deltamode = repository.CG_DELTAMODE_PREV - elif not self._storedeltachains: + if (not self._storedeltachains and + deltamode != repository.CG_DELTAMODE_PREV): deltamode = repository.CG_DELTAMODE_FULL return storageutil.emitrevisions( diff -r 59a870a4ad6e -r 6a917075535a mercurial/testing/storage.py --- a/mercurial/testing/storage.py Tue Oct 09 22:02:01 2018 +0200 +++ b/mercurial/testing/storage.py Tue Oct 09 23:26:35 2018 +0200 @@ -741,7 +741,8 @@ # forceprevious=True forces a delta against the previous revision. # Special case for initial revision. - gen = f.emitrevisions([node0], revisiondata=True, deltaprevious=True) + gen = f.emitrevisions([node0], revisiondata=True, + deltamode=repository.CG_DELTAMODE_PREV) rev = next(gen) self.assertEqual(rev.node, node0) @@ -758,7 +759,7 @@ next(gen) gen = f.emitrevisions([node0, node2], revisiondata=True, - deltaprevious=True) + deltamode=repository.CG_DELTAMODE_PREV) rev = next(gen) self.assertEqual(rev.node, node0)