def dump_exclude_all_rev_changes(sbox):
    'svnadmin dump with all revision changes excluded'
    sbox.build(create_wc=False, empty=True)
    svntest.actions.run_and_verify_svn(svntest.verify.AnyOutput, [], 'mkdir', (sbox.repo_url + '/r1a'), (sbox.repo_url + '/r1b'), (sbox.repo_url + '/r1c'), '-m', 'Revision 1.')
    svntest.actions.run_and_verify_svn(svntest.verify.AnyOutput, [], 'mkdir', (sbox.repo_url + '/r2a'), (sbox.repo_url + '/r2b'), (sbox.repo_url + '/r2c'), '-m', 'Revision 2.')
    svntest.actions.run_and_verify_svn(svntest.verify.AnyOutput, [], 'mkdir', (sbox.repo_url + '/r3a'), (sbox.repo_url + '/r3b'), (sbox.repo_url + '/r3c'), '-m', 'Revision 3.')
    (_, dump, _) = svntest.actions.run_and_verify_svnadmin(None, [], 'dump', '-q', '--exclude', '/r2?', '--pattern', sbox.repo_dir)
    sbox2 = sbox.clone_dependent()
    sbox2.build(create_wc=False, empty=True)
    load_and_verify_dumpstream(sbox2, None, [], None, False, dump)
    expected_output = svntest.verify.RegexListOutput(['-+\\n', 'r3 | jrandom | .* | 1 line\\n', re.escape('Changed paths:'), re.escape('   A /r3a'), re.escape('   A /r3b'), re.escape('   A /r3c'), '', re.escape('Revision 3.'), '-+\\n', re.escape('r2 | (no author) | (no date) | 1 line'), '', '', '-+\\n', 'r1 | jrandom | .* | 1 line\\n', re.escape('Changed paths:'), re.escape('   A /r1a'), re.escape('   A /r1b'), re.escape('   A /r1c'), '', re.escape('Revision 1.'), '-+\\n'])
    svntest.actions.run_and_verify_svn(expected_output, [], 'log', '-v', sbox2.repo_url)
svnadmin dump with all revision changes excluded
def dump_exclude_all_rev_changes(sbox):
    
    sbox.build(create_wc=False, empty=True)
    svntest.actions.run_and_verify_svn(svntest.verify.AnyOutput, [], 'mkdir', (sbox.repo_url + '/r1a'), (sbox.repo_url + '/r1b'), (sbox.repo_url + '/r1c'), '-m', 'Revision 1.')
    svntest.actions.run_and_verify_svn(svntest.verify.AnyOutput, [], 'mkdir', (sbox.repo_url + '/r2a'), (sbox.repo_url + '/r2b'), (sbox.repo_url + '/r2c'), '-m', 'Revision 2.')
    svntest.actions.run_and_verify_svn(svntest.verify.AnyOutput, [], 'mkdir', (sbox.repo_url + '/r3a'), (sbox.repo_url + '/r3b'), (sbox.repo_url + '/r3c'), '-m', 'Revision 3.')
    (_, dump, _) = svntest.actions.run_and_verify_svnadmin(None, [], 'dump', '-q', '--exclude', '/r2?', '--pattern', sbox.repo_dir)
    sbox2 = sbox.clone_dependent()
    sbox2.build(create_wc=False, empty=True)
    load_and_verify_dumpstream(sbox2, None, [], None, False, dump)
    expected_output = svntest.verify.RegexListOutput(['-+\\n', 'r3 | jrandom | .* | 1 line\\n', re.escape('Changed paths:'), re.escape('   A /r3a'), re.escape('   A /r3b'), re.escape('   A /r3c'), , re.escape('Revision 3.'), '-+\\n', re.escape('r2 | (no author) | (no date) | 1 line'), , , '-+\\n', 'r1 | jrandom | .* | 1 line\\n', re.escape('Changed paths:'), re.escape('   A /r1a'), re.escape('   A /r1b'), re.escape('   A /r1c'), , re.escape('Revision 1.'), '-+\\n'])
    svntest.actions.run_and_verify_svn(expected_output, [], 'log', '-v', sbox2.repo_url)