# HG changeset patch # User Martin von Zweigbergk # Date 2021-01-12 07:08:37 # 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 --git a/mercurial/shelve.py b/mercurial/shelve.py --- a/mercurial/shelve.py +++ b/mercurial/shelve.py @@ -86,6 +86,10 @@ class Shelf(object): 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 @@ class Shelf(object): 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 @@ def cleanupoldbackups(repo): 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):