Merge pull request #5669 from ThomasWaldmann/misc-fixes-master

misc. crash fixes (master)
This commit is contained in:
TW 2021-02-03 16:35:10 +01:00 committed by GitHub
commit f195a71e24
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 15 deletions

View File

@ -617,20 +617,20 @@ class Archiver:
self.print_error("Got Ctrl-C / SIGINT.") self.print_error("Got Ctrl-C / SIGINT.")
else: else:
archive.save(comment=args.comment, timestamp=args.timestamp, stats=archive.stats) archive.save(comment=args.comment, timestamp=args.timestamp, stats=archive.stats)
args.stats |= args.json args.stats |= args.json
if args.stats: if args.stats:
if args.json: if args.json:
json_print(basic_json_data(manifest, cache=cache, extra={ json_print(basic_json_data(manifest, cache=cache, extra={
'archive': archive, 'archive': archive,
})) }))
else: else:
log_multi(DASHES, log_multi(DASHES,
str(archive), str(archive),
DASHES, DASHES,
STATS_HEADER, STATS_HEADER,
str(archive.stats), str(archive.stats),
str(cache), str(cache),
DASHES, logger=logging.getLogger('borg.output.stats')) DASHES, logger=logging.getLogger('borg.output.stats'))
self.output_filter = args.output_filter self.output_filter = args.output_filter
self.output_list = args.output_list self.output_list = args.output_list

View File

@ -74,7 +74,7 @@ class Archives(abc.MutableMapping):
name = safe_encode(name) name = safe_encode(name)
del self._archives[name] del self._archives[name]
def list(self, *, glob=None, match_end=r'\Z', sort_by=(), consider_checkpoints=False, first=None, last=None, reverse=False): def list(self, *, glob=None, match_end=r'\Z', sort_by=(), consider_checkpoints=True, first=None, last=None, reverse=False):
""" """
Return list of ArchiveInfo instances according to the parameters. Return list of ArchiveInfo instances according to the parameters.
@ -82,6 +82,10 @@ class Archives(abc.MutableMapping):
Apply *first* and *last* filters, and then possibly *reverse* the list. Apply *first* and *last* filters, and then possibly *reverse* the list.
*sort_by* is a list of sort keys applied in reverse order. *sort_by* is a list of sort keys applied in reverse order.
Note: for better robustness, all filtering / limiting parameters must default to
"not limit / not filter", so a FULL archive list is produced by a simple .list().
some callers EXPECT to iterate over all archives in a repo for correct operation.
""" """
if isinstance(sort_by, (str, bytes)): if isinstance(sort_by, (str, bytes)):
raise TypeError('sort_by must be a sequence of str') raise TypeError('sort_by must be a sequence of str')