diff 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
line wrap: on
line diff
--- a/mercurial/store.py	Mon May 03 12:28:05 2021 +0200
+++ b/mercurial/store.py	Mon May 03 12:28:15 2021 +0200
@@ -706,7 +706,7 @@
             # do not trigger a fncache load when adding a file that already is
             # known to exist.
             notload = self.fncache.entries is None and self.vfs.exists(encoded)
-            if notload and b'a' in mode and not self.vfs.stat(encoded).st_size:
+            if notload and b'r+' in mode and not self.vfs.stat(encoded).st_size:
                 # when appending to an existing file, if the file has size zero,
                 # it should be considered as missing. Such zero-size files are
                 # the result of truncation when a transaction is aborted.