Author: pburba Date: Thu Jul 14 20:01:51 2011 New Revision: 1146874 URL: http://svn.apache.org/viewvc?rev=1146874&view=rev Log: On the 1.6.x-issue3957 branch: Merge r1146121 from ^/subversion/trunk.
* subversion/tests/cmdline/merge_tests.py No conflicts, just a few tweaks to run properly on 1.6.x. Note: Since r1146121 on trunk was made to merge_reintegrate_tests, I merged from ^/subversion/trunk/subversion/tests/cmdline/merge_tests.py directly to merge_tests.py on the branch to avoid the tree conflict. This shouldn't cause any problems when reintegrating back to 1.6.x as long as a 1.7 client is used. Modified: subversion/branches/1.6.x-issue3957/subversion/tests/cmdline/merge_tests.py (contents, props changed) Modified: subversion/branches/1.6.x-issue3957/subversion/tests/cmdline/merge_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/1.6.x-issue3957/subversion/tests/cmdline/merge_tests.py?rev=1146874&r1=1146873&r2=1146874&view=diff ============================================================================== --- subversion/branches/1.6.x-issue3957/subversion/tests/cmdline/merge_tests.py (original) +++ subversion/branches/1.6.x-issue3957/subversion/tests/cmdline/merge_tests.py Thu Jul 14 20:01:51 2011 @@ -16740,6 +16740,121 @@ def record_only_merge_creates_self_refer None, None, None, None, None, 1, 1, '--record-only') +#---------------------------------------------------------------------- +# Test for regression on 1.6.x branch, merge fails when source without +# subtree mergeinfo is reintegrated into a target with subtree +# mergeinfo. Deliberately written in a style that works with the 1.6 +# testsuite. +# +# See issue #3957. +def no_source_subtree_mergeinfo(sbox): + "source without subtree mergeinfo" + + sbox.build() + wc_dir=sbox.wc_dir + + svntest.main.file_write(os.path.join(wc_dir, 'A', 'B', 'E', 'alpha'), + 'AAA\n' + + 'BBB\n' + + 'CCC\n') + svntest.main.run_svn(None, 'commit', '-m', 'log message', wc_dir) + svntest.main.run_svn(None, 'update', wc_dir) + + # Create branch-1 + svntest.main.run_svn(None, 'copy', + os.path.join(wc_dir, 'A', 'B'), + os.path.join(wc_dir, 'A', 'B1')) + svntest.main.run_svn(None, 'commit', '-m', 'log message', wc_dir) + + # Create branch-1 + svntest.main.run_svn(None, 'copy', + os.path.join(wc_dir, 'A', 'B'), + os.path.join(wc_dir, 'A', 'B2')) + svntest.main.run_svn(None, 'commit', '-m', 'log message', wc_dir) + + # Change on trunk + svntest.main.file_write(os.path.join(wc_dir, 'A', 'B', 'E', 'alpha'), + 'AAAxx\n' + + 'BBB\n' + + 'CCC\n') + svntest.main.run_svn(None, 'commit', '-m', 'log message', wc_dir) + + # Change on branch-1 + svntest.main.file_write(os.path.join(wc_dir, 'A', 'B1', 'E', 'alpha'), + 'AAA\n' + + 'BBBxx\n' + + 'CCC\n') + svntest.main.run_svn(None, 'commit', '-m', 'log message', wc_dir) + + # Change on branch-2 + svntest.main.file_write(os.path.join(wc_dir, 'A', 'B2', 'E', 'alpha'), + 'AAA\n' + + 'BBB\n' + + 'CCCxx\n') + svntest.main.run_svn(None, 'commit', '-m', 'log message', wc_dir) + svntest.main.run_svn(None, 'update', wc_dir) + + # Merge trunk to branch-1 + svntest.main.run_svn(None, 'merge', '^/A/B', os.path.join(wc_dir, 'A', 'B1')) + svntest.main.run_svn(None, 'commit', '-m', 'log message', wc_dir) + svntest.main.run_svn(None, 'update', wc_dir) + + # Reintegrate branch-1 subtree to trunk subtree + svntest.main.run_svn(None, 'merge', '--reintegrate', + '^/A/B1/E', os.path.join(wc_dir, 'A', 'B', 'E')) + svntest.main.run_svn(None, 'commit', '-m', 'log message', wc_dir) + svntest.main.run_svn(None, 'update', wc_dir) + + # Merge trunk to branch-2 + svntest.main.run_svn(None, 'merge', '^/A/B', os.path.join(wc_dir, 'A', 'B2')) + svntest.main.run_svn(None, 'commit', '-m', 'log message', wc_dir) + svntest.main.run_svn(None, 'update', wc_dir) + + # Reverse merge branch-1 subtree to branch-2 subtree, this removes + # the subtree mergeinfo from branch 2 + svntest.main.run_svn(None, 'merge', '-r8:2', + '^/A/B1/E', os.path.join(wc_dir, 'A', 'B2', 'E')) + svntest.main.run_svn(None, 'commit', '-m', 'log message', wc_dir) + svntest.main.run_svn(None, 'update', wc_dir) + + # Merge trunk to branch-2 + svntest.main.run_svn(None, 'merge', '^/A/B', os.path.join(wc_dir, 'A', 'B2')) + svntest.main.run_svn(None, 'commit', '-m', 'log message', wc_dir) + svntest.main.run_svn(None, 'update', wc_dir) + + # Reintegrate branch-2 to trunk, this fails in 1.6.x from 1.6.13. + # The error message states revisions /A/B/E:3-11 are missing from + # /A/B2/E and yet the mergeinfo on /A/B2 is /A/B:3-11 and /A/B2/E + # has no mergeinfo. + expected_output = wc.State(os.path.join(wc_dir, 'A', 'B'), { + 'E' : Item(status=' U'), + 'E/alpha' : Item(status='U '), + }) + expected_mergeinfo = wc.State(os.path.join(wc_dir, 'A', 'B'), { + '' : Item(status=' U'), + }) + expected_elision = wc.State(os.path.join(wc_dir, 'A', 'B'), { + }) + expected_disk = wc.State('', { + '' : Item(props={SVN_PROP_MERGEINFO : '/A/B2:3-12'}), + 'E' : Item(), + 'E/alpha' : Item("AAA\n" + + "BBB\n" + + "CCCxx\n"), + 'E/beta' : Item("This is the file 'beta'.\n"), + 'F' : Item(), + 'lambda' : Item("This is the file 'lambda'.\n"), + }) + expected_skip = wc.State(os.path.join(wc_dir, 'A', 'B'), { + }) + svntest.actions.run_and_verify_merge(os.path.join(wc_dir, 'A', 'B'), + None, None, '^/A/B2', + expected_output, + expected_disk, + None, expected_skip, + None, None, None, None, None, + 1, 1, '--reintegrate') + ######################################################################## # Run the tests @@ -16964,6 +17079,7 @@ test_list = [ None, added_subtrees_with_mergeinfo_break_reintegrate, two_URL_merge_removes_valid_mergefino_from_target, record_only_merge_creates_self_referential_mergeinfo, + no_source_subtree_mergeinfo, ] if __name__ == '__main__': Propchange: subversion/branches/1.6.x-issue3957/subversion/tests/cmdline/merge_tests.py ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Jul 14 20:01:51 2011 @@ -111,5 +111,5 @@ /subversion/branches/tc_url_rev/subversion/tests/cmdline/merge_tests.py:874351-874483 /subversion/branches/tree-conflicts/subversion/tests/cmdline/merge_tests.py:868291-873154 /subversion/branches/tree-conflicts-notify/subversion/tests/cmdline/merge_tests.py:873926-874008 -/subversion/trunk/subversion/tests/cmdline/merge_reintegrate_tests.py:953878 +/subversion/trunk/subversion/tests/cmdline/merge_reintegrate_tests.py:953878,1146121 /subversion/trunk/subversion/tests/cmdline/merge_tests.py:875965,875968,876004,876012,876017,876019,876022,876024,876032,876041-876042,876048,876051,876055-876056,876059,876083,876091,876097,876101,876104,876109,876123-876125,876129,876132,876138,876160,876167,876175,876180,876185,876205,876223-876225,876230,876233,876245,876252,876256,876283,876287,876312,876326-876327,876330,876366,876372,876374,876376,876383,876386,876442,876456-876457,876462-876464,876467,876469,876480,876486,876495-876497,876516-876518,876524,876526,876583,876601,876614,876628,876633,876641,876645,876659,876687,876689,876705,876715,876726,876760,876763,876794,876804,876815-876816,876821,876825,876837,876840-876841,876843,876849,876857-876858,876862,876873,876890,876897,876905,876908,876925,876931,876934,876948-876949,876953,876987,876993,877011,877014,877016,877028-877029,877038,877119,877127,877146,877157,877191,877195,877203,877211,877230,877234,877237,877243,877249,877259,877261,877304,877319,877407, 877437,877441-877442,877453,877459,877472,877544,877553,877565,877568,877573,877593,877595,877597,877601,877612,877665,877667,877681,877692,877696,877701,877720,877730,877784,877793,877797,877809,877814-877815,877819,877821,877842,877848,877853,877867,877869,877873,877901,877909,877916,877931,877942,877953,877964,877968,877970,877981-877982,878005,878013,878015,878020,878046,878053,878062,878074,878080,878089,878091,878093,878095,878127,878129,878131,878142,878173-878176,878216,878240,878242,878255,878269,878272,878279,878296-878297,878303,878321,878335,878338,878341,878343,878353,878364,878367-878368,878385,878399,878423,878426,878447,878462,878484,878491,878498,878532,878590,878595,878607,878625-878627,878646,878659,878673,878682-878683,878690-878691,878693,878723,878760-878761,878873,878875,878877,878879,878905,878910-878911,878915-878916,878924-878925,878946,878949,878955,878960,878970,878981,879001,879033,879056,879074,879076,879081-879082,879093,879105,879126,879148,87 9170,879198-879199,879201,879271,879293,879357,879375-879376,879403,879631,879635-879636,879688,879709-879711,879747,879902,879916,879954,879961,879966,879971,880027,880082,880095,880105,880162,880226,880274-880275,880370,880450,880461,880474,880525-880526,880552,881905,884842,886164,886197,888715,888979,889081,889840,891672,892050,892085,895514,895653,896522,896915,898048,898963,899826,899828,900797,901304,901752,902093,902467,904301,904394,904594,905303,905326,906256,906305,906587,908980-908981,917640,918211,922516,923389,923391,926151,926167,927323,927328,931209,931211,931392,931568,932942,933299,934599,934603,935631,935992,935996,937610,944635,945350,946767,947006,948512,948916,949307,950931,950933,951753,952992,953317,955369,957507,958024,959004,959760,961055,961970,962377-962378,964167,964767,965405,965469,965508,979045,979429,981921,984565,984928,984931,991534,996884,997026,997070,997471,997474,1000038,1000060,1000607,1000612,1001009,1002094,1005446,1022675,1024269,10 28108,1031165,1031186,1032808,1033166,1033665,1033685,1033921,1034557,1035745,1036978,1037762,1038792,1041438,1051632,1051638,1051733,1051744-1051745,1051751,1051761,1051763,1051775,1051778,1051968,1051978,1051988,1052029,1052041,1052068,1053185,1053208,1053233,1053499,1053984,1058722,1063572-1063573,1063592,1063870,1063946,1064839,1066249,1066270,1066276,1068988,1070912,1071239,1071307,1072084,1072953,1076759,1086222,1125983,1125998,1126007