comparison mercurial/bundlerepo.py @ 16375:d7d64b89a65c

revlog: allow retrieving contents by revision number
author Matt Mackall <mpm@selenic.com>
date Sun, 08 Apr 2012 12:38:02 -0500
parents 40cc20042fb4
children df347129305d
comparison
equal deleted inserted replaced
16374:29c2ff719715 16375:d7d64b89a65c
93 return revlog.revlog.revdiff(self, rev1, rev2) 93 return revlog.revlog.revdiff(self, rev1, rev2)
94 94
95 return mdiff.textdiff(self.revision(self.node(rev1)), 95 return mdiff.textdiff(self.revision(self.node(rev1)),
96 self.revision(self.node(rev2))) 96 self.revision(self.node(rev2)))
97 97
98 def revision(self, node): 98 def revision(self, nodeorrev):
99 """return an uncompressed revision of a given""" 99 """return an uncompressed revision of a given"""
100 if isinstance(nodeorrev, int):
101 rev = nodeorrev
102 node = self.node(rev)
103 else:
104 node = nodeorrev
105 rev = self.rev(node)
106
100 if node == nullid: 107 if node == nullid:
101 return "" 108 return ""
102 109
103 text = None 110 text = None
104 chain = [] 111 chain = []
105 iter_node = node 112 iter_node = node
106 rev = self.rev(iter_node)
107 # reconstruct the revision if it is from a changegroup 113 # reconstruct the revision if it is from a changegroup
108 while self.inbundle(rev): 114 while self.inbundle(rev):
109 if self._cache and self._cache[0] == iter_node: 115 if self._cache and self._cache[0] == iter_node:
110 text = self._cache[2] 116 text = self._cache[2]
111 break 117 break