Mercurial > public > mercurial-scm > hg
comparison mercurial/revlog.py @ 11995:ff84cd2bdfaf
revlog.revision(): minor cleanup
Rename some variables, making the name more obvious (in particular "cache" was
actually two different variable.
Move code around, moving the index preloading before the deltachain computation,
without that index preloading was useless (everything was read in deltachain).
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Fri, 20 Aug 2010 00:17:50 +0200 |
parents | 7c3aa579d98a |
children | 3195cf01dfb9 |
comparison
equal
deleted
inserted
replaced
11993:9bce7ed50c9a | 11995:ff84cd2bdfaf |
---|---|
1054 return mdiff.textdiff(self.revision(self.node(rev1)), | 1054 return mdiff.textdiff(self.revision(self.node(rev1)), |
1055 self.revision(self.node(rev2))) | 1055 self.revision(self.node(rev2))) |
1056 | 1056 |
1057 def revision(self, node): | 1057 def revision(self, node): |
1058 """return an uncompressed revision of a given node""" | 1058 """return an uncompressed revision of a given node""" |
1059 cache = nullrev | 1059 cachedrev = nullrev |
1060 if node == nullid: | 1060 if node == nullid: |
1061 return "" | 1061 return "" |
1062 if self._cache: | 1062 if self._cache: |
1063 cache = self._cache[1] | |
1064 if self._cache[0] == node: | 1063 if self._cache[0] == node: |
1065 return self._cache[2] | 1064 return self._cache[2] |
1065 cachedrev = self._cache[1] | |
1066 | 1066 |
1067 # look up what we need to read | 1067 # look up what we need to read |
1068 text = None | 1068 text = None |
1069 rev = self.rev(node) | 1069 rev = self.rev(node) |
1070 cache, base, chain = self.deltachain(rev, cache) | 1070 base = self.base(rev) |
1071 | 1071 |
1072 # check rev flags | 1072 # check rev flags |
1073 if self.flags(rev) & ~REVIDX_KNOWN_FLAGS: | 1073 if self.flags(rev) & ~REVIDX_KNOWN_FLAGS: |
1074 raise RevlogError(_('incompatible revision flag %x') % | 1074 raise RevlogError(_('incompatible revision flag %x') % |
1075 (self.flags(rev) & ~REVIDX_KNOWN_FLAGS)) | 1075 (self.flags(rev) & ~REVIDX_KNOWN_FLAGS)) |
1076 | 1076 |
1077 # build delta chain | |
1078 self._loadindex(base, rev + 1) | |
1079 cachehit, base, chain = self.deltachain(rev, cachedrev) | |
1080 | |
1077 # do we have useful data cached? | 1081 # do we have useful data cached? |
1078 if cache and self._cache: | 1082 if cachehit and self._cache: |
1079 global _cached | 1083 global _cached |
1080 _cached += 1 | 1084 _cached += 1 |
1081 text = self._cache[2] | 1085 text = self._cache[2] |
1082 else: | 1086 else: |
1083 global _uncached | 1087 global _uncached |
1085 | 1089 |
1086 | 1090 |
1087 # drop cache to save memory | 1091 # drop cache to save memory |
1088 self._cache = None | 1092 self._cache = None |
1089 | 1093 |
1090 self._loadindex(base, rev + 1) | |
1091 self._chunkraw(base, rev) | 1094 self._chunkraw(base, rev) |
1092 if text is None: | 1095 if text is None: |
1093 text = self._chunk(base) | 1096 text = self._chunk(base) |
1094 | 1097 |
1095 bins = [self._chunk(r) for r in chain] | 1098 bins = [self._chunk(r) for r in chain] |