mercurial/revlog.py
changeset 51098 045b5f745f93
parent 51096 eba138890c64
child 51099 594f912818ab
equal deleted inserted replaced
51097:ae6722dbb575 51098:045b5f745f93
   404             self._segmentfile.filename = new_index_file
   404             self._segmentfile.filename = new_index_file
   405 
   405 
   406     def __len__(self):
   406     def __len__(self):
   407         return len(self.index)
   407         return len(self.index)
   408 
   408 
       
   409     def clear_cache(self):
       
   410         self._revisioncache = None
       
   411         self._segmentfile.clear_cache()
       
   412         self._segmentfile_sidedata.clear_cache()
       
   413 
   409     # Derived from index values.
   414     # Derived from index values.
   410 
   415 
   411     def start(self, rev):
   416     def start(self, rev):
   412         """the offset of the data chunk for this revision"""
   417         """the offset of the data chunk for this revision"""
   413         return int(self.index[rev][0] >> 16)
   418         return int(self.index[rev][0] >> 16)
  1805             else:
  1810             else:
  1806                 nodemaputil.setup_persistent_nodemap(transaction, self)
  1811                 nodemaputil.setup_persistent_nodemap(transaction, self)
  1807 
  1812 
  1808     def clearcaches(self):
  1813     def clearcaches(self):
  1809         """Clear in-memory caches"""
  1814         """Clear in-memory caches"""
  1810         self._inner._revisioncache = None
       
  1811         self._chainbasecache.clear()
  1815         self._chainbasecache.clear()
  1812         self._inner._segmentfile.clear_cache()
  1816         self._inner.clear_cache()
  1813         self._inner._segmentfile_sidedata.clear_cache()
       
  1814         self._pcache = {}
  1817         self._pcache = {}
  1815         self._nodemap_docket = None
  1818         self._nodemap_docket = None
  1816         self.index.clearcaches()
  1819         self.index.clearcaches()
  1817         # The python code is the one responsible for validating the docket, we
  1820         # The python code is the one responsible for validating the docket, we
  1818         # end up having to refresh it here.
  1821         # end up having to refresh it here.
  3500             self._docket.data_end = data_end
  3503             self._docket.data_end = data_end
  3501             self._docket.sidedata_end = sidedata_end
  3504             self._docket.sidedata_end = sidedata_end
  3502             self._docket.write(transaction, stripping=True)
  3505             self._docket.write(transaction, stripping=True)
  3503 
  3506 
  3504         # then reset internal state in memory to forget those revisions
  3507         # then reset internal state in memory to forget those revisions
  3505         self._inner._revisioncache = None
       
  3506         self._chaininfocache = util.lrucachedict(500)
  3508         self._chaininfocache = util.lrucachedict(500)
  3507         self._inner._segmentfile.clear_cache()
  3509         self._inner.clear_cache()
  3508         self._inner._segmentfile_sidedata.clear_cache()
       
  3509 
  3510 
  3510         del self.index[rev:-1]
  3511         del self.index[rev:-1]
  3511 
  3512 
  3512     def checksize(self):
  3513     def checksize(self):
  3513         """Check size of index and data files
  3514         """Check size of index and data files