Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/unionrepo.py @ 42834: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
42833:5ba8c328a895 | 42834: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): |