mercurial/changelog.py
changeset 51099 594f912818ab
parent 51083 c3748f38dcd0
child 51100 222b89224397
equal deleted inserted replaced
51098:045b5f745f93 51099:594f912818ab
   446         if not self._delayed:
   446         if not self._delayed:
   447             super(changelog, self)._write_docket(tr)
   447             super(changelog, self)._write_docket(tr)
   448 
   448 
   449     def delayupdate(self, tr):
   449     def delayupdate(self, tr):
   450         """delay visibility of index updates to other readers"""
   450         """delay visibility of index updates to other readers"""
       
   451         assert not self._inner.is_open
   451         if self._docket is None and not self._delayed:
   452         if self._docket is None and not self._delayed:
   452             if len(self) == 0:
   453             if len(self) == 0:
   453                 self._divert = True
   454                 self._divert = True
   454                 if self._realopener.exists(self._indexfile + b'.a'):
   455                 if self._realopener.exists(self._indexfile + b'.a'):
   455                     self._realopener.unlink(self._indexfile + b'.a')
   456                     self._realopener.unlink(self._indexfile + b'.a')
   466         tr.addpending(b'cl-%i' % id(self), self._writepending)
   467         tr.addpending(b'cl-%i' % id(self), self._writepending)
   467         tr.addfinalize(b'cl-%i' % id(self), self._finalize)
   468         tr.addfinalize(b'cl-%i' % id(self), self._finalize)
   468 
   469 
   469     def _finalize(self, tr):
   470     def _finalize(self, tr):
   470         """finalize index updates"""
   471         """finalize index updates"""
       
   472         assert not self._inner.is_open
   471         self._delayed = False
   473         self._delayed = False
   472         self.opener = self._realopener
   474         self.opener = self._realopener
   473         self._inner.opener = self.opener
   475         self._inner.opener = self.opener
   474         self._inner._segmentfile.opener = self.opener
   476         self._inner._segmentfile.opener = self.opener
   475         self._inner._segmentfile_sidedata.opener = self.opener
   477         self._inner._segmentfile_sidedata.opener = self.opener
   492         self._enforceinlinesize(tr, side_write=False)
   494         self._enforceinlinesize(tr, side_write=False)
   493 
   495 
   494     def _writepending(self, tr):
   496     def _writepending(self, tr):
   495         """create a file containing the unfinalized state for
   497         """create a file containing the unfinalized state for
   496         pretxnchangegroup"""
   498         pretxnchangegroup"""
       
   499         assert not self._inner.is_open
   497         if self._docket:
   500         if self._docket:
   498             return self._docket.write(tr, pending=True)
   501             return self._docket.write(tr, pending=True)
   499         if self._delaybuf:
   502         if self._delaybuf:
   500             # make a temporary copy of the index
   503             # make a temporary copy of the index
   501             fp1 = self._realopener(self._indexfile)
   504             fp1 = self._realopener(self._indexfile)