mercurial/revlog.py
changeset 44313 6f9e8e142cea
parent 44310 daad3aace942
child 44320 671f9479af0e
equal deleted inserted replaced
44312:563dfdfd01a4 44313:6f9e8e142cea
   350         if rev == 0:
   350         if rev == 0:
   351             p = versionformat_pack(version) + p[4:]
   351             p = versionformat_pack(version) + p[4:]
   352         return p
   352         return p
   353 
   353 
   354 
   354 
       
   355 NodemapRevlogIO = None
       
   356 
       
   357 if util.safehasattr(parsers, 'parse_index_devel_nodemap'):
       
   358 
       
   359     class NodemapRevlogIO(revlogio):
       
   360         """A debug oriented IO class that return a PersistentNodeMapIndexObject
       
   361 
       
   362         The PersistentNodeMapIndexObject object is meant to test the persistent nodemap feature.
       
   363         """
       
   364 
       
   365         def parseindex(self, data, inline):
       
   366             index, cache = parsers.parse_index_devel_nodemap(data, inline)
       
   367             return index, cache
       
   368 
       
   369 
   355 class rustrevlogio(revlogio):
   370 class rustrevlogio(revlogio):
   356     def parseindex(self, data, inline):
   371     def parseindex(self, data, inline):
   357         index, cache = super(rustrevlogio, self).parseindex(data, inline)
   372         index, cache = super(rustrevlogio, self).parseindex(data, inline)
   358         return rustrevlog.MixedIndex(index), cache
   373         return rustrevlog.MixedIndex(index), cache
   359 
   374 
   594         if not self._generaldelta:
   609         if not self._generaldelta:
   595             self._sparserevlog = False
   610             self._sparserevlog = False
   596 
   611 
   597         self._storedeltachains = True
   612         self._storedeltachains = True
   598 
   613 
       
   614         devel_nodemap = (
       
   615             self.nodemap_file
       
   616             and opts.get(b'devel-force-nodemap', False)
       
   617             and NodemapRevlogIO is not None
       
   618         )
       
   619 
   599         self._io = revlogio()
   620         self._io = revlogio()
   600         if self.version == REVLOGV0:
   621         if self.version == REVLOGV0:
   601             self._io = revlogoldio()
   622             self._io = revlogoldio()
       
   623         elif devel_nodemap:
       
   624             self._io = NodemapRevlogIO()
   602         elif rustrevlog is not None and self.opener.options.get(b'rust.index'):
   625         elif rustrevlog is not None and self.opener.options.get(b'rust.index'):
   603             self._io = rustrevlogio()
   626             self._io = rustrevlogio()
   604         try:
   627         try:
   605             d = self._io.parseindex(indexdata, self._inline)
   628             d = self._io.parseindex(indexdata, self._inline)
   606         except (ValueError, IndexError):
   629         except (ValueError, IndexError):