Mercurial > public > mercurial-scm > hg
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 |