mercurial/revlog.py
changeset 16414 e8d37b78acfb
parent 16375 d7d64b89a65c
child 16418 e5750c6716eb
equal deleted inserted replaced
16413:1a420761fcb7 16414:e8d37b78acfb
   172         self.size = struct.calcsize(indexformatng)
   172         self.size = struct.calcsize(indexformatng)
   173 
   173 
   174     def parseindex(self, data, inline):
   174     def parseindex(self, data, inline):
   175         # call the C implementation to parse the index data
   175         # call the C implementation to parse the index data
   176         index, cache = parsers.parse_index2(data, inline)
   176         index, cache = parsers.parse_index2(data, inline)
   177         return index, None, cache
   177         return index, getattr(index, 'nodemap', None), cache
   178 
   178 
   179     def packentry(self, entry, node, version, rev):
   179     def packentry(self, entry, node, version, rev):
   180         p = _pack(indexformatng, *entry)
   180         p = _pack(indexformatng, *entry)
   181         if rev == 0:
   181         if rev == 0:
   182             p = _pack(versionformat, version) + p[4:]
   182             p = _pack(versionformat, version) + p[4:]
   293             self.rev(node)
   293             self.rev(node)
   294             return True
   294             return True
   295         except KeyError:
   295         except KeyError:
   296             return False
   296             return False
   297 
   297 
       
   298     def clearcaches(self):
       
   299         try:
       
   300             self._nodecache.clearcaches()
       
   301         except AttributeError:
       
   302             self._nodecache = {nullid: nullrev}
       
   303             self._nodepos = None
       
   304 
   298     def rev(self, node):
   305     def rev(self, node):
   299         try:
   306         try:
   300             return self._nodecache[node]
   307             return self._nodecache[node]
       
   308         except RevlogError:
       
   309             # parsers.c radix tree lookup failed
       
   310             raise LookupError(node, self.indexfile, _('no node'))
   301         except KeyError:
   311         except KeyError:
       
   312             # pure python cache lookup failed
   302             n = self._nodecache
   313             n = self._nodecache
   303             i = self.index
   314             i = self.index
   304             p = self._nodepos
   315             p = self._nodepos
   305             if p is None:
   316             if p is None:
   306                 p = len(i) - 2
   317                 p = len(i) - 2