comparison mercurial/unionrepo.py @ 42824:64c3db458d08

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.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 30 Aug 2019 17:45:38 +0200
parents 64387cd2bf4d
children 62a39c868b20
comparison
equal deleted inserted replaced
42823:5ba8c328a895 42824:64c3db458d08
12 """ 12 """
13 13
14 from __future__ import absolute_import 14 from __future__ import absolute_import
15 15
16 from .i18n import _ 16 from .i18n import _
17 from .node import nullid
18 17
19 from . import ( 18 from . import (
20 changelog, 19 changelog,
21 cmdutil, 20 cmdutil,
22 encoding, 21 encoding,
92 elif rev1 <= self.repotiprev and rev2 <= self.repotiprev: 91 elif rev1 <= self.repotiprev and rev2 <= self.repotiprev:
93 return self.baserevdiff(rev1, rev2) 92 return self.baserevdiff(rev1, rev2)
94 93
95 return mdiff.textdiff(self.revision(rev1), self.revision(rev2)) 94 return mdiff.textdiff(self.revision(rev1), self.revision(rev2))
96 95
97 def revision(self, nodeorrev, _df=None, raw=False): 96 def _revisiondata(self, nodeorrev, _df=None, raw=False):
98 """return an uncompressed revision of a given node or revision
99 number.
100 """
101 if isinstance(nodeorrev, int): 97 if isinstance(nodeorrev, int):
102 rev = nodeorrev 98 rev = nodeorrev
103 node = self.node(rev) 99 node = self.node(rev)
104 else: 100 else:
105 node = nodeorrev 101 node = nodeorrev
106 rev = self.rev(node) 102 rev = self.rev(node)
107 103
108 if node == nullid:
109 return ""
110
111 if rev > self.repotiprev: 104 if rev > self.repotiprev:
112 text = self.revlog2.revision(node) 105 # work around manifestrevlog NOT being a revlog
113 self._revisioncache = (node, rev, text) 106 revlog2 = getattr(self.revlog2, '_revlog', self.revlog2)
114 else: 107 func = revlog2._revisiondata
115 text = self.baserevision(rev) 108 else:
116 # already cached 109 func = super(unionrevlog, self)._revisiondata
117 return text 110 return func(node, _df=_df, raw=raw)
118 111
119 def rawdata(self, nodeorrev, _df=None): 112 def rawdata(self, nodeorrev, _df=None):
120 return self.revision(nodeorrev, _df=_df, raw=True) 113 return self.revision(nodeorrev, _df=_df, raw=True)
121 114
122 def baserevision(self, nodeorrev): 115 def baserevision(self, nodeorrev):