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): |