# HG changeset patch # User Boris Feld <boris.f...@octobus.net> # Date 1539120395 -7200 # Tue Oct 09 23:26:35 2018 +0200 # Node ID 64d8829dc24e8fc02f228295bb3b330c696c7d34 # Parent cc7eeac5f0d94e27c527524040f2cd1814c8102b # EXP-Topic slim-bundle # Available At https://bitbucket.org/octobus/mercurial-devel/ # hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 64d8829dc24e storage: also use `deltamode argument` for ifiledata
Now that lower level uses such argument, we can propagate the change to higher layers. diff --git a/mercurial/changegroup.py b/mercurial/changegroup.py --- a/mercurial/changegroup.py +++ b/mercurial/changegroup.py @@ -697,12 +697,16 @@ def deltagroup(repo, store, nodes, ischa 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 --git a/mercurial/filelog.py b/mercurial/filelog.py --- a/mercurial/filelog.py +++ b/mercurial/filelog.py @@ -77,11 +77,11 @@ class filelog(object): 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 --git a/mercurial/manifest.py b/mercurial/manifest.py --- a/mercurial/manifest.py +++ b/mercurial/manifest.py @@ -1575,11 +1575,11 @@ class manifestrevlog(object): 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 --git a/mercurial/repository.py b/mercurial/repository.py --- a/mercurial/repository.py +++ b/mercurial/repository.py @@ -606,7 +606,7 @@ class ifiledata(interfaceutil.Interface) 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 @@ -649,10 +649,10 @@ class ifiledata(interfaceutil.Interface) 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 --git a/mercurial/revlog.py b/mercurial/revlog.py --- a/mercurial/revlog.py +++ b/mercurial/revlog.py @@ -2221,7 +2221,8 @@ class revlog(object): 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) @@ -2229,10 +2230,8 @@ class revlog(object): 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 --git a/mercurial/testing/storage.py b/mercurial/testing/storage.py --- a/mercurial/testing/storage.py +++ b/mercurial/testing/storage.py @@ -727,7 +727,8 @@ class ifiledatatests(basetestcase): # 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) @@ -744,7 +745,7 @@ class ifiledatatests(basetestcase): next(gen) gen = f.emitrevisions([node0, node2], revisiondata=True, - deltaprevious=True) + deltamode=repository.CG_DELTAMODE_PREV) rev = next(gen) self.assertEqual(rev.node, node0) _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel