فهرست منبع

Merge pull request #6208 from ThomasWaldmann/fix-del-nonexist-master

delete: don't commit if nothing was deleted, avoid cache sync, fixes #6060
TW 3 سال پیش
والد
کامیت
a2b131dc2d
1فایلهای تغییر یافته به همراه4 افزوده شده و 2 حذف شده
  1. 4 2
      src/borg/archiver.py

+ 4 - 2
src/borg/archiver.py

@@ -1206,6 +1206,7 @@ class Archiver:
             msg_delete = 'Would delete archive: {} ({}/{})' if dry_run else 'Deleting archive: {} ({}/{})'
             msg_delete = 'Would delete archive: {} ({}/{})' if dry_run else 'Deleting archive: {} ({}/{})'
             msg_not_found = 'Archive {} not found ({}/{}).'
             msg_not_found = 'Archive {} not found ({}/{}).'
             logger_list = logging.getLogger('borg.output.list')
             logger_list = logging.getLogger('borg.output.list')
+            delete_count = 0
             for i, archive_name in enumerate(archive_names, 1):
             for i, archive_name in enumerate(archive_names, 1):
                 try:
                 try:
                     archive_info = manifest.archives[archive_name]
                     archive_info = manifest.archives[archive_name]
@@ -1219,8 +1220,9 @@ class Archiver:
                         archive = Archive(repository, key, manifest, archive_name, cache=cache,
                         archive = Archive(repository, key, manifest, archive_name, cache=cache,
                                           consider_part_files=args.consider_part_files)
                                           consider_part_files=args.consider_part_files)
                         archive.delete(stats, progress=args.progress, forced=args.forced)
                         archive.delete(stats, progress=args.progress, forced=args.forced)
-
-            if not dry_run:
+                        delete_count += 1
+            if delete_count > 0:
+                # only write/commit if we actually changed something, see #6060.
                 manifest.write()
                 manifest.write()
                 repository.commit(compact=False, save_space=args.save_space)
                 repository.commit(compact=False, save_space=args.save_space)
                 cache.commit()
                 cache.commit()