mercurial/changelog.py
changeset 43787 be8552f25cab
parent 43506 9f70512ae2cf
child 44055 7f67f53492f7
equal deleted inserted replaced
43786:421ea5772039 43787:be8552f25cab
   403         self._divert = False
   403         self._divert = False
   404         self.filteredrevs = frozenset()
   404         self.filteredrevs = frozenset()
   405         self._copiesstorage = opener.options.get(b'copies-storage')
   405         self._copiesstorage = opener.options.get(b'copies-storage')
   406 
   406 
   407     def delayupdate(self, tr):
   407     def delayupdate(self, tr):
   408         b"delay visibility of index updates to other readers"
   408         """delay visibility of index updates to other readers"""
   409 
   409 
   410         if not self._delayed:
   410         if not self._delayed:
   411             if len(self) == 0:
   411             if len(self) == 0:
   412                 self._divert = True
   412                 self._divert = True
   413                 if self._realopener.exists(self.indexfile + b'.a'):
   413                 if self._realopener.exists(self.indexfile + b'.a'):
   421         self._delayed = True
   421         self._delayed = True
   422         tr.addpending(b'cl-%i' % id(self), self._writepending)
   422         tr.addpending(b'cl-%i' % id(self), self._writepending)
   423         tr.addfinalize(b'cl-%i' % id(self), self._finalize)
   423         tr.addfinalize(b'cl-%i' % id(self), self._finalize)
   424 
   424 
   425     def _finalize(self, tr):
   425     def _finalize(self, tr):
   426         b"finalize index updates"
   426         """finalize index updates"""
   427         self._delayed = False
   427         self._delayed = False
   428         self.opener = self._realopener
   428         self.opener = self._realopener
   429         # move redirected index data back into place
   429         # move redirected index data back into place
   430         if self._divert:
   430         if self._divert:
   431             assert not self._delaybuf
   431             assert not self._delaybuf
   441         self._divert = False
   441         self._divert = False
   442         # split when we're done
   442         # split when we're done
   443         self._enforceinlinesize(tr)
   443         self._enforceinlinesize(tr)
   444 
   444 
   445     def _writepending(self, tr):
   445     def _writepending(self, tr):
   446         b"create a file containing the unfinalized state for pretxnchangegroup"
   446         """create a file containing the unfinalized state for
       
   447         pretxnchangegroup"""
   447         if self._delaybuf:
   448         if self._delaybuf:
   448             # make a temporary copy of the index
   449             # make a temporary copy of the index
   449             fp1 = self._realopener(self.indexfile)
   450             fp1 = self._realopener(self.indexfile)
   450             pendingfilename = self.indexfile + b".a"
   451             pendingfilename = self.indexfile + b".a"
   451             # register as a temp file to ensure cleanup on failure
   452             # register as a temp file to ensure cleanup on failure