You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2010/05/21 01:43:53 UTC

svn commit: r946826 - in /subversion/branches/1.6.x-issue2267: ./ CHANGES subversion/libsvn_wc/adm_crawler.c

Author: stsp
Date: Thu May 20 23:43:53 2010
New Revision: 946826

URL: http://svn.apache.org/viewvc?rev=946826&view=rev
Log:
On the 1.6.x-issue2267 branch, fix issue #2267, "support uncommitted
svn:externals properties".

This is technically a backport of r946661, but it had to be rewritten.
So I've done a record-only merge of r946661 from ^/subversion/trunk
to officially merry this commit to its husband on trunk.

* subversion/libsvn_wc/adm_crawler.c
  (report_revisions_and_depths): If a locally added directory has
   an svn:externals property set on it, include the externals in
   traversal info. This makes our caller pull the externals into
   the locally added directory as part of the update.

Modified:
    subversion/branches/1.6.x-issue2267/   (props changed)
    subversion/branches/1.6.x-issue2267/CHANGES   (props changed)
    subversion/branches/1.6.x-issue2267/subversion/libsvn_wc/adm_crawler.c

Propchange: subversion/branches/1.6.x-issue2267/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu May 20 23:43:53 2010
@@ -70,4 +70,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,876041-876042,876048,876051,876055-876056,876059,876083,876091,876097,876101,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,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,87756
 5,877568,877573,877593,877595,877597,877601,877612,877665,877667,877681,877692,877696,877701,877720,877730,877784,877793,877797,877809,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,878462,878484,878491,878498,878532,878595,878646,878659,878673,878682-878683,878690-878691,878693,878723,878760-878761,878873,878875,878877,878879,878905,878915,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,879954,
 879961,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,898963,899826,899828,900797,901752,902093,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
+/subversion/trunk:875965,875968,876004,876012,876017,876019,876022,876024,876041-876042,876048,876051,876055-876056,876059,876083,876091,876097,876101,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,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,87756
 5,877568,877573,877593,877595,877597,877601,877612,877665,877667,877681,877692,877696,877701,877720,877730,877784,877793,877797,877809,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,878462,878484,878491,878498,878532,878595,878646,878659,878673,878682-878683,878690-878691,878693,878723,878760-878761,878873,878875,878877,878879,878905,878915,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,879954,
 879961,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,898963,899826,899828,900797,901752,902093,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,946661

Propchange: subversion/branches/1.6.x-issue2267/CHANGES
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu May 20 23:43:53 2010
@@ -69,4 +69,4 @@
 /subversion/branches/tc_url_rev/CHANGES:874351-874483
 /subversion/branches/tree-conflicts/CHANGES:868291-873154
 /subversion/branches/tree-conflicts-notify/CHANGES:873926-874008
-/subversion/trunk/CHANGES:837701-841355,875962-934485
+/subversion/trunk/CHANGES:837701-841355,875962-934485,946661

Modified: subversion/branches/1.6.x-issue2267/subversion/libsvn_wc/adm_crawler.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.6.x-issue2267/subversion/libsvn_wc/adm_crawler.c?rev=946826&r1=946825&r2=946826&view=diff
==============================================================================
--- subversion/branches/1.6.x-issue2267/subversion/libsvn_wc/adm_crawler.c (original)
+++ subversion/branches/1.6.x-issue2267/subversion/libsvn_wc/adm_crawler.c Thu May 20 23:43:53 2010
@@ -353,9 +353,34 @@ report_revisions_and_depths(svn_wc_adm_a
             missing = TRUE;
         }
 
-      /* From here on out, ignore any entry scheduled for addition */
       if (current_entry->schedule == svn_wc_schedule_add)
-        continue;
+        {
+          /* If an added dir has "svn:externals" property set on it,
+           * store its name and depth in traversal_info. */
+          if (traversal_info && current_entry->kind == svn_node_dir)
+            {
+              const svn_string_t *propval;
+              SVN_ERR(svn_wc_prop_get(&propval, SVN_PROP_EXTERNALS,
+                                      this_full_path, adm_access, subpool));
+              if (propval)
+                {
+                  apr_pool_t *dup_pool = traversal_info->pool;
+                  const char *dup_path = apr_pstrdup(dup_pool, this_full_path);
+                  const char *dup_val = apr_pstrmemdup(dup_pool, propval->data,
+                                                       propval->len);
+                  apr_hash_set(traversal_info->externals_old,
+                               dup_path, APR_HASH_KEY_STRING, dup_val);
+                  apr_hash_set(traversal_info->externals_new,
+                               dup_path, APR_HASH_KEY_STRING, dup_val);
+                  apr_hash_set(traversal_info->depths,
+                               dup_path, APR_HASH_KEY_STRING,
+                               svn_depth_to_word(current_entry->depth));
+                }
+            }
+
+          /* From here on out, ignore any entry scheduled for addition */
+          continue;
+        }
 
       /*** Files ***/
       if (current_entry->kind == svn_node_file)



