# HG changeset patch # User Martin von Zweigbergk # Date 1610435317 28800 # Node ID f8c5e6ecd008712304f2d7c061067725b65e824d # Parent d3b226b6c8c68f0af2595981b07b10f9c9c1c964 shelve: add a method for deleting shelf to new shelf class This is not necessary for my future changes, but it's more consistent to encapsulate the knowledge of the various files in the `Shelf` class. Differential Revision: https://phab.mercurial-scm.org/D9742 diff -r d3b226b6c8c6 -r f8c5e6ecd008 mercurial/shelve.py --- a/mercurial/shelve.py Mon Jan 11 10:53:42 2021 -0800 +++ b/mercurial/shelve.py Mon Jan 11 23:08:37 2021 -0800 @@ -86,6 +86,10 @@ def open(repo, name): return Shelf(vfsmod.vfs(repo.vfs.join(shelvedir)), name) + @staticmethod + def open_backup(repo, name): + return Shelf(vfsmod.vfs(repo.vfs.join(backupdir)), name) + def exists(self): return self.vfs.exists(self.name + b'.patch') and self.vfs.exists( self.name + b'.hg' @@ -181,6 +185,10 @@ self._backupfilename(backupvfs, filename), ) + def delete(self): + for ext in shelvefileextensions: + self.vfs.tryunlink(self.name + b'.' + ext) + class shelvedstate(object): """Handle persistence during unshelving operations. @@ -332,8 +340,7 @@ if mtime == bordermtime: # keep it, because timestamp can't decide exact order of backups continue - for ext in shelvefileextensions: - vfs.tryunlink(name + b'.' + ext) + Shelf.open_backup(repo, name).delete() def _backupactivebookmark(repo):