@SkipUnless(svntest.main.is_fs_type_fsfs)
@SkipUnless(svntest.main.fs_has_pack)
def fsfs_hotcopy_progress(sbox):
    'hotcopy progress reporting'
    if svntest.main.options.fsfs_packing:
        raise svntest.Skip('fsfs packing set')
    sbox.build(create_wc=False, empty=True)
    patch_format(sbox.repo_dir, shard_size=3)
    (inc_backup_dir, inc_backup_url) = sbox.add_repo_path('incremental-backup')
    expected_full = ['* Copied revision 0.\n']
    expected_incremental = ['* Copied revision 0.\n']
    (backup_dir, backup_url) = sbox.add_repo_path('backup-0')
    svntest.actions.run_and_verify_svnadmin(expected_full, [], 'hotcopy', sbox.repo_dir, backup_dir)
    svntest.actions.run_and_verify_svnadmin(expected_incremental, [], 'hotcopy', '--incremental', sbox.repo_dir, inc_backup_dir)
    for i in range(3):
        svntest.actions.run_and_verify_svn(None, [], 'mkdir', '-m', svntest.main.make_log_msg(), (sbox.repo_url + ('/dir-%i' % i)))
    expected_full = ['* Copied revision 0.\n', '* Copied revision 1.\n', '* Copied revision 2.\n', '* Copied revision 3.\n']
    expected_incremental = ['* Copied revision 1.\n', '* Copied revision 2.\n', '* Copied revision 3.\n']
    (backup_dir, backup_url) = sbox.add_repo_path('backup-1')
    svntest.actions.run_and_verify_svnadmin(expected_full, [], 'hotcopy', sbox.repo_dir, backup_dir)
    svntest.actions.run_and_verify_svnadmin(expected_incremental, [], 'hotcopy', '--incremental', sbox.repo_dir, inc_backup_dir)
    svntest.actions.run_and_verify_svnadmin(None, [], 'pack', sbox.repo_dir)
    expected_full = ['* Copied revisions from 0 to 2.\n', '* Copied revision 3.\n']
    expected_incremental = ['* Copied revisions from 0 to 2.\n']
    (backup_dir, backup_url) = sbox.add_repo_path('backup-2')
    svntest.actions.run_and_verify_svnadmin(expected_full, [], 'hotcopy', sbox.repo_dir, backup_dir)
    svntest.actions.run_and_verify_svnadmin(expected_incremental, [], 'hotcopy', '--incremental', sbox.repo_dir, inc_backup_dir)
    for i in range(4, 6):
        svntest.actions.run_and_verify_svn(None, [], 'mkdir', '-m', svntest.main.make_log_msg(), (sbox.repo_url + ('/dir-%i' % i)))
    svntest.actions.run_and_verify_svnadmin(None, [], 'pack', sbox.repo_dir)
    for i in range(6, 8):
        svntest.actions.run_and_verify_svn(None, [], 'mkdir', '-m', svntest.main.make_log_msg(), (sbox.repo_url + ('/dir-%i' % i)))
    expected_full = ['* Copied revisions from 0 to 2.\n', '* Copied revisions from 3 to 5.\n', '* Copied revision 6.\n', '* Copied revision 7.\n']
    expected_incremental = ['* Copied revisions from 3 to 5.\n', '* Copied revision 6.\n', '* Copied revision 7.\n']
    (backup_dir, backup_url) = sbox.add_repo_path('backup-3')
    svntest.actions.run_and_verify_svnadmin(expected_full, [], 'hotcopy', sbox.repo_dir, backup_dir)
    svntest.actions.run_and_verify_svnadmin(expected_incremental, [], 'hotcopy', '--incremental', sbox.repo_dir, inc_backup_dir)
hotcopy progress reporting
@SkipUnless(svntest.main.is_fs_type_fsfs)
@SkipUnless(svntest.main.fs_has_pack)
def fsfs_hotcopy_progress(sbox):
    
    if svntest.main.options.fsfs_packing:
        raise svntest.Skip('fsfs packing set')
    sbox.build(create_wc=False, empty=True)
    patch_format(sbox.repo_dir, shard_size=3)
    (inc_backup_dir, inc_backup_url) = sbox.add_repo_path('incremental-backup')
    expected_full = ['* Copied revision 0.\n']
    expected_incremental = ['* Copied revision 0.\n']
    (backup_dir, backup_url) = sbox.add_repo_path('backup-0')
    svntest.actions.run_and_verify_svnadmin(expected_full, [], 'hotcopy', sbox.repo_dir, backup_dir)
    svntest.actions.run_and_verify_svnadmin(expected_incremental, [], 'hotcopy', '--incremental', sbox.repo_dir, inc_backup_dir)
    for i in range(3):
        svntest.actions.run_and_verify_svn(None, [], 'mkdir', '-m', svntest.main.make_log_msg(), (sbox.repo_url + ('/dir-%i' % i)))
    expected_full = ['* Copied revision 0.\n', '* Copied revision 1.\n', '* Copied revision 2.\n', '* Copied revision 3.\n']
    expected_incremental = ['* Copied revision 1.\n', '* Copied revision 2.\n', '* Copied revision 3.\n']
    (backup_dir, backup_url) = sbox.add_repo_path('backup-1')
    svntest.actions.run_and_verify_svnadmin(expected_full, [], 'hotcopy', sbox.repo_dir, backup_dir)
    svntest.actions.run_and_verify_svnadmin(expected_incremental, [], 'hotcopy', '--incremental', sbox.repo_dir, inc_backup_dir)
    svntest.actions.run_and_verify_svnadmin(None, [], 'pack', sbox.repo_dir)
    expected_full = ['* Copied revisions from 0 to 2.\n', '* Copied revision 3.\n']
    expected_incremental = ['* Copied revisions from 0 to 2.\n']
    (backup_dir, backup_url) = sbox.add_repo_path('backup-2')
    svntest.actions.run_and_verify_svnadmin(expected_full, [], 'hotcopy', sbox.repo_dir, backup_dir)
    svntest.actions.run_and_verify_svnadmin(expected_incremental, [], 'hotcopy', '--incremental', sbox.repo_dir, inc_backup_dir)
    for i in range(4, 6):
        svntest.actions.run_and_verify_svn(None, [], 'mkdir', '-m', svntest.main.make_log_msg(), (sbox.repo_url + ('/dir-%i' % i)))
    svntest.actions.run_and_verify_svnadmin(None, [], 'pack', sbox.repo_dir)
    for i in range(6, 8):
        svntest.actions.run_and_verify_svn(None, [], 'mkdir', '-m', svntest.main.make_log_msg(), (sbox.repo_url + ('/dir-%i' % i)))
    expected_full = ['* Copied revisions from 0 to 2.\n', '* Copied revisions from 3 to 5.\n', '* Copied revision 6.\n', '* Copied revision 7.\n']
    expected_incremental = ['* Copied revisions from 3 to 5.\n', '* Copied revision 6.\n', '* Copied revision 7.\n']
    (backup_dir, backup_url) = sbox.add_repo_path('backup-3')
    svntest.actions.run_and_verify_svnadmin(expected_full, [], 'hotcopy', sbox.repo_dir, backup_dir)
    svntest.actions.run_and_verify_svnadmin(expected_incremental, [], 'hotcopy', '--incremental', sbox.repo_dir, inc_backup_dir)