RE: svn commit: r946826 - in /subversion/branches/1.6.x-issue2267: ./ CHANGES subversion/libsvn_wc/adm_crawler.c

Posted by Bert Huijben <be...@qqmail.nl>.
> -----Original Message-----
> From: stsp@apache.org [mailto:stsp@apache.org]
> Sent: vrijdag 21 mei 2010 1:44
> To: commits@subversion.apache.org
> Subject: svn commit: r946826 - in /subversion/branches/1.6.x-issue2267: ./
> CHANGES subversion/libsvn_wc/adm_crawler.c
> 
> Author: stsp
> Date: Thu May 20 23:43:53 2010
> New Revision: 946826
> 
> URL: http://svn.apache.org/viewvc?rev=946826&view=rev
> Log:
> On the 1.6.x-issue2267 branch, fix issue #2267, "support uncommitted
> svn:externals properties".
> 
> This is technically a backport of r946661, but it had to be rewritten.
> So I've done a record-only merge of r946661 from ^/subversion/trunk
> to officially merry this commit to its husband on trunk.
> 
> * subversion/libsvn_wc/adm_crawler.c
>   (report_revisions_and_depths): If a locally added directory has
>    an svn:externals property set on it, include the externals in
>    traversal info. This makes our caller pull the externals into
>    the locally added directory as part of the update.
> 
> Modified:
>     subversion/branches/1.6.x-issue2267/   (props changed)
>     subversion/branches/1.6.x-issue2267/CHANGES   (props changed)
>     subversion/branches/1.6.x-
> issue2267/subversion/libsvn_wc/adm_crawler.c
> 
> Propchange: subversion/branches/1.6.x-issue2267/
> ------------------------------------------------------------------------------
> --- svn:mergeinfo (original)
> +++ svn:mergeinfo Thu May 20 23:43:53 2010
> @@ -70,4 +70,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,8760
> 24,876041-876042,876048,876051,876055-
> 876056,876059,876083,876091,876097,876101,876109,876123-
> 876125,876129,876132,876138,876160,876167,876175,876180,876185,876205,8
> 76223-
> 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,876659,8
> 76687,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,8
> 76948-876949,876953,876987,876993,877011,877014,877016,877028-
> 877029,877038,877119,877127,877146,877157,877191,877195,877203,877211,8
> 77230,877234,877237,877243,877249,877259,877261,877304,877319,877407,87
> 7437,877441-877442,877453,877459,877472,877544,877553,87756
> 
> 5,877568,877573,877593,877595,877597,877601,877612,877665,877667,877681
> ,877692,877696,877701,877720,877730,877784,877793,877797,877809,877815,
> 877819,877821,877842,877848,877853,877867,877869,877873,877901,877909,8
> 77916,877931,877942,877953,877964,877968,877970,877981-
> 877982,878005,878013,878015,878020,878046,878053,878062,878074,878080,8
> 78089,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,878462,878484,878491,878498,878532,8
> 78595,878646,878659,878673,878682-878683,878690-
> 878691,878693,878723,878760-
> 878761,878873,878875,878877,878879,878905,878915,878924-
> 878925,878946,878949,878955,878960,878970,878981,879001,879033,879056,8
> 79074,879076,879081-879082,879093,879105,879126,879148,879170,879198-
> 879199,879201,879271,879293,879357,879375-879376,879403,879631,879635-
> 879636,879688,879709-879711,879747,879954,
>  879961,880082,880095,880105,880162,880226,880274-
> 880275,880370,880450,880461,880474,880525-
> 880526,880552,881905,884842,886164,886197,888715,888979,889081,889840,8
> 91672,892050,892085,895514,895653,896522,896915,898963,899826,899828,90
> 0797,901752,902093,904301,904394,904594,905303,905326,906256,906305,906
> 587,908980-
> 908981,917640,918211,922516,923389,923391,926151,926167,927323,927328,9
> 31209,931211,931392,931568,932942,933299
> +/subversion/trunk:875965,875968,876004,876012,876017,876019,876022,876
> 024,876041-876042,876048,876051,876055-
> 876056,876059,876083,876091,876097,876101,876109,876123-
> 876125,876129,876132,876138,876160,876167,876175,876180,876185,876205,8
> 76223-
> 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,876659,8
> 76687,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,8
> 76948-876949,876953,876987,876993,877011,877014,877016,877028-
> 877029,877038,877119,877127,877146,877157,877191,877195,877203,877211,8
> 77230,877234,877237,877243,877249,877259,877261,877304,877319,877407,87
> 7437,877441-877442,877453,877459,877472,877544,877553,87756
> 
> 5,877568,877573,877593,877595,877597,877601,877612,877665,877667,877681
> ,877692,877696,877701,877720,877730,877784,877793,877797,877809,877815,
> 877819,877821,877842,877848,877853,877867,877869,877873,877901,877909,8
> 77916,877931,877942,877953,877964,877968,877970,877981-
> 877982,878005,878013,878015,878020,878046,878053,878062,878074,878080,8
> 78089,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,878462,878484,878491,878498,878532,8
> 78595,878646,878659,878673,878682-878683,878690-
> 878691,878693,878723,878760-
> 878761,878873,878875,878877,878879,878905,878915,878924-
> 878925,878946,878949,878955,878960,878970,878981,879001,879033,879056,8
> 79074,879076,879081-879082,879093,879105,879126,879148,879170,879198-
> 879199,879201,879271,879293,879357,879375-879376,879403,879631,879635-
> 879636,879688,879709-879711,879747,879954,
>  879961,880082,880095,880105,880162,880226,880274-
> 880275,880370,880450,880461,880474,880525-
> 880526,880552,881905,884842,886164,886197,888715,888979,889081,889840,8
> 91672,892050,892085,895514,895653,896522,896915,898963,899826,899828,90
> 0797,901752,902093,904301,904394,904594,905303,905326,906256,906305,906
> 587,908980-
> 908981,917640,918211,922516,923389,923391,926151,926167,927323,927328,9
> 31209,931211,931392,931568,932942,933299,946661
> 
> Propchange: subversion/branches/1.6.x-issue2267/CHANGES
> ------------------------------------------------------------------------------
> --- svn:mergeinfo (original)
> +++ svn:mergeinfo Thu May 20 23:43:53 2010
> @@ -69,4 +69,4 @@
>  /subversion/branches/tc_url_rev/CHANGES:874351-874483
>  /subversion/branches/tree-conflicts/CHANGES:868291-873154
>  /subversion/branches/tree-conflicts-notify/CHANGES:873926-874008
> -/subversion/trunk/CHANGES:837701-841355,875962-934485
> +/subversion/trunk/CHANGES:837701-841355,875962-934485,946661
> 
> Modified: subversion/branches/1.6.x-
> issue2267/subversion/libsvn_wc/adm_crawler.c
> URL: http://svn.apache.org/viewvc/subversion/branches/1.6.x-
> issue2267/subversion/libsvn_wc/adm_crawler.c?rev=946826&r1=946825&r2
> =946826&view=diff
> ==========================================================
> ====================
> --- subversion/branches/1.6.x-
> issue2267/subversion/libsvn_wc/adm_crawler.c (original)
> +++ subversion/branches/1.6.x-
> issue2267/subversion/libsvn_wc/adm_crawler.c Thu May 20 23:43:53 2010
> @@ -353,9 +353,34 @@ report_revisions_and_depths(svn_wc_adm_a
>              missing = TRUE;
>          }
> 
> -      /* From here on out, ignore any entry scheduled for addition */
>        if (current_entry->schedule == svn_wc_schedule_add)
> -        continue;
> +        {
> +          /* If an added dir has "svn:externals" property set on it,
> +           * store its name and depth in traversal_info. */
> +          if (traversal_info && current_entry->kind == svn_node_dir)
> +            {
> +              const svn_string_t *propval;
> +              SVN_ERR(svn_wc_prop_get(&propval, SVN_PROP_EXTERNALS,
> +                                      this_full_path, adm_access, subpool));
> +              if (propval)
> +                {
> +                  apr_pool_t *dup_pool = traversal_info->pool;
> +                  const char *dup_path = apr_pstrdup(dup_pool, this_full_path);
> +                  const char *dup_val = apr_pstrmemdup(dup_pool, propval->data,
> +                                                       propval->len);
> +                  apr_hash_set(traversal_info->externals_old,
> +                               dup_path, APR_HASH_KEY_STRING, dup_val);
> +                  apr_hash_set(traversal_info->externals_new,
> +                               dup_path, APR_HASH_KEY_STRING, dup_val);
> +                  apr_hash_set(traversal_info->depths,
> +                               dup_path, APR_HASH_KEY_STRING,
> +                               svn_depth_to_word(current_entry->depth));
> +                }
> +            }
> +
> +          /* From here on out, ignore any entry scheduled for addition */
> +          continue;
> +        }

This code doesn't match r946661: It doesn't look at the children (or the descendants) of the added node. 

It also changes the behavior of this public function; I can't say if this needs revving or not, but it can certainly use a few extra pairs of eyes to check.

	Bert