mercurial/revlog.py
changeset 43574 02802fa87b74
parent 43573 d3df05bab081
child 43581 f5991fd7cca7
equal deleted inserted replaced
43573:d3df05bab081 43574:02802fa87b74
   203 indexformatv0_pack = indexformatv0.pack
   203 indexformatv0_pack = indexformatv0.pack
   204 indexformatv0_unpack = indexformatv0.unpack
   204 indexformatv0_unpack = indexformatv0.unpack
   205 
   205 
   206 
   206 
   207 class revlogoldindex(list):
   207 class revlogoldindex(list):
       
   208     @property
       
   209     def nodemap(self):
       
   210         msg = "index.nodemap is deprecated, " "use index.[has_node|rev|get_rev]"
       
   211         util.nouideprecwarn(msg, b'5.3', stacklevel=2)
       
   212         return self._nodemap
       
   213 
   208     @util.propertycache
   214     @util.propertycache
   209     def nodemap(self):
   215     def _nodemap(self):
   210         nodemap = revlogutils.NodeMap({nullid: nullrev})
   216         nodemap = revlogutils.NodeMap({nullid: nullrev})
   211         for r in range(0, len(self)):
   217         for r in range(0, len(self)):
   212             n = self[r][7]
   218             n = self[r][7]
   213             nodemap[n] = r
   219             nodemap[n] = r
   214         return nodemap
   220         return nodemap
   215 
   221 
   216     def has_node(self, node):
   222     def has_node(self, node):
   217         """return True if the node exist in the index"""
   223         """return True if the node exist in the index"""
   218         return node in self.nodemap
   224         return node in self._nodemap
   219 
   225 
   220     def rev(self, node):
   226     def rev(self, node):
   221         """return a revision for a node
   227         """return a revision for a node
   222 
   228 
   223         If the node is unknown, raise a RevlogError"""
   229         If the node is unknown, raise a RevlogError"""
   224         return self.nodemap[node]
   230         return self._nodemap[node]
   225 
   231 
   226     def get_rev(self, node):
   232     def get_rev(self, node):
   227         """return a revision for a node
   233         """return a revision for a node
   228 
   234 
   229         If the node is unknown, return None"""
   235         If the node is unknown, return None"""
   230         return self.nodemap.get(node)
   236         return self._nodemap.get(node)
   231 
   237 
   232     def append(self, tup):
   238     def append(self, tup):
   233         self.nodemap[tup[7]] = len(self)
   239         self._nodemap[tup[7]] = len(self)
   234         super(revlogoldindex, self).append(tup)
   240         super(revlogoldindex, self).append(tup)
   235 
   241 
   236     def __delitem__(self, i):
   242     def __delitem__(self, i):
   237         if not isinstance(i, slice) or not i.stop == -1 or i.step is not None:
   243         if not isinstance(i, slice) or not i.stop == -1 or i.step is not None:
   238             raise ValueError(b"deleting slices only supports a:-1 with step 1")
   244             raise ValueError(b"deleting slices only supports a:-1 with step 1")
   239         for r in pycompat.xrange(i.start, len(self)):
   245         for r in pycompat.xrange(i.start, len(self)):
   240             del self.nodemap[self[r][7]]
   246             del self._nodemap[self[r][7]]
   241         super(revlogoldindex, self).__delitem__(i)
   247         super(revlogoldindex, self).__delitem__(i)
   242 
   248 
   243     def clearcaches(self):
   249     def clearcaches(self):
   244         self.__dict__.pop('nodemap', None)
   250         self.__dict__.pop('_nodemap', None)
   245 
   251 
   246     def __getitem__(self, i):
   252     def __getitem__(self, i):
   247         if i == -1:
   253         if i == -1:
   248             return (0, 0, 0, -1, -1, -1, -1, nullid)
   254             return (0, 0, 0, -1, -1, -1, -1, nullid)
   249         return list.__getitem__(self, i)
   255         return list.__getitem__(self, i)
   577         except (ValueError, IndexError):
   583         except (ValueError, IndexError):
   578             raise error.RevlogError(
   584             raise error.RevlogError(
   579                 _(b"index %s is corrupted") % self.indexfile
   585                 _(b"index %s is corrupted") % self.indexfile
   580             )
   586             )
   581         self.index, self._chunkcache = d
   587         self.index, self._chunkcache = d
   582         self.nodemap = self.index.nodemap
       
   583         if not self._chunkcache:
   588         if not self._chunkcache:
   584             self._chunkclear()
   589             self._chunkclear()
   585         # revnum -> (chain-length, sum-delta-length)
   590         # revnum -> (chain-length, sum-delta-length)
   586         self._chaininfocache = {}
   591         self._chaininfocache = {}
   587         # revlog header -> revlog compressor
   592         # revlog header -> revlog compressor
   648 
   653 
   649     def revs(self, start=0, stop=None):
   654     def revs(self, start=0, stop=None):
   650         """iterate over all rev in this revlog (from start to stop)"""
   655         """iterate over all rev in this revlog (from start to stop)"""
   651         return storageutil.iterrevs(len(self), start=start, stop=stop)
   656         return storageutil.iterrevs(len(self), start=start, stop=stop)
   652 
   657 
   653     @util.propertycache
   658     @property
   654     def nodemap(self):
   659     def nodemap(self):
       
   660         msg = (
       
   661             "revlog.nodemap is deprecated, "
       
   662             "use revlog.index.[has_node|rev|get_rev]"
       
   663         )
       
   664         util.nouideprecwarn(msg, b'5.3', stacklevel=2)
   655         return self.index.nodemap
   665         return self.index.nodemap
   656 
   666 
   657     @property
   667     @property
   658     def _nodecache(self):
   668     def _nodecache(self):
   659         msg = "revlog._nodecache is deprecated, use revlog.index.nodemap"
   669         msg = "revlog._nodecache is deprecated, use revlog.index.nodemap"