shelve: use listshelves() in cleanup function
authorMartin von Zweigbergk <martinvonz@google.com>
Thu, 07 Jan 2021 22:38:19 -0800
changeset 46283 8db5fa212ab0
parent 46282 0a69f9e640ec
child 46284 d7f763c8c58e
shelve: use listshelves() in cleanup function The point of this patch is to make it so all the callers of `shelvedfile.movetobackup()` look the same, so I can move it over to the new `Shelf` class next. Differential Revision: https://phab.mercurial-scm.org/D9710
mercurial/shelve.py
--- a/mercurial/shelve.py	Thu Jan 07 16:08:30 2021 -0800
+++ b/mercurial/shelve.py	Thu Jan 07 22:38:19 2021 -0800
@@ -602,10 +602,11 @@
     """subcommand that deletes all shelves"""
 
     with repo.wlock():
-        for (name, _type) in repo.vfs.readdir(shelvedir):
-            suffix = name.rsplit(b'.', 1)[-1]
-            if suffix in shelvefileextensions:
-                shelvedfile(repo, name).movetobackup()
+        for _mtime, name in listshelves(repo):
+            for suffix in shelvefileextensions:
+                shfile = shelvedfile(repo, name, suffix)
+                if shfile.exists():
+                    shfile.movetobackup()
             cleanupoldbackups(repo)