diff mercurial/shelve.py @ 46271:b2a8ff736ecf

shelve: trust caller of shelvedfile.opener() to check that the file exists The only place we call `shelvedfile.opener()` is when we're about to apply a bundle. The file should always exist. If it doesn't, the `.hg/` directory is corrupt and we don't provide any guarantees about supporting corrupt repos (besides, telling the user that the shelve doesn't exist when `hg shelve --list` lists it is not very helpful). Differential Revision: https://phab.mercurial-scm.org/D9698
author Martin von Zweigbergk <martinvonz@google.com>
date Thu, 07 Jan 2021 12:58:43 -0800
parents 161313f9c467
children a68d3386138c
line wrap: on
line diff
--- a/mercurial/shelve.py	Thu Jan 07 12:22:39 2021 -0800
+++ b/mercurial/shelve.py	Thu Jan 07 12:58:43 2021 -0800
@@ -117,12 +117,7 @@
         return self.vfs.stat(self.fname)
 
     def opener(self, mode=b'rb'):
-        try:
-            return self.vfs(self.fname, mode)
-        except IOError as err:
-            if err.errno != errno.ENOENT:
-                raise
-            raise error.Abort(_(b"shelved change '%s' not found") % self.name)
+        return self.vfs(self.fname, mode)
 
     def applybundle(self, tr):
         fp = self.opener()