浏览代码

Merge pull request #2000 from enkore/issue/1997

check: fail if single archive does not exist
enkore 8 年之前
父节点
当前提交
53aaee3519
共有 2 个文件被更改,包括 9 次插入0 次删除
  1. 8 0
      borg/archive.py
  2. 1 0
      docs/changes.rst

+ 8 - 0
borg/archive.py

@@ -1100,13 +1100,21 @@ class ArchiveChecker:
                                    key=lambda name_info: name_info[1][b'time'])
             if prefix is not None:
                 archive_items = [item for item in archive_items if item[0].startswith(prefix)]
+                if not archive_items:
+                    logger.warning('--prefix %s does not match any archives', prefix)
             num_archives = len(archive_items)
             end = None if last is None else min(num_archives, last)
+            if last is not None and end < last:
+                logger.warning('--last %d archives: only found %d archives', last, end)
         else:
             # we only want one specific archive
             archive_items = [item for item in self.manifest.archives.items() if item[0] == archive]
             num_archives = 1
             end = 1
+            if not archive_items:
+                logger.error('Archive %s does not exist', archive)
+                self.error_found = True
+                return
 
         with cache_if_remote(self.repository) as repository:
             for i, (name, info) in enumerate(archive_items[:end]):

+ 1 - 0
docs/changes.rst

@@ -138,6 +138,7 @@ Bug fixes:
   :ref:`the issue <tam_vuln>` is not relevant for unencrypted repositories,
   it now does nothing and prints an error, #1981.
 - Fixed change-passphrase crashing with unencrypted repositories, #1978
+- Fixed "borg check repo::archive" indicating success if "archive" does not exist, #1997
 
 Other changes: