Mercurial > public > mercurial-scm > hg
comparison mercurial/changelog.py @ 47148:a07d5cb03a85
revlog: rename `indexfile` to `_indexfile`
We want to make the actual location of the indexfile and location more of an
implementation details than what is is currently. In that process, we make the
attribute private.
Differential Revision: https://phab.mercurial-scm.org/D10574
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 03 May 2021 12:22:16 +0200 |
parents | c6b8d5d91e73 |
children | 8d3c2f9d4af7 |
comparison
equal
deleted
inserted
replaced
47147:8a1a51d31e85 | 47148:a07d5cb03a85 |
---|---|
450 """delay visibility of index updates to other readers""" | 450 """delay visibility of index updates to other readers""" |
451 | 451 |
452 if not self._delayed: | 452 if not self._delayed: |
453 if len(self) == 0: | 453 if len(self) == 0: |
454 self._divert = True | 454 self._divert = True |
455 if self._realopener.exists(self.indexfile + b'.a'): | 455 if self._realopener.exists(self._indexfile + b'.a'): |
456 self._realopener.unlink(self.indexfile + b'.a') | 456 self._realopener.unlink(self._indexfile + b'.a') |
457 self.opener = _divertopener(self._realopener, self.indexfile) | 457 self.opener = _divertopener(self._realopener, self._indexfile) |
458 else: | 458 else: |
459 self._delaybuf = [] | 459 self._delaybuf = [] |
460 self.opener = _delayopener( | 460 self.opener = _delayopener( |
461 self._realopener, self.indexfile, self._delaybuf | 461 self._realopener, self._indexfile, self._delaybuf |
462 ) | 462 ) |
463 self._delayed = True | 463 self._delayed = True |
464 tr.addpending(b'cl-%i' % id(self), self._writepending) | 464 tr.addpending(b'cl-%i' % id(self), self._writepending) |
465 tr.addfinalize(b'cl-%i' % id(self), self._finalize) | 465 tr.addfinalize(b'cl-%i' % id(self), self._finalize) |
466 | 466 |
469 self._delayed = False | 469 self._delayed = False |
470 self.opener = self._realopener | 470 self.opener = self._realopener |
471 # move redirected index data back into place | 471 # move redirected index data back into place |
472 if self._divert: | 472 if self._divert: |
473 assert not self._delaybuf | 473 assert not self._delaybuf |
474 tmpname = self.indexfile + b".a" | 474 tmpname = self._indexfile + b".a" |
475 nfile = self.opener.open(tmpname) | 475 nfile = self.opener.open(tmpname) |
476 nfile.close() | 476 nfile.close() |
477 self.opener.rename(tmpname, self.indexfile, checkambig=True) | 477 self.opener.rename(tmpname, self._indexfile, checkambig=True) |
478 elif self._delaybuf: | 478 elif self._delaybuf: |
479 fp = self.opener(self.indexfile, b'a', checkambig=True) | 479 fp = self.opener(self._indexfile, b'a', checkambig=True) |
480 fp.write(b"".join(self._delaybuf)) | 480 fp.write(b"".join(self._delaybuf)) |
481 fp.close() | 481 fp.close() |
482 self._delaybuf = None | 482 self._delaybuf = None |
483 self._divert = False | 483 self._divert = False |
484 # split when we're done | 484 # split when we're done |
487 def _writepending(self, tr): | 487 def _writepending(self, tr): |
488 """create a file containing the unfinalized state for | 488 """create a file containing the unfinalized state for |
489 pretxnchangegroup""" | 489 pretxnchangegroup""" |
490 if self._delaybuf: | 490 if self._delaybuf: |
491 # make a temporary copy of the index | 491 # make a temporary copy of the index |
492 fp1 = self._realopener(self.indexfile) | 492 fp1 = self._realopener(self._indexfile) |
493 pendingfilename = self.indexfile + b".a" | 493 pendingfilename = self._indexfile + b".a" |
494 # register as a temp file to ensure cleanup on failure | 494 # register as a temp file to ensure cleanup on failure |
495 tr.registertmp(pendingfilename) | 495 tr.registertmp(pendingfilename) |
496 # write existing data | 496 # write existing data |
497 fp2 = self._realopener(pendingfilename, b"w") | 497 fp2 = self._realopener(pendingfilename, b"w") |
498 fp2.write(fp1.read()) | 498 fp2.write(fp1.read()) |
500 fp2.write(b"".join(self._delaybuf)) | 500 fp2.write(b"".join(self._delaybuf)) |
501 fp2.close() | 501 fp2.close() |
502 # switch modes so finalize can simply rename | 502 # switch modes so finalize can simply rename |
503 self._delaybuf = None | 503 self._delaybuf = None |
504 self._divert = True | 504 self._divert = True |
505 self.opener = _divertopener(self._realopener, self.indexfile) | 505 self.opener = _divertopener(self._realopener, self._indexfile) |
506 | 506 |
507 if self._divert: | 507 if self._divert: |
508 return True | 508 return True |
509 | 509 |
510 return False | 510 return False |