diff --git a/src/borg/archive.py b/src/borg/archive.py index 527a0de17..f1da994de 100644 --- a/src/borg/archive.py +++ b/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) diff --git a/src/borg/archiver.py b/src/borg/archiver.py index da8a6cb54..08e7204b5 100644 --- a/src/borg/archiver.py +++ b/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: