Hi, I discovered another problem with hotcopy for old FSFS format 1/2 repositories (apart from those reported in http://svn.haxx.se/dev/archive-2014-01/0089.shtml) Attempting to hotcopy an old repository with at least one propchange currently ends up with mismatching node ids in source and destination db/current files. Here is the patch with a failing test for this problem.
Log message: [[[ Add a test for the erroneous 'svnadmin hotcopy' behavior for FSFS format 1/2 repositories with at least one propchange. Hotcopying these repositories currently ends up with mismatching node ids in source and destination db/current files. * subversion/tests/cmdline/svnadmin_tests.py (fsfs_hotcopy_old_with_propchanges): New test for the erroneous 'svnadmin hotcopy' behavior. Marked as XFail. (test_list): Add reference to new test. Patch by: Evgeny Kotkov <evgeny.kotkov{_AT_}visualsvn.com> ]]] I did not have time to examine this issue yet, but might be able to do this in the nearby future. Thanks and regards, Evgeny Kotkov
Index: subversion/tests/cmdline/svnadmin_tests.py =================================================================== --- subversion/tests/cmdline/svnadmin_tests.py (revision 1569069) +++ subversion/tests/cmdline/svnadmin_tests.py (working copy) @@ -2273,6 +2273,27 @@ def load_ignore_dates(sbox): " start_time: %s" % (rev, str(rev_time), str(start_time))) + +@XFail() +@SkipUnless(svntest.main.is_fs_type_fsfs) +def fsfs_hotcopy_old_with_propchanges(sbox): + "hotcopy --compatible-version=1.3 with propchanges" + + # Around trunk@1569069, running 'svnadmin hotcopy' for the + # --compatible-version=1.3 repository with property changes + # ended with mismatching db/current in source and destination: + # (source: "2 l 1", destination: "2 k 1"). + + sbox.build(create_wc=True, minor_version=3) + sbox.simple_propset('foo', 'bar', 'A/mu') + sbox.simple_commit() + + backup_dir, backup_url = sbox.add_repo_path('backup') + svntest.actions.run_and_verify_svnadmin(None, None, [], "hotcopy", + sbox.repo_dir, backup_dir) + + check_hotcopy_fsfs(sbox.repo_dir, backup_dir) + ######################################################################## # Run the tests @@ -2315,6 +2336,7 @@ test_list = [ None, fsfs_recover_old_non_empty, fsfs_hotcopy_old_non_empty, load_ignore_dates, + fsfs_hotcopy_old_with_propchanges, ] if __name__ == '__main__':