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

Reply via email to