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__':