Mercurial > hg
comparison mercurial/shelve.py @ 46293:9cdef4c41c94
shelve: use listshelves() in cleanupoldbackups()
With this patch, there are no more assumptions outside the `Shelf`
class about which files (`.patch`, `.hg`, `.shelve`) make up a
shelf. As such, this finishes the preparations for making phase-based
shelve (perhaps optionally) not write the `.patch` and `.hg` files.
Differential Revision: https://phab.mercurial-scm.org/D9740
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Mon, 11 Jan 2021 23:06:45 -0800 |
parents | 3204a35e5c7e |
children | d3b226b6c8c6 |
comparison
equal
deleted
inserted
replaced
46292:3204a35e5c7e | 46293:9cdef4c41c94 |
---|---|
323 | 323 |
324 | 324 |
325 def cleanupoldbackups(repo): | 325 def cleanupoldbackups(repo): |
326 vfs = vfsmod.vfs(repo.vfs.join(backupdir)) | 326 vfs = vfsmod.vfs(repo.vfs.join(backupdir)) |
327 maxbackups = repo.ui.configint(b'shelve', b'maxbackups') | 327 maxbackups = repo.ui.configint(b'shelve', b'maxbackups') |
328 hgfiles = [f for f in vfs.listdir() if f.endswith(b'.' + patchextension)] | 328 hgfiles = listshelves(vfs) |
329 hgfiles = sorted([(vfs.stat(f)[stat.ST_MTIME], f) for f in hgfiles]) | |
330 if maxbackups > 0 and maxbackups < len(hgfiles): | 329 if maxbackups > 0 and maxbackups < len(hgfiles): |
331 bordermtime = hgfiles[-maxbackups][0] | 330 bordermtime = hgfiles[maxbackups - 1][0] |
332 else: | 331 else: |
333 bordermtime = None | 332 bordermtime = None |
334 for mtime, f in hgfiles[: len(hgfiles) - maxbackups]: | 333 for mtime, name in hgfiles[maxbackups:]: |
335 if mtime == bordermtime: | 334 if mtime == bordermtime: |
336 # keep it, because timestamp can't decide exact order of backups | 335 # keep it, because timestamp can't decide exact order of backups |
337 continue | 336 continue |
338 base = f[: -(1 + len(patchextension))] | |
339 for ext in shelvefileextensions: | 337 for ext in shelvefileextensions: |
340 vfs.tryunlink(base + b'.' + ext) | 338 vfs.tryunlink(name + b'.' + ext) |
341 | 339 |
342 | 340 |
343 def _backupactivebookmark(repo): | 341 def _backupactivebookmark(repo): |
344 activebookmark = repo._activebookmark | 342 activebookmark = repo._activebookmark |
345 if activebookmark: | 343 if activebookmark: |