--- 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)