mercurial/obsolete.py
changeset 25669 8d94861842e5
parent 25412 443d4635e630
child 26204 54875a6c3714
equal deleted inserted replaced
25668:1c2df7c91cf2 25669:8d94861842e5
   515     # meta:    binary blob, encoded metadata dictionary
   515     # meta:    binary blob, encoded metadata dictionary
   516     # date:    (float, int) tuple, date of marker creation
   516     # date:    (float, int) tuple, date of marker creation
   517     # parents: (tuple of nodeid) or None, parents of precursors
   517     # parents: (tuple of nodeid) or None, parents of precursors
   518     #          None is used when no data has been recorded
   518     #          None is used when no data has been recorded
   519 
   519 
   520     def __init__(self, sopener, defaultformat=_fm1version, readonly=False):
   520     def __init__(self, svfs, defaultformat=_fm1version, readonly=False):
   521         # caches for various obsolescence related cache
   521         # caches for various obsolescence related cache
   522         self.caches = {}
   522         self.caches = {}
   523         self._all = []
   523         self._all = []
   524         self.sopener = sopener
   524         self.svfs = svfs
   525         data = sopener.tryread('obsstore')
   525         data = svfs.tryread('obsstore')
   526         self._version = defaultformat
   526         self._version = defaultformat
   527         self._readonly = readonly
   527         self._readonly = readonly
   528         if data:
   528         if data:
   529             self._version, markers = _readmarkers(data)
   529             self._version, markers = _readmarkers(data)
   530             self._addmarkers(markers)
   530             self._addmarkers(markers)
   586         for m in markers:
   586         for m in markers:
   587             if m not in known:
   587             if m not in known:
   588                 known.add(m)
   588                 known.add(m)
   589                 new.append(m)
   589                 new.append(m)
   590         if new:
   590         if new:
   591             f = self.sopener('obsstore', 'ab')
   591             f = self.svfs('obsstore', 'ab')
   592             try:
   592             try:
   593                 offset = f.tell()
   593                 offset = f.tell()
   594                 transaction.add('obsstore', offset)
   594                 transaction.add('obsstore', offset)
   595                 # offset == 0: new file - add the version header
   595                 # offset == 0: new file - add the version header
   596                 for bytes in encodemarkers(new, offset == 0, self._version):
   596                 for bytes in encodemarkers(new, offset == 0, self._version):