浏览代码

Merge pull request #2593 from enkore/issue/2384.1

recreate: if single archive is not processed, exit 2
enkore 8 年之前
父节点
当前提交
60811fc2ce
共有 2 个文件被更改,包括 7 次插入4 次删除
  1. 2 2
      src/borg/archive.py
  2. 5 2
      src/borg/archiver.py

+ 2 - 2
src/borg/archive.py

@@ -1612,11 +1612,11 @@ class ArchiveRecreater:
         if self.exclude_if_present or self.exclude_caches:
             self.matcher_add_tagged_dirs(archive)
         if self.matcher.empty() and not self.recompress and not target.recreate_rechunkify and comment is None:
-            logger.info("Skipping archive %s, nothing to do", archive_name)
-            return
+            return False
         self.process_items(archive, target)
         replace_original = target_name is None
         self.save(archive, target, comment, replace_original=replace_original)
+        return True
 
     def process_items(self, archive, target):
         matcher = self.matcher

+ 5 - 2
src/borg/archiver.py

@@ -1599,7 +1599,9 @@ class Archiver:
             if recreater.is_temporary_archive(name):
                 self.print_error('Refusing to work on temporary archive of prior recreate: %s', name)
                 return self.exit_code
-            recreater.recreate(name, args.comment, target)
+            if not recreater.recreate(name, args.comment, target):
+                self.print_error('Nothing to do. Archive was not processed.\n'
+                                 'Specify at least one pattern, PATH, --comment, re-compression or re-chunking option.')
         else:
             if args.target is not None:
                 self.print_error('--target: Need to specify single archive')
@@ -1609,7 +1611,8 @@ class Archiver:
                 if recreater.is_temporary_archive(name):
                     continue
                 print('Processing', name)
-                recreater.recreate(name, args.comment)
+                if not recreater.recreate(name, args.comment):
+                    logger.info('Skipped archive %s: Nothing to do. Archive was not processed.', name)
         if not args.dry_run:
             manifest.write()
             repository.commit()