浏览代码

Merge pull request #7150 from ThomasWaldmann/fix-nfiles-1.2

Fix nfiles 1.2
TW 2 年之前
父节点
当前提交
d4cd911d46
共有 2 个文件被更改,包括 13 次插入11 次删除
  1. 12 10
      src/borg/archive.py
  2. 1 1
      src/borg/archiver.py

+ 12 - 10
src/borg/archive.py

@@ -632,14 +632,17 @@ Utilization of max. archive size: {csize_max:.0%}
             'time_end': end.strftime(ISO_FORMAT),
             'chunker_params': self.chunker_params,
         }
-        if stats is not None:
-            metadata.update({
-                'size': stats.osize,
-                'csize': stats.csize,
-                'nfiles': stats.nfiles,
-                'size_parts': stats.osize_parts,
-                'csize_parts': stats.csize_parts,
-                'nfiles_parts': stats.nfiles_parts})
+        # we always want to create archives with the addtl. metadata (nfiles, etc.),
+        # because borg info relies on them. so, either use the given stats (from args)
+        # or fall back to self.stats if it was not given.
+        stats = stats or self.stats
+        metadata.update({
+            'size': stats.osize,
+            'csize': stats.csize,
+            'nfiles': stats.nfiles,
+            'size_parts': stats.osize_parts,
+            'csize_parts': stats.csize_parts,
+            'nfiles_parts': stats.nfiles_parts})
         metadata.update(additional_metadata or {})
         metadata = ArchiveItem(metadata)
         data = self.key.pack_and_authenticate_metadata(metadata.as_dict(), context=b'archive')
@@ -2242,8 +2245,7 @@ class ArchiveRecreater:
                 'recreate_cmdline': sys.argv,
             }
 
-        target.save(comment=comment, timestamp=self.timestamp,
-                    stats=target.stats, additional_metadata=additional_metadata)
+        target.save(comment=comment, timestamp=self.timestamp, additional_metadata=additional_metadata)
         if replace_original:
             archive.delete(Statistics(), progress=self.progress)
             target.rename(archive.name)

+ 1 - 1
src/borg/archiver.py

@@ -626,7 +626,7 @@ class Archiver:
                     # we already have a checkpoint archive in this case.
                     self.print_error("Got Ctrl-C / SIGINT.")
                 else:
-                    archive.save(comment=args.comment, timestamp=args.timestamp, stats=archive.stats)
+                    archive.save(comment=args.comment, timestamp=args.timestamp)
                     args.stats |= args.json
                     if args.stats:
                         if args.json: