mercurial/branchmap.py
changeset 23819 6bf93440a717
parent 23786 7d63398fbfd1
child 23862 7aa1405528a3
equal deleted inserted replaced
23818:45c95e2f99ad 23819:6bf93440a717
   405         """Save branch cache if it is dirty."""
   405         """Save branch cache if it is dirty."""
   406         if self._rbcnamescount < len(self._names):
   406         if self._rbcnamescount < len(self._names):
   407             try:
   407             try:
   408                 if self._rbcnamescount != 0:
   408                 if self._rbcnamescount != 0:
   409                     f = repo.vfs.open(_rbcnames, 'ab')
   409                     f = repo.vfs.open(_rbcnames, 'ab')
       
   410                     # The position after open(x, 'a') is implementation defined-
       
   411                     # see issue3543.  SEEK_END was added in 2.5
       
   412                     f.seek(0, 2) #os.SEEK_END
   410                     if f.tell() == self._rbcsnameslen:
   413                     if f.tell() == self._rbcsnameslen:
   411                         f.write('\0')
   414                         f.write('\0')
   412                     else:
   415                     else:
   413                         f.close()
   416                         f.close()
   414                         self._rbcnamescount = 0
   417                         self._rbcnamescount = 0
   429         if start != len(self._rbcrevs):
   432         if start != len(self._rbcrevs):
   430             self._rbcrevslen = min(len(repo.changelog),
   433             self._rbcrevslen = min(len(repo.changelog),
   431                                    len(self._rbcrevs) // _rbcrecsize)
   434                                    len(self._rbcrevs) // _rbcrecsize)
   432             try:
   435             try:
   433                 f = repo.vfs.open(_rbcrevs, 'ab')
   436                 f = repo.vfs.open(_rbcrevs, 'ab')
       
   437                 # The position after open(x, 'a') is implementation defined-
       
   438                 # see issue3543.  SEEK_END was added in 2.5
       
   439                 f.seek(0, 2) #os.SEEK_END
   434                 if f.tell() != start:
   440                 if f.tell() != start:
   435                     f.seek(start)
   441                     f.seek(start)
   436                     f.truncate()
   442                     f.truncate()
   437                 end = self._rbcrevslen * _rbcrecsize
   443                 end = self._rbcrevslen * _rbcrecsize
   438                 f.write(self._rbcrevs[start:end])
   444                 f.write(self._rbcrevs[start:end])