# HG changeset patch # User Pierre-Yves David # Date 1567179938 -7200 # Node ID 64c3db458d0814896a2d03e41a5b51a1a49a76e1 # Parent 5ba8c328a89580432e622bab08bc40432e0341fc unionrepo: use a lower level overide in unionrepo too The unionrepo class also have a strange `baserevision` hack, let's try to get ride of it too. diff -r 5ba8c328a895 -r 64c3db458d08 mercurial/unionrepo.py --- a/mercurial/unionrepo.py Fri Aug 30 18:12:16 2019 +0200 +++ b/mercurial/unionrepo.py Fri Aug 30 17:45:38 2019 +0200 @@ -14,7 +14,6 @@ from __future__ import absolute_import from .i18n import _ -from .node import nullid from . import ( changelog, @@ -94,10 +93,7 @@ return mdiff.textdiff(self.revision(rev1), self.revision(rev2)) - def revision(self, nodeorrev, _df=None, raw=False): - """return an uncompressed revision of a given node or revision - number. - """ + def _revisiondata(self, nodeorrev, _df=None, raw=False): if isinstance(nodeorrev, int): rev = nodeorrev node = self.node(rev) @@ -105,16 +101,13 @@ node = nodeorrev rev = self.rev(node) - if node == nullid: - return "" - if rev > self.repotiprev: - text = self.revlog2.revision(node) - self._revisioncache = (node, rev, text) + # work around manifestrevlog NOT being a revlog + revlog2 = getattr(self.revlog2, '_revlog', self.revlog2) + func = revlog2._revisiondata else: - text = self.baserevision(rev) - # already cached - return text + func = super(unionrevlog, self)._revisiondata + return func(node, _df=_df, raw=raw) def rawdata(self, nodeorrev, _df=None): return self.revision(nodeorrev, _df=_df, raw=True)