Mercurial > hg
comparison mercurial/store.py @ 47217:8f6165c90163
revlog: open files in 'r+' instead of 'a+'
The code doing actual writing is already doing the necessary seeking, so we
could safely use 'r+'. This make the file objecs usable in more situation, like
updating the sidedata information during pull.
revlog: forcibly move the file cursor at the right location before writing
This is a paranoid change in case the changelog computation moved the cursors
under our feets.
This is not known to happens right now.
Differential Revision: https://phab.mercurial-scm.org/D10608
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 03 May 2021 12:28:15 +0200 |
parents | f38bf44e077f |
children | 616b8f412676 |
comparison
equal
deleted
inserted
replaced
47216:2bd4b5218918 | 47217:8f6165c90163 |
---|---|
704 path.startswith(b'data/') or path.startswith(b'meta/') | 704 path.startswith(b'data/') or path.startswith(b'meta/') |
705 ): | 705 ): |
706 # do not trigger a fncache load when adding a file that already is | 706 # do not trigger a fncache load when adding a file that already is |
707 # known to exist. | 707 # known to exist. |
708 notload = self.fncache.entries is None and self.vfs.exists(encoded) | 708 notload = self.fncache.entries is None and self.vfs.exists(encoded) |
709 if notload and b'a' in mode and not self.vfs.stat(encoded).st_size: | 709 if notload and b'r+' in mode and not self.vfs.stat(encoded).st_size: |
710 # when appending to an existing file, if the file has size zero, | 710 # when appending to an existing file, if the file has size zero, |
711 # it should be considered as missing. Such zero-size files are | 711 # it should be considered as missing. Such zero-size files are |
712 # the result of truncation when a transaction is aborted. | 712 # the result of truncation when a transaction is aborted. |
713 notload = False | 713 notload = False |
714 if not notload: | 714 if not notload: |