Author: hwright
Date: Thu Sep 22 11:40:06 2011
New Revision: 1174076
URL: http://svn.apache.org/viewvc?rev=1174076&view=rev
Log:
Reintegrate the 1.6.x-issue3957 branch:
* r1146121, r1146870
Fix issue #3957 'reintegrate fails with no subtree mergeinfo on source'.
Branch:
^/subversion/branches/1.6.x-issue3957
Justification:
Fixes a reintegrate merge use case.
Votes:
+1: pburba, philip, kameshj
Modified:
subversion/branches/1.6.x/ (props changed)
subversion/branches/1.6.x/STATUS
subversion/branches/1.6.x/subversion/libsvn_client/merge.c
subversion/branches/1.6.x/subversion/tests/cmdline/merge_tests.py
(contents, props changed)
Propchange: subversion/branches/1.6.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 22 11:40:06 2011
@@ -33,6 +33,7 @@
/subversion/branches/1.6.x-issue3843:1084999-1104104
/subversion/branches/1.6.x-issue3845:1086922-1104099
/subversion/branches/1.6.x-issue3853:1091877-1103782
+/subversion/branches/1.6.x-issue3957:1146871-1174075
/subversion/branches/1.6.x-neon-expat:1127177-1127947
/subversion/branches/1.6.x-no-svn_uri:876360-876415
/subversion/branches/1.6.x-no-wcng-check:1022248-1035322
@@ -120,4 +121,4 @@
/subversion/branches/tc_url_rev:874351-874483
/subversion/branches/tree-conflicts:868291-873154
/subversion/branches/tree-conflicts-notify:873926-874008
-/subversion/trunk: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-876615,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,87745
9,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,879170,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,880146,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,907644,908980-908981,917523,917640,918211,922516,923389,923391,926151,926167,927323,927328,931209,931211,931392,931568,932942,933299,934599,934603,935631,935992,935996,937610,939000,939002,939375-939376,944635,945350,946355,946767,947006,948512,948916,949307,950931,950933,951753,952992,953317,955369,957507,958024,959004,959760,961055,961970,962377-962378,964167,964349,964767,965405,965469,965508,979045,979429,980811,981449,981921,984565,984928,984931,991534,992114,996884,997026,997070,997457,997466,997471,997474,1000038,1
000060,1000607,1000612,1001009,1002094,1005446,1022675,1024269,1027957,1028084,1028108,1028125,1031165,1031186,1032808,1033166,1033290,1033665,1033685,1033921,1034557,1035745,1036429,1036534,1036978,1037762,1038792,1039040,1041438,1041638,1051632,1051638,1051733,1051744-1051745,1051751,1051761,1051763,1051775,1051778,1051968,1051978,1051988,1052029,1052041,1052068,1053185,1053208,1053233,1053499,1053984,1058269,1058722,1063572-1063573,1063592,1063870,1063946,1064839,1066249,1066270,1066276,1068988,1070912,1071239,1071307,1072084,1072953,1074572,1076730,1076759,1076826,1078954,1081255,1084575,1084581,1084764,1084962,1084978,1086222,1094692,1095654,1098608,1102803,1103665,1104309,1125983,1125998,1126007,1126810,1130303,1130448,1134734,1144316,1151036
+/subversion/trunk: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-876615,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,87745
9,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,879170,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,880146,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,907644,908980-908981,917523,917640,918211,922516,923389,923391,926151,926167,927323,927328,931209,931211,931392,931568,932942,933299,934599,934603,935631,935992,935996,937610,939000,939002,939375-939376,944635,945350,946355,946767,947006,948512,948916,949307,950931,950933,951753,952992,953317,955369,957507,958024,959004,959760,961055,961970,962377-962378,964167,964349,964767,965405,965469,965508,979045,979429,980811,981449,981921,984565,984928,984931,991534,992114,996884,997026,997070,997457,997466,997471,997474,1000038,1
000060,1000607,1000612,1001009,1002094,1005446,1022675,1024269,1027957,1028084,1028108,1028125,1031165,1031186,1032808,1033166,1033290,1033665,1033685,1033921,1034557,1035745,1036429,1036534,1036978,1037762,1038792,1039040,1041438,1041638,1051632,1051638,1051733,1051744-1051745,1051751,1051761,1051763,1051775,1051778,1051968,1051978,1051988,1052029,1052041,1052068,1053185,1053208,1053233,1053499,1053984,1058269,1058722,1063572-1063573,1063592,1063870,1063946,1064839,1066249,1066270,1066276,1068988,1070912,1071239,1071307,1072084,1072953,1074572,1076730,1076759,1076826,1078954,1081255,1084575,1084581,1084764,1084962,1084978,1086222,1094692,1095654,1098608,1102803,1103665,1104309,1125983,1125998,1126007,1126810,1130303,1130448,1134734,1144316,1146870,1151036
Modified: subversion/branches/1.6.x/STATUS
URL:
http://svn.apache.org/viewvc/subversion/branches/1.6.x/STATUS?rev=1174076&r1=1174075&r2=1174076&view=diff
==============================================================================
--- subversion/branches/1.6.x/STATUS (original)
+++ subversion/branches/1.6.x/STATUS Thu Sep 22 11:40:06 2011
@@ -260,12 +260,3 @@ Veto-blocked changes:
Approved changes:
=================
-
- * r1146121, r1146870
- Fix issue #3957 'reintegrate fails with no subtree mergeinfo on source'.
- Branch:
- ^/subversion/branches/1.6.x-issue3957
- Justification:
- Fixes a reintegrate merge use case.
- Votes:
- +1: pburba, philip, kameshj
Modified: subversion/branches/1.6.x/subversion/libsvn_client/merge.c
URL:
http://svn.apache.org/viewvc/subversion/branches/1.6.x/subversion/libsvn_client/merge.c?rev=1174076&r1=1174075&r2=1174076&view=diff
==============================================================================
--- subversion/branches/1.6.x/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/1.6.x/subversion/libsvn_client/merge.c Thu Sep 22
11:40:06 2011
@@ -8249,7 +8249,8 @@ find_unmerged_mergeinfo(svn_mergeinfo_ca
source_rev, svn_mergeinfo_inherited,
FALSE, iterpool));
if (subtree_catalog)
- source_mergeinfo = apr_hash_get(subtree_catalog, source_path,
+ source_mergeinfo = apr_hash_get(subtree_catalog,
+ source_path_rel_to_session,
APR_HASH_KEY_STRING);
/* A path might not have any inherited mergeinfo either. */
Modified: subversion/branches/1.6.x/subversion/tests/cmdline/merge_tests.py
URL:
http://svn.apache.org/viewvc/subversion/branches/1.6.x/subversion/tests/cmdline/merge_tests.py?rev=1174076&r1=1174075&r2=1174076&view=diff
==============================================================================
--- subversion/branches/1.6.x/subversion/tests/cmdline/merge_tests.py (original)
+++ subversion/branches/1.6.x/subversion/tests/cmdline/merge_tests.py Thu Sep
22 11:40:06 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/subversion/tests/cmdline/merge_tests.py
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 22 11:40:06 2011
@@ -29,6 +29,7 @@
/subversion/branches/1.6.x-issue3745/subversion/tests/cmdline/merge_tests.py:1032257-1033223
/subversion/branches/1.6.x-issue3816/subversion/tests/cmdline/merge_tests.py:1083880-1104106
/subversion/branches/1.6.x-issue3845/subversion/tests/cmdline/merge_tests.py:1086922-1104099
+/subversion/branches/1.6.x-issue3957/subversion/tests/cmdline/merge_tests.py:1146871-1174075
/subversion/branches/1.6.x-no-svn_uri/subversion/tests/cmdline/merge_tests.py:876360-876415
/subversion/branches/1.6.x-no-wcng-check/subversion/tests/cmdline/merge_tests.py:1022248-1035322
/subversion/branches/1.6.x-r1002094/subversion/tests/cmdline/merge_tests.py:1002741-1002773
@@ -111,5 +112,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