Author: hwright
Date: Tue May 17 10:19:46 2011
New Revision: 1104105
URL: http://svn.apache.org/viewvc?rev=1104105&view=rev
Log:
Reintegrate the 1.6.x-issue3843 branch:
* r1085001, r992114, r1084962, r1084978
Fix issue #3843, "file externals cause non-inheritable mergeinfo"
Justification:
Without this fix, merges into working copies which contain
file externals create non-inheritable mergeinfo on the merge
target, and explicit mergeinfo on file externals and all children.
This is not desirable, and can cause commits to fail unless mergeinfo
is manually removed from the file external.
Notes:
The r1083883 group is much less useful without this fix.
r1085001 was a commit to the branch. The other revisions are from trunk.
Branch:
^/subversion/branches/1.6.x-issue3843
Votes:
+1: stsp, pburba, cmpilato
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/externals_tests.py
Propchange: subversion/branches/1.6.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue May 17 10:19:46 2011
@@ -27,6 +27,7 @@
/subversion/branches/1.6.x-issue3719:1075930-1096984
/subversion/branches/1.6.x-issue3727:1032967-1033213
/subversion/branches/1.6.x-issue3745:1032257-1033223
+/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-no-svn_uri:876360-876415
@@ -110,4 +111,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,878595,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,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,917640,918211,922516,923389,923391,926151,926167,927323,927328,931209,931211,931392,931568,932942,933299,934599,934603,935631,935992,935996,937610,939375-939376,944635,945350,946355,946767,947006,948512,948916,949307,950931,950933,951753,952992,953317,955369,957507,958024,959004,959760,961055,961970,964167,964349,964767,965405,965469,965508,979045,979429,980811,981449,981921,984565,984928,984931,991534,996884,997026,997070,997457,997466,997471,997474,1000038,1000060,1000607,1000612,1001009,1002094,1005446,1022675,1024269,1027957,102810
8,1031165,1031186,1032808,1033166,1033290,1033665,1033685,1033921,1034557,1035745,1036534,1038792,1039040,1041438,1051632,1051638,1051733,1051744-1051745,1051751,1051761,1051763,1051775,1051778,1051968,1051978,1051988,1052029,1052041,1052068,1053185,1053208,1053233,1053499,1058269,1058722,1063870,1063946,1064839,1066249,1066270,1066276,1068988,1070912,1071239,1071307,1072084,1072953,1076759,1084575,1084581,1086222,1094692,1095654,1103665
+/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,878595,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,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,917640,918211,922516,923389,923391,926151,926167,927323,927328,931209,931211,931392,931568,932942,933299,934599,934603,935631,935992,935996,937610,939375-939376,944635,945350,946355,946767,947006,948512,948916,949307,950931,950933,951753,952992,953317,955369,957507,958024,959004,959760,961055,961970,964167,964349,964767,965405,965469,965508,979045,979429,980811,981449,981921,984565,984928,984931,991534,992114,996884,997026,997070,997457,997466,997471,997474,1000038,1000060,1000607,1000612,1001009,1002094,1005446,1022675,1024269,1027957
,1028108,1031165,1031186,1032808,1033166,1033290,1033665,1033685,1033921,1034557,1035745,1036534,1038792,1039040,1041438,1051632,1051638,1051733,1051744-1051745,1051751,1051761,1051763,1051775,1051778,1051968,1051978,1051988,1052029,1052041,1052068,1053185,1053208,1053233,1053499,1058269,1058722,1063870,1063946,1064839,1066249,1066270,1066276,1068988,1070912,1071239,1071307,1072084,1072953,1076759,1084575,1084581,1084962,1084978,1086222,1094692,1095654,1103665
Modified: subversion/branches/1.6.x/STATUS
URL:
http://svn.apache.org/viewvc/subversion/branches/1.6.x/STATUS?rev=1104105&r1=1104104&r2=1104105&view=diff
==============================================================================
--- subversion/branches/1.6.x/STATUS (original)
+++ subversion/branches/1.6.x/STATUS Tue May 17 10:19:46 2011
@@ -351,19 +351,3 @@ Approved changes:
^/subversion/branches/1.6.x-issue3816
Votes:
+1: stsp, pburba, cmpilato
-
- * r1085001, r992114, r1084962, r1084978
- Fix issue #3843, "file externals cause non-inheritable mergeinfo"
- Justification:
- Without this fix, merges into working copies which contain
- file externals create non-inheritable mergeinfo on the merge
- target, and explicit mergeinfo on file externals and all children.
- This is not desirable, and can cause commits to fail unless mergeinfo
- is manually removed from the file external.
- Notes:
- The r1083883 group is much less useful without this fix.
- r1085001 was a commit to the branch. The other revisions are from trunk.
- Branch:
- ^/subversion/branches/1.6.x-issue3843
- Votes:
- +1: stsp, pburba, cmpilato
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=1104105&r1=1104104&r2=1104105&view=diff
==============================================================================
--- subversion/branches/1.6.x/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/1.6.x/subversion/libsvn_client/merge.c Tue May 17
10:19:46 2011
@@ -5005,8 +5005,10 @@ get_mergeinfo_walk_cb(const char *path,
determine if PATH is switched. This is so get_mergeinfo_paths()
can later tweak PATH's parent to reflect a missing child (implying it
needs non-inheritable mergeinfo ranges) and PATH's siblings so they
- get their own complete set of mergeinfo. */
- SVN_ERR(svn_wc__path_switched(path, &switched, entry, pool));
+ get their own complete set of mergeinfo.
+ Don't consider file externals (issue #3843). */
+ if (entry->file_external_path == NULL)
+ SVN_ERR(svn_wc__path_switched(path, &switched, entry, pool));
}
/* Store PATHs with explict mergeinfo, which are switched, are missing
Modified: subversion/branches/1.6.x/subversion/tests/cmdline/externals_tests.py
URL:
http://svn.apache.org/viewvc/subversion/branches/1.6.x/subversion/tests/cmdline/externals_tests.py?rev=1104105&r1=1104104&r2=1104105&view=diff
==============================================================================
--- subversion/branches/1.6.x/subversion/tests/cmdline/externals_tests.py
(original)
+++ subversion/branches/1.6.x/subversion/tests/cmdline/externals_tests.py Tue
May 17 10:19:46 2011
@@ -1343,6 +1343,52 @@ def wc_repos_file_externals(sbox):
None, None, None, None, None,
True)
+#----------------------------------------------------------------------
+# issue #3843
+def merge_target_with_externals(sbox):
+ "merge target with externals"
+
+ # Test for a problem the plagued Subversion in the pre-1.7-single-DB world:
+ # Externals in a merge target would get meaningless explicit mergeinfo set
+ # on them. See http://svn.haxx.se/dev/archive-2010-08/0088.shtml
+ externals_test_setup(sbox)
+ wc_dir = sbox.wc_dir
+ repo_url = sbox.repo_url
+
+ # Some paths we'll care about
+ A_path = os.path.join(wc_dir, "A")
+ A_branch_path = os.path.join(wc_dir, "A-branch")
+ A_gamma_branch_path = os.path.join(wc_dir, "A-branch", "D", "gamma")
+
+ svntest.actions.run_and_verify_svn(None, None, [],
+ 'checkout',
+ repo_url, wc_dir)
+
+ # Setup A/external as file external to A/mu
+ # and A/external-pinned as a pinned file external to A/mu
+ externals_prop = "^/A/mu external\n^/A/mu@6 external-pinned\n"
+ change_external(os.path.join(wc_dir, 'A'), externals_prop)
+
+ # Branch A@1 to A-branch and make a simple text change on the latter in r8.
+ svntest.actions.run_and_verify_svn(None, None, [], 'copy', A_path + '@1',
+ A_branch_path)
+ svntest.actions.run_and_verify_svn(None, None, [], 'ci',
+ '-m', 'make a copy', wc_dir)
+ svntest.main.file_write(A_gamma_branch_path, "The new gamma!\n")
+ svntest.actions.run_and_verify_svn(None, None, [], 'ci',
+ '-m', 'branch edit', wc_dir)
+ svntest.actions.run_and_verify_svn(None, None, [], 'up', wc_dir)
+
+ # Merge r8 from A-branch back to A. There should be explicit mergeinfo
+ # only at the root of A; the externals should not get any.
+ svntest.actions.run_and_verify_svn(None, None, [], 'merge', '-c8',
+ repo_url + '/A-branch', A_path)
+ svntest.actions.run_and_verify_svn(
+ "Unexpected subtree mergeinfo created",
+ ["Properties on '" + A_path + "':\n",
+ " svn:mergeinfo\n",
+ " /A-branch:8\n"],
+ [], 'pg', svntest.main.SVN_PROP_MERGEINFO, '-vR', wc_dir)
########################################################################
# Run the tests
@@ -1370,6 +1416,7 @@ test_list = [ None,
binary_file_externals,
switch_relative_external,
wc_repos_file_externals,
+ merge_target_with_externals,
]
if __name__ == '__main__':