--- a/mercurial/repair.py Mon Mar 06 19:39:35 2023 +0100
+++ b/mercurial/repair.py Mon Mar 06 21:03:45 2023 +0100
@@ -7,8 +7,6 @@
# GNU General Public License version 2 or any later version.
-import errno
-
from .i18n import _
from .node import (
hex,
@@ -31,7 +29,6 @@
)
from .utils import (
hashutil,
- stringutil,
urlutil,
)
@@ -114,43 +111,6 @@
return s
-UNDO_BACKUP = b'undo.backupfiles'
-
-
-def cleanup_undo_files(repo):
- """remove "undo" files used by the rollback logic
-
- This is useful to prevent rollback running in situation were it does not
- make sense. For example after a strip.
- """
- backup_entries = []
- undo_files = []
- vfsmap = repo.vfs_map
- try:
- with repo.svfs(UNDO_BACKUP) as f:
- backup_entries = transaction.read_backup_files(repo.ui.warn, f)
- except OSError as e:
- if e.errno != errno.ENOENT:
- msg = _(b'could not read %s: %s\n')
- msg %= (repo.svfs.join(UNDO_BACKUP), stringutil.forcebytestr(e))
- repo.ui.warn(msg)
-
- for location, f, backup_path, c in backup_entries:
- if location in vfsmap and backup_path:
- undo_files.append((vfsmap[location], backup_path))
-
- undo_files.append((repo.svfs, UNDO_BACKUP))
- undo_files.extend(repo.undofiles())
- for undovfs, undofile in undo_files:
- try:
- undovfs.unlink(undofile)
- except OSError as e:
- if e.errno != errno.ENOENT:
- msg = _(b'error removing %s: %s\n')
- msg %= (undovfs.join(undofile), stringutil.forcebytestr(e))
- repo.ui.warn(msg)
-
-
def strip(ui, repo, nodelist, backup=True, topic=b'backup'):
# This function requires the caller to lock the repo, but it operates
# within a transaction of its own, and thus requires there to be no current
@@ -299,7 +259,7 @@
bmchanges = [(m, repo[newbmtarget].node()) for m in updatebm]
repo._bookmarks.applychanges(repo, tr, bmchanges)
- cleanup_undo_files(repo)
+ transaction.cleanup_undo_files(repo)
except: # re-raises
if backupfile: