changeset 50289:94a8c354242b stable

undo-files: make the undo-prefix configurable in `cleanup_undo_files` The transaction is configuration undo prefix, so we "need" it too.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 07 Mar 2023 03:31:21 +0100
parents d89eecf9605e
children 92734603e33e
files mercurial/transaction.py
diffstat 1 files changed, 10 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/transaction.py	Mon Mar 06 22:16:28 2023 +0100
+++ b/mercurial/transaction.py	Tue Mar 07 03:31:21 2023 +0100
@@ -40,41 +40,43 @@
     return _active
 
 
-UNDO_BACKUP = b'undo.backupfiles'
+UNDO_BACKUP = b'%s.backupfiles'
 
 UNDO_FILES_MAY_NEED_CLEANUP = [
-    (b'plain', b'undo.desc'),
+    (b'plain', b'%s.desc'),
     # Always delete undo last to make sure we detect that a clean up is needed if
     # the process is interrupted.
-    (b'store', b'undo'),
+    (b'store', b'%s'),
 ]
 
 
-def cleanup_undo_files(report, vfsmap):
+def cleanup_undo_files(report, vfsmap, undo_prefix=b'undo'):
     """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_listing = UNDO_BACKUP % undo_prefix
+
     backup_entries = []
     undo_files = []
     svfs = vfsmap[b'store']
     try:
-        with svfs(UNDO_BACKUP) as f:
+        with svfs(backup_listing) as f:
             backup_entries = read_backup_files(report, f)
     except OSError as e:
         if e.errno != errno.ENOENT:
             msg = _(b'could not read %s: %s\n')
-            msg %= (svfs.join(UNDO_BACKUP), stringutil.forcebytestr(e))
+            msg %= (svfs.join(backup_listing), stringutil.forcebytestr(e))
             report(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((svfs, UNDO_BACKUP))
+    undo_files.append((svfs, backup_listing))
     for location, undo_path in UNDO_FILES_MAY_NEED_CLEANUP:
-        undo_files.append((vfsmap[location], undo_path))
+        undo_files.append((vfsmap[location], undo_path % undo_prefix))
     for undovfs, undofile in undo_files:
         try:
             undovfs.unlink(undofile)