silence file listing unless --changed is present

This commit is contained in:
Antoine Beaupré 2015-11-23 12:10:21 -05:00
parent 6b265f2a53
commit 9899eaf241
2 changed files with 26 additions and 1 deletions

View File

@ -74,7 +74,8 @@ class Archiver:
logger.warning(msg) logger.warning(msg)
def print_file_status(self, status, path): def print_file_status(self, status, path):
logger.info("1s %s", status, remove_surrogates(path)) if self.args.changed:
logger.info("%1s %s" % (status, remove_surrogates(path)))
def do_serve(self, args): def do_serve(self, args):
"""Start in server mode. This command is usually not used manually. """Start in server mode. This command is usually not used manually.
@ -801,6 +802,8 @@ class Archiver:
help="""toggle progress display while creating the archive, showing Original, help="""toggle progress display while creating the archive, showing Original,
Compressed and Deduplicated sizes, followed by the Number of files seen Compressed and Deduplicated sizes, followed by the Number of files seen
and the path being processed, default: %(default)s""") and the path being processed, default: %(default)s""")
subparser.add_argument('--changed', action='store_true', dest='changed', default=False,
help="""display which files were added to the archive""")
subparser.add_argument('-e', '--exclude', dest='excludes', subparser.add_argument('-e', '--exclude', dest='excludes',
type=ExcludePattern, action='append', type=ExcludePattern, action='append',
metavar="PATTERN", help='exclude paths matching PATTERN') metavar="PATTERN", help='exclude paths matching PATTERN')
@ -1171,6 +1174,7 @@ class Archiver:
args = self.preprocess_args(args) args = self.preprocess_args(args)
parser = self.build_parser(args) parser = self.build_parser(args)
args = parser.parse_args(args or ['-h']) args = parser.parse_args(args or ['-h'])
self.args = args
update_excludes(args) update_excludes(args)
return args return args

View File

@ -723,6 +723,27 @@ class ArchiverTestCase(ArchiverTestCaseBase):
# http://borgbackup.readthedocs.org/en/latest/faq.html#i-am-seeing-a-added-status-for-a-unchanged-file # http://borgbackup.readthedocs.org/en/latest/faq.html#i-am-seeing-a-added-status-for-a-unchanged-file
self.assert_in("A input/file2", output) self.assert_in("A input/file2", output)
def test_create_topical(self):
self.create_regular_file('file1', size=1024 * 80)
self.cmd('init', self.repository_location)
# no listing by default
output = self.cmd('create', self.repository_location + '::test', 'input')
self.assert_not_in('file1', output)
# shouldn't be listed even if unchanged
output = self.cmd('create', self.repository_location + '::test0', 'input')
self.assert_not_in('file1', output)
# should list the file as unchanged
#output = self.cmd('create', '--unchanged', self.repository_location + '::test1', 'input')
#self.assert_in('file1', output)
# should *not* list the file as changed
#output = self.cmd('create', '--changed', self.repository_location + '::test2', 'input')
#self.assert_not_in('file1', output)
# change the file
self.create_regular_file('file1', size=1024 * 100)
# should list the file as changed
output = self.cmd('create', '--changed', self.repository_location + '::test3', 'input')
self.assert_in('file1', output)
def test_cmdline_compatibility(self): def test_cmdline_compatibility(self):
self.create_regular_file('file1', size=1024 * 80) self.create_regular_file('file1', size=1024 * 80)
self.cmd('init', self.repository_location) self.cmd('init', self.repository_location)