Mercurial > public > mercurial-scm > hg
comparison mercurial/branchmap.py @ 23819:6bf93440a717
branchmap: add seek() to end of file before calling tell() on append open()
This is similar to 48c232873a54, which was subsequently modified in 19f5dec2d61f
for 2.4. Unexpected test changes on Windows occurred without this.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sat, 10 Jan 2015 12:00:03 -0500 |
parents | 7d63398fbfd1 |
children | 7aa1405528a3 |
comparison
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]) |