mercurial/changelog.py
changeset 23203 3872d563e01a
parent 23201 7e97bf6ee2d6
child 23205 2d54aa5397cd
equal deleted inserted replaced
23202:ea5af863fbff 23203:3872d563e01a
   222         """filtered version of revlog.flags"""
   222         """filtered version of revlog.flags"""
   223         if rev in self.filteredrevs:
   223         if rev in self.filteredrevs:
   224             raise error.FilteredIndexError(rev)
   224             raise error.FilteredIndexError(rev)
   225         return super(changelog, self).flags(rev)
   225         return super(changelog, self).flags(rev)
   226 
   226 
   227     def delayupdate(self):
   227     def delayupdate(self, tr):
   228         "delay visibility of index updates to other readers"
   228         "delay visibility of index updates to other readers"
   229 
   229 
   230         if not self._delayed:
   230         if not self._delayed:
   231             if len(self) == 0:
   231             if len(self) == 0:
   232                 self._divert = True
   232                 self._divert = True
   236             else:
   236             else:
   237                 self._delaybuf = []
   237                 self._delaybuf = []
   238                 self.opener = _delayopener(self._realopener, self.indexfile,
   238                 self.opener = _delayopener(self._realopener, self.indexfile,
   239                                            self._delaybuf)
   239                                            self._delaybuf)
   240         self._delayed = True
   240         self._delayed = True
       
   241         tr.addpending('cl-%i' % id(self), self._writepending)
   241 
   242 
   242     def finalize(self, tr):
   243     def finalize(self, tr):
   243         "finalize index updates"
   244         "finalize index updates"
   244         self._delayed = False
   245         self._delayed = False
   245         self.opener = self._realopener
   246         self.opener = self._realopener
   264         self.index = r.index
   265         self.index = r.index
   265         self.nodemap = r.nodemap
   266         self.nodemap = r.nodemap
   266         self._nodecache = r._nodecache
   267         self._nodecache = r._nodecache
   267         self._chunkcache = r._chunkcache
   268         self._chunkcache = r._chunkcache
   268 
   269 
   269     def writepending(self):
   270     def _writepending(self):
   270         "create a file containing the unfinalized state for pretxnchangegroup"
   271         "create a file containing the unfinalized state for pretxnchangegroup"
   271         if self._delaybuf:
   272         if self._delaybuf:
   272             # make a temporary copy of the index
   273             # make a temporary copy of the index
   273             fp1 = self._realopener(self.indexfile)
   274             fp1 = self._realopener(self.indexfile)
   274             fp2 = self._realopener(self.indexfile + ".a", "w")
   275             fp2 = self._realopener(self.indexfile + ".a", "w")