From d5917204c311780519ab47579781c925e5987d3e Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Mon, 5 Mar 2018 17:02:49 +0100 Subject: [PATCH] fix borgfs patterns/paths processing, fixes #3551 Just checking for None in patterns.py (and removing the set_defaults calls in archiver.py) did not work as other arg parsing code relies on having an empty list (in .patterns, .paths) to append to. Thus I stayed away from pattern.py and rather fixed the defaults for .paths and .patterns in all parsers. (cherry picked from commit df9020389cd6d0c068634b9b0e049ad60c272c0c) --- src/borg/archiver.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/borg/archiver.py b/src/borg/archiver.py index 3940d6896..b7ccd0506 100644 --- a/src/borg/archiver.py +++ b/src/borg/archiver.py @@ -2562,7 +2562,9 @@ class Archiver: parser = argparse.ArgumentParser(prog=self.prog, description='Borg - Deduplicated Backups', add_help=False) - parser.set_defaults(fallback2_func=functools.partial(self.do_maincommand_help, parser)) + # paths and patterns must have an empty list as default everywhere + parser.set_defaults(fallback2_func=functools.partial(self.do_maincommand_help, parser), + paths=[], patterns=[]) parser.common_options = self.CommonOptions(define_common_options, suffix_precedence=('_maincommand', '_midcommand', '_subcommand')) parser.add_argument('-V', '--version', action='version', version='%(prog)s ' + __version__, @@ -2570,7 +2572,6 @@ class Archiver: parser.common_options.add_common_group(parser, '_maincommand', provide_defaults=True) common_parser = argparse.ArgumentParser(add_help=False, prog=self.prog) - # some empty defaults for all subparsers common_parser.set_defaults(paths=[], patterns=[]) parser.common_options.add_common_group(common_parser, '_subcommand')