Author: pburba Date: Thu Aug 11 18:31:29 2011 New Revision: 1156717 URL: http://svn.apache.org/viewvc?rev=1156717&view=rev Log: Update test for issue #3986 'svn_client_mergeinfo_log API broken with WC target which inherits mergeinfo from repos' to cover another failing use case.
* subversion/tests/cmdline/mergeinfo_tests.py (wc_target_inherits_mergeinfo_from_repos): Cover the use case analogous to that markphip provided in a JavaHL test - see http://svn.haxx.se/dev/archive-2011-08/0101.shtml Modified: subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py Modified: subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py?rev=1156717&r1=1156716&r2=1156717&view=diff ============================================================================== --- subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py (original) +++ subversion/trunk/subversion/tests/cmdline/mergeinfo_tests.py Thu Aug 11 18:31:29 2011 @@ -500,30 +500,33 @@ def wc_target_inherits_mergeinfo_from_re sbox.build() wc_dir = sbox.wc_dir - wc_disk, wc_status = set_up_branch(sbox) + wc_disk, wc_status = set_up_branch(sbox, nbr_of_branches=2) A_COPY_path = os.path.join(wc_dir, 'A_COPY') rho_COPY_path = os.path.join(wc_dir, 'A_COPY', 'D', 'G', 'rho') - - # Merge -c4 ^/A/D/G/rho A_COPY\D\G\rho - # Merge -c6 ^/A A_COPY - # Commit as r7 + gamma_2_path = os.path.join(wc_dir, 'A_COPY_2', 'D', 'gamma') + tau_path = os.path.join(wc_dir, 'A', 'D', 'G', 'tau') + D_COPY_path = os.path.join(wc_dir, 'A_COPY', 'D') + + # Merge -c5 ^/A/D/G/rho A_COPY\D\G\rho + # Merge -c7 ^/A A_COPY + # Commit as r8 # # This gives us some explicit mergeinfo on the "branch" root and # one of its subtrees: # # Properties on 'A_COPY\D\G\rho': # svn:mergeinfo - # /A/D/G/rho:4 + # /A/D/G/rho:5 # Properties on 'A_COPY': # svn:mergeinfo - # /A:6 + # /A:7 svntest.actions.run_and_verify_svn(None, None, [], 'merge', sbox.repo_url + '/A/D/G/rho', - rho_COPY_path, '-c4') + rho_COPY_path, '-c5') svntest.actions.run_and_verify_svn(None, None, [], 'merge', sbox.repo_url + '/A', - A_COPY_path, '-c6') + A_COPY_path, '-c7') svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m', 'Cherrypicks to branch subtree and root', wc_dir) @@ -540,46 +543,108 @@ def wc_target_inherits_mergeinfo_from_re # Eligible : Non-recursive svntest.actions.run_and_verify_mergeinfo( adjust_error_for_server_version(''), - ['3','4'], sbox.repo_url + '/A/D', subtree_wc, + ['4','5'], sbox.repo_url + '/A/D', subtree_wc, '--show-revs', 'eligible') # Eligible : Recursive svntest.actions.run_and_verify_mergeinfo( adjust_error_for_server_version(''), - ['3',], sbox.repo_url + '/A/D', subtree_wc, + ['4'], sbox.repo_url + '/A/D', subtree_wc, '--show-revs', 'eligible', '-R') # Merged : Non-recursive # - # Currently this fails because r6 is not shown as merged, despite the fact + # Currently this fails because r7 is not shown as merged, despite the fact # that the target inherits it from ^/A_COPY svntest.actions.run_and_verify_mergeinfo( adjust_error_for_server_version(''), - ['6'], sbox.repo_url + '/A/D', subtree_wc, + ['7'], sbox.repo_url + '/A/D', subtree_wc, '--show-revs', 'merged') # Merged : Recursive # - # Currently this fails because r6 is again missing. + # Currently this fails because r7 is again missing. svntest.actions.run_and_verify_mergeinfo( adjust_error_for_server_version(''), - ['4','6'], sbox.repo_url + '/A/D', subtree_wc, + ['5','7'], sbox.repo_url + '/A/D', subtree_wc, '--show-revs', 'merged', '-R') + # Test that intersecting revisions in the 'svn mergeinfo' target + # from one source don't show up as merged when asking about a different + # source. + # + # In r9 make a change that effects two branches: + svntest.actions.run_and_verify_svn(None, None, [], 'up', wc_dir) + svntest.main.file_write(gamma_2_path, "New content.\n") + svntest.main.file_write(tau_path, "New content.\n") + svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m', + 'Make changes under both A and A_COPY_2', + wc_dir) + + # In r10 merge r9 from A_COPY_2 to A_COPY. + # + # This gives us this mergeinfo: + # + # Properties on 'A_COPY': + # svn:mergeinfo + # /A:7 + # /A_COPY_2:9 + # Properties on 'A_COPY\D\G\rho': + # svn:mergeinfo + # /A/D/G/rho:5 + svntest.actions.run_and_verify_svn(None, None, [], 'merge', + sbox.repo_url + '/A_COPY_2', + A_COPY_path, '-c9') + svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m', + 'Merge r8 from A_COPY_2 to A_COPY', + wc_dir) + + def test_svn_mergeinfo_4_way(wc_target): + # Eligible : Non-recursive + svntest.actions.run_and_verify_mergeinfo( + adjust_error_for_server_version(''), + ['4','5','9'], sbox.repo_url + '/A/D', wc_target, + '--show-revs', 'eligible') + + # Eligible : Recursive + svntest.actions.run_and_verify_mergeinfo( + adjust_error_for_server_version(''), + ['4','9'], sbox.repo_url + '/A/D', wc_target, + '--show-revs', 'eligible', '-R') + + # Merged : Non-recursive + svntest.actions.run_and_verify_mergeinfo( + adjust_error_for_server_version(''), + ['7'], sbox.repo_url + '/A/D', wc_target, + '--show-revs', 'merged') + + # Merged : Recursive + svntest.actions.run_and_verify_mergeinfo( + adjust_error_for_server_version(''), + ['5','7'], sbox.repo_url + '/A/D', wc_target, + '--show-revs', 'merged', '-R') + + # Test while the target is the full WC and then with the subtree WC: + svntest.actions.run_and_verify_svn(None, None, [], 'up', wc_dir) + svntest.actions.run_and_verify_svn(None, None, [], 'up', subtree_wc) + + test_svn_mergeinfo_4_way(D_COPY_path) + test_svn_mergeinfo_4_way(subtree_wc) + ######################################################################## # Run the tests # list all tests here, starting with None: test_list = [ None, - no_mergeinfo, - mergeinfo, - explicit_mergeinfo_source, - mergeinfo_non_source, - mergeinfo_on_unknown_url, - non_inheritable_mergeinfo, - recursive_mergeinfo, - mergeinfo_on_pegged_wc_path, + #no_mergeinfo, + #mergeinfo, + #explicit_mergeinfo_source, + #mergeinfo_non_source, + #mergeinfo_on_unknown_url, + #non_inheritable_mergeinfo, + #recursive_mergeinfo, + #mergeinfo_on_pegged_wc_path, wc_target_inherits_mergeinfo_from_repos, ]