Author: pburba Date: Wed Feb 3 21:36:54 2010 New Revision: 906256 URL: http://svn.apache.org/viewvc?rev=906256&view=rev Log: Add a test for issue #3573 'local non-inheritable mergeinfo changes not properly merged with updated mergeinfo'
* subversion/tests/cmdline/update_tests.py Import set_up_branch from merge_tests.py (mergeinfo_updates_merge_with_local_mods): (test_list): Add XFailing mergeinfo_updates_merge_with_local_mods. Modified: subversion/trunk/subversion/tests/cmdline/update_tests.py Modified: subversion/trunk/subversion/tests/cmdline/update_tests.py URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/update_tests.py?rev=906256&r1=906255&r2=906256&view=diff ============================================================================== --- subversion/trunk/subversion/tests/cmdline/update_tests.py (original) +++ subversion/trunk/subversion/tests/cmdline/update_tests.py Wed Feb 3 21:36:54 2010 @@ -31,6 +31,7 @@ import svntest from svntest import wc from merge_tests import expected_merge_output +from merge_tests import set_up_branch # (abbreviation) Skip = svntest.testcase.Skip @@ -5136,6 +5137,61 @@ None, None, 1, wc_dir) +#---------------------------------------------------------------------- +# Test for issue #3573 'local non-inheritable mergeinfo changes not +# properly merged with updated mergeinfo' +def mergeinfo_updates_merge_with_local_mods(sbox): + "local mergeinfo changes are merged with updates" + + # Copy A to A_COPY in r2, and make some changes to A_COPY in r3-r6. + sbox.build() + wc_dir = sbox.wc_dir + expected_disk, expected_status = set_up_branch(sbox) + + # Some paths we'll care about + A_path = os.path.join(wc_dir, "A") + A_COPY_path = os.path.join(wc_dir, "A_COPY") + + # Merge -c3 from A to A_COPY at --depth empty, commit as r7. + ### + ### No, we are not checking the merge output for these simple + ### merges. This is already covered *TO DEATH* in merge_tests.py. + ### + svntest.actions.run_and_verify_svn(None, None, [], 'up', wc_dir) + svntest.actions.run_and_verify_svn(None, None, [], + 'merge', '-c3', '--depth', 'empty', + sbox.repo_url + '/A', A_COPY_path) + svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m', + 'Merge r3 from A to A_COPY at depth empty', + wc_dir) + # Merge -c5 from A to A_COPY (at default --depth infinity), commit as r8. + svntest.actions.run_and_verify_svn(None, None, [], 'up', wc_dir) + svntest.actions.run_and_verify_svn(None, None, [], + 'merge', '-c5', + sbox.repo_url + '/A', A_COPY_path) + svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m', + 'Merge r5 from A to A_COPY', wc_dir) + + # Update WC to r7, repeat merge of -c3 from A to A_COPY but this + # time do it at --depth infinity. Confirm that the mergeinfo + # on A_COPY is no longer inheritable. + svntest.actions.run_and_verify_svn(None, None, [], 'up', '-r7', wc_dir) + svntest.actions.run_and_verify_svn(None, None, [], + 'merge', '-c3', '--depth', 'infinity', + sbox.repo_url + '/A', A_COPY_path) + svntest.actions.run_and_verify_svn(None, [A_COPY_path + " - /A:3\n"], [], + 'pg', SVN_PROP_MERGEINFO, '-R', + A_COPY_path) + + # Update the WC (to r8), the mergeinfo on A_COPY should now have both + # the local mod from the uncommitted merge (/A:3* --> /A:3) and the change + # brought down by the update (/A:3* --> /A:3*,5) leaving us with /A:3,5. + ### Currently this fails because of issue #3573. The local mergeinfo change + ### is reverted, leaving '/A:3*,5' on A_COPY. + svntest.actions.run_and_verify_svn(None, None, [], 'up', wc_dir) + svntest.actions.run_and_verify_svn(None, [A_COPY_path + " - /A:3,5\n"], [], + 'pg', SVN_PROP_MERGEINFO, '-R', + A_COPY_path) ####################################################################### # Run the tests @@ -5204,6 +5260,7 @@ update_wc_of_dir_to_rev_not_containing_this_dir, XFail(update_deleted_locked_files), XFail(update_empty_hides_entries), + XFail(mergeinfo_updates_merge_with_local_mods), ] if __name__ == '__main__':