Author: pburba
Date: Wed Jan  9 00:01:13 2013
New Revision: 1430638

URL: http://svn.apache.org/viewvc?rev=1430638&view=rev
Log:
Follow-up to r1424708: API simplification: Make
svn_ra_get_inherited_props() always return svn_prop_inherited_item_t
items with the path_or_url member set to repos relpaths.  Let the caller
convert to URLs if required.

Suggested by: julianfoad

* subversion/include/private/svn_wc_private.h

  (svn_wc__get_iprops): Document the type of
   svn_prop_inherited_item_t->path_or_url's returned.

* subversion/include/svn_client.h

  (svn_proplist_receiver2_t,
   svn_client_propget5): Document the type of
   svn_prop_inherited_item_t->path_or_url's returned.

* subversion/include/svn_ra.h

  (svn_ra_get_inherited_props): Return to pre-r1424708 behavior, i.e. always
   return repos relpath path_or_url member.

* subversion/libsvn_client/client.h

  (svn_client__iprop_relpaths_to_urls): New.

  (svn_client__get_inheritable_props): Return to pre-r1424708 behavior,
   i.e. always return repos relpath path_or_url member.

* subversion/libsvn_client/externals.c

  (switch_file_external): Update call to svn_ra_get_inherited_props().

* subversion/libsvn_client/iprops.c

  (svn_props.h,
   svn_path.h): New includes.

  (svn_client__iprop_relpaths_to_urls): New.

  (svn_client__get_inheritable_props): Remove use_relpath_keys argument.

  (svn_client__get_inheritable_props): Update call to
   svn_ra_get_inherited_props().

* subversion/libsvn_client/prop_commands.c

  (remote_propget,
   remote_proplist): Convert inherited props returned by
   svn_ra_get_inherited_props() with new
   svn_client__iprop_relpaths_to_urls() helper.

  (svn_client_propget5,
   get_local_props): Convert inherited props returned by
   svn_wc__get_iprops() with new
   svn_client__iprop_relpaths_to_urls() helper.

* subversion/libsvn_client/switch.c

  (switch_internal): Update call to svn_ra_get_inherited_props().

* subversion/libsvn_client/update.c

  (update_internal): Update call to svn_client__get_inheritable_props().

* subversion/libsvn_ra/compat.c

  (svn_ra__get_inherited_props_walk): Return
   svn_prop_inherited_item_t->path_or_url's as repos relpaths, not URLs.

* subversion/libsvn_ra/ra_loader.c

  (svn_ra_get_inherited_props): Remove use_relpath_keys argument.

* subversion/libsvn_ra/ra_loader.h

  (svn_ra__get_inherited_props_walk): Update doc string.

* subversion/libsvn_ra_local/ra_plugin.c

  (get_node_props): Don't convert svn_prop_inherited_item_t->path_or_url's
   to URLs, leave as repos relpaths.

* subversion/libsvn_wc/wc_db.c

  (db_read_inherited_props): Don't convert
   svn_prop_inherited_item_t->path_or_url's to URLs, leave as repos relpaths.

* subversion/libsvn_wc/wc_db.h

  (svn_wc__db_read_inherited_props): Update doc string.

Modified:
    subversion/trunk/subversion/include/private/svn_wc_private.h
    subversion/trunk/subversion/include/svn_client.h
    subversion/trunk/subversion/include/svn_ra.h
    subversion/trunk/subversion/libsvn_client/client.h
    subversion/trunk/subversion/libsvn_client/externals.c
    subversion/trunk/subversion/libsvn_client/iprops.c
    subversion/trunk/subversion/libsvn_client/prop_commands.c
    subversion/trunk/subversion/libsvn_client/switch.c
    subversion/trunk/subversion/libsvn_client/update.c
    subversion/trunk/subversion/libsvn_ra/compat.c
    subversion/trunk/subversion/libsvn_ra/ra_loader.c
    subversion/trunk/subversion/libsvn_ra/ra_loader.h
    subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c
    subversion/trunk/subversion/libsvn_wc/wc_db.c
    subversion/trunk/subversion/libsvn_wc/wc_db.h

Modified: subversion/trunk/subversion/include/private/svn_wc_private.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_wc_private.h?rev=1430638&r1=1430637&r2=1430638&view=diff
==============================================================================
--- subversion/trunk/subversion/include/private/svn_wc_private.h (original)
+++ subversion/trunk/subversion/include/private/svn_wc_private.h Wed Jan  9 
00:01:13 2013
@@ -863,6 +863,11 @@ svn_wc__prop_list_recursive(svn_wc_conte
  * required), up to and including the root of the working copy and
  * any cached inherited properties inherited by the root.
  *
+ * The #svn_prop_inherited_item_t->path_or_url members of the
+ * #svn_prop_inherited_item_t * structures in @a *inherited_props are
+ * paths relative to the repository root URL for cached inherited
+ * properties and absolute working copy paths otherwise.
+ *
  * Allocate @a *inherited_props in @a result_pool.  Use @a scratch_pool
  * for temporary allocations.
  */

Modified: subversion/trunk/subversion/include/svn_client.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_client.h?rev=1430638&r1=1430637&r2=1430638&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_client.h (original)
+++ subversion/trunk/subversion/include/svn_client.h Wed Jan  9 00:01:13 2013
@@ -365,6 +365,14 @@ typedef struct svn_client_proplist_item_
  * properties inherited by @a path.  Use @a scratch_pool for all temporary
  * allocations.
  *
+ * The #svn_prop_inherited_item_t->path_or_url members of the
+ * #svn_prop_inherited_item_t * structures in @a inherited_props are
+ * URLs if @a path is a URL or if @path is a working copy path but the
+ * property represented by the structure is above the working copy root (i.e.
+ * the inherited property is from the cache).  In all other cases the
+ * #svn_prop_inherited_item_t->path_or_url members are absolute working copy
+ * paths.
+ *
  * @since New in 1.8.
  */
 typedef svn_error_t *(*svn_proplist_receiver2_t)(
@@ -4922,6 +4930,14 @@ svn_client_revprop_set(const char *propn
  * is not @c NULL and no inheritable properties are found, then set
  * @a *inherited_props to an empty array.
  *
+ * The #svn_prop_inherited_item_t->path_or_url members of the
+ * #svn_prop_inherited_item_t * structures in @a *inherited_props are
+ * URLs if @a target is a URL or if @target is a working copy path but the
+ * property represented by the structure is above the working copy root (i.e.
+ * the inherited property is from the cache).  In all other cases the
+ * #svn_prop_inherited_item_t->path_or_url members are absolute working copy
+ * paths.
+ *
  * Allocate @a *props, its keys, and its values in @a pool, use
  * @a scratch_pool for temporary allocations.
  *

Modified: subversion/trunk/subversion/include/svn_ra.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_ra.h?rev=1430638&r1=1430637&r2=1430638&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_ra.h (original)
+++ subversion/trunk/subversion/include/svn_ra.h Wed Jan  9 00:01:13 2013
@@ -1930,11 +1930,10 @@ svn_ra_get_deleted_rev(svn_ra_session_t 
  * inheritable properties are found, then set @a *inherited_props to
  * an empty array.
  *
- * If @a use_relpath_keys is true, then the
- * #svn_prop_inherited_item_t->path_or_url members of the
+ * The #svn_prop_inherited_item_t->path_or_url members of the
  * #svn_prop_inherited_item_t * structures in @a *inherited_props are
  * paths relative to the repository root URL (of the repository which
- * @a ra_session is associated).  Otherwise these members are URLs.
+ * @a ra_session is associated).
  *
  * Allocated @a *inherited_props in @a result_pool, use @a scratch_pool
  * for temporary allocations.
@@ -1946,7 +1945,6 @@ svn_ra_get_inherited_props(svn_ra_sessio
                            apr_array_header_t **inherited_props,
                            const char *path,
                            svn_revnum_t revision,
-                           svn_boolean_t use_relpath_keys,
                            apr_pool_t *result_pool,
                            apr_pool_t *scratch_pool);
 

Modified: subversion/trunk/subversion/libsvn_client/client.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/client.h?rev=1430638&r1=1430637&r2=1430638&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/client.h (original)
+++ subversion/trunk/subversion/libsvn_client/client.h Wed Jan  9 00:01:13 2013
@@ -649,14 +649,25 @@ svn_client__list_internal(const char *pa
 
 /*** Inheritable Properties ***/
 
+/* Convert any svn_prop_inherited_item_t elements in INHERITED_PROPS which
+   have repository root relative path PATH_OR_URL structure members to URLs
+   using REPOS_ROOT_URL.  Changes to the contents of INHERITED_PROPS are
+   allocated in RESULT_POOL.  SCRATCH_POOL is used for temporary
+   allocations. */
+svn_error_t *
+svn_client__iprop_relpaths_to_urls(apr_array_header_t *inherited_props,
+                                   const char *repos_root_url,
+                                   apr_pool_t *result_pool,
+                                   apr_pool_t *scratch_pool);
+
 /* Fetch the inherited properties for the base of LOCAL_ABSPATH as well
    as any WC roots under LOCAL_ABSPATH (as limited by DEPTH) using
    RA_SESSION.  Store the results in *WCROOT_IPROPS, a hash mapping
    const char * absolute working copy paths to depth-first ordered arrays
-   of svn_prop_inherited_item_t * structures.  If WANT_RELPATH_KEYS is true,
-   then any svn_prop_inherited_item_t->path_or_url members returned in
-   *WCROOT_IPROPS are repository relative paths, otherwise these members are
-   URLs.
+   of svn_prop_inherited_item_t * structures.
+
+   Any svn_prop_inherited_item_t->path_or_url members returned in
+   *WCROOT_IPROPS are repository relative paths.
 
    If LOCAL_ABSPATH has no base then do nothing.
 
@@ -671,7 +682,6 @@ svn_client__get_inheritable_props(apr_ha
                                   const char *local_abspath,
                                   svn_revnum_t revision,
                                   svn_depth_t depth,
-                                  svn_boolean_t use_relpath_keys,
                                   svn_ra_session_t *ra_session,
                                   svn_client_ctx_t *ctx,
                                   apr_pool_t *result_pool,

Modified: subversion/trunk/subversion/libsvn_client/externals.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/externals.c?rev=1430638&r1=1430637&r2=1430638&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/externals.c (original)
+++ subversion/trunk/subversion/libsvn_client/externals.c Wed Jan  9 00:01:13 
2013
@@ -484,8 +484,7 @@ switch_file_external(const char *local_a
                                               ctx, subpool));
     /* Get the external file's iprops. */
     SVN_ERR(svn_ra_get_inherited_props(ra_session, &inherited_props, "",
-                                       switch_loc->rev, TRUE,
-                                       subpool, subpool));
+                                       switch_loc->rev, subpool, subpool));
 
     SVN_ERR(svn_ra_reparent(ra_session, svn_uri_dirname(url, subpool),
                             subpool));

Modified: subversion/trunk/subversion/libsvn_client/iprops.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/iprops.c?rev=1430638&r1=1430637&r2=1430638&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/iprops.c (original)
+++ subversion/trunk/subversion/libsvn_client/iprops.c Wed Jan  9 00:01:13 2013
@@ -31,6 +31,8 @@
 #include "svn_pools.h"
 #include "svn_wc.h"
 #include "svn_ra.h"
+#include "svn_props.h"
+#include "svn_path.h"
 
 #include "client.h"
 #include "svn_private_config.h"
@@ -97,11 +99,35 @@ need_to_cache_iprops(svn_boolean_t *need
 }
 
 svn_error_t *
+svn_client__iprop_relpaths_to_urls(apr_array_header_t *inherited_props,
+                                   const char *repos_root_url,
+                                   apr_pool_t *result_pool,
+                                   apr_pool_t *scratch_pool)
+{
+  int i;
+
+  for (i = 0; i < inherited_props->nelts; i++)
+    {
+      svn_prop_inherited_item_t *elt =
+        APR_ARRAY_IDX(inherited_props, i, svn_prop_inherited_item_t *);
+
+      /* Convert repos root relpaths to full URLs. */
+      if (! (svn_path_is_url(elt->path_or_url)
+             || svn_dirent_is_absolute(elt->path_or_url)))
+        {
+          elt->path_or_url = svn_path_url_add_component2(repos_root_url,
+                                                         elt->path_or_url,
+                                                         result_pool);      
+        }
+    }
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
 svn_client__get_inheritable_props(apr_hash_t **wcroot_iprops,
                                   const char *local_abspath,
                                   svn_revnum_t revision,
                                   svn_depth_t depth,
-                                  svn_boolean_t use_relpath_keys,
                                   svn_ra_session_t *ra_session,
                                   svn_client_ctx_t *ctx,
                                   apr_pool_t *result_pool,
@@ -184,7 +210,7 @@ svn_client__get_inheritable_props(apr_ha
             }
 
           SVN_ERR(svn_ra_get_inherited_props(ra_session, &inherited_props,
-                                             "", revision, use_relpath_keys,
+                                             "", revision,
                                              result_pool, iterpool));
           apr_hash_set(*wcroot_iprops,
                        apr_pstrdup(result_pool, child_abspath),

Modified: subversion/trunk/subversion/libsvn_client/prop_commands.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/prop_commands.c?rev=1430638&r1=1430637&r2=1430638&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/prop_commands.c (original)
+++ subversion/trunk/subversion/libsvn_client/prop_commands.c Wed Jan  9 
00:01:13 2013
@@ -636,11 +636,19 @@ remote_propget(apr_hash_t *props,
 
   if (inherited_props)
     {
+      const char *repos_root_url;
+
       /* We will filter out all but PROPNAME later, making a final copy
-         in RESULT_POOL, so pass SCRATCH_POOL for both pools. */
+         in RESULT_POOL, so pass SCRATCH_POOL for all pools. */
       SVN_ERR(svn_ra_get_inherited_props(ra_session, inherited_props,
-                                         target_relative, revnum, FALSE,
+                                         target_relative, revnum,
                                          scratch_pool, scratch_pool));
+      SVN_ERR(svn_ra_get_repos_root2(ra_session, &repos_root_url,
+                                     scratch_pool));
+      SVN_ERR(svn_client__iprop_relpaths_to_urls(*inherited_props,
+                                                 repos_root_url,
+                                                 scratch_pool,
+                                                 scratch_pool));
     }
 
   /* Make a copy of any inherited PROPNAME properties in RESULT_POOL. */
@@ -890,9 +898,20 @@ svn_client_propget5(apr_hash_t **props,
         return svn_error_trace(err);
 
       if (inherited_props && local_iprops)
-        SVN_ERR(svn_wc__get_iprops(inherited_props, ctx->wc_ctx,
-                                   target, propname,
-                                   result_pool, scratch_pool));
+        {
+          const char *repos_root_url;
+
+          SVN_ERR(svn_wc__get_iprops(inherited_props, ctx->wc_ctx,
+                                     target, propname,
+                                     result_pool, scratch_pool));
+          SVN_ERR(svn_client_get_repos_root(&repos_root_url, NULL,
+                                            target, ctx, scratch_pool,
+                                            scratch_pool));
+          SVN_ERR(svn_client__iprop_relpaths_to_urls(*inherited_props,
+                                                     repos_root_url,
+                                                     result_pool,
+                                                     scratch_pool));
+        }
 
       SVN_ERR(get_prop_from_wc(props, propname, target,
                                pristine, kind,
@@ -1124,11 +1143,23 @@ remote_proplist(const char *target_prefi
     }
 
   if (get_target_inherited_props)
-    SVN_ERR(svn_ra_get_inherited_props(ra_session, &inherited_props,
-                                       target_relative, revnum, FALSE,
-                                       result_pool, scratch_pool));
+    {
+      const char *repos_root_url;
+
+      SVN_ERR(svn_ra_get_inherited_props(ra_session, &inherited_props,
+                                         target_relative, revnum,
+                                         result_pool, scratch_pool));
+      SVN_ERR(svn_ra_get_repos_root2(ra_session, &repos_root_url,
+                                     scratch_pool));
+      SVN_ERR(svn_client__iprop_relpaths_to_urls(inherited_props,
+                                                 repos_root_url,
+                                                 result_pool,
+                                                 scratch_pool));
+    }
   else
-    inherited_props = NULL;
+    {
+      inherited_props = NULL;
+    }
 
   if (get_explicit_props)
     {
@@ -1408,9 +1439,15 @@ get_local_props(const char *path_or_url,
   if (get_target_inherited_props)
     {
       apr_array_header_t *iprops;
+      const char *repos_root_url;
 
       SVN_ERR(svn_wc__get_iprops(&iprops, ctx->wc_ctx, local_abspath,
                                  NULL, scratch_pool, scratch_pool));
+      SVN_ERR(svn_client_get_repos_root(&repos_root_url, NULL, local_abspath,
+                                        ctx, scratch_pool, scratch_pool));
+      SVN_ERR(svn_client__iprop_relpaths_to_urls(iprops, repos_root_url,
+                                                 scratch_pool,
+                                                 scratch_pool));
       SVN_ERR(call_receiver(path_or_url, NULL, iprops, receiver,
                             receiver_baton, scratch_pool));
     }

Modified: subversion/trunk/subversion/libsvn_client/switch.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/switch.c?rev=1430638&r1=1430637&r2=1430638&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/switch.c (original)
+++ subversion/trunk/subversion/libsvn_client/switch.c Wed Jan  9 00:01:13 2013
@@ -267,7 +267,7 @@ switch_internal(svn_revnum_t *result_rev
       if (needs_iprop_cache)
         {
           SVN_ERR(svn_ra_get_inherited_props(ra_session, &inherited_props,
-                                             "", switch_loc->rev, TRUE, pool,
+                                             "", switch_loc->rev, pool,
                                              pool));
           apr_hash_set(wcroot_iprops, local_abspath, APR_HASH_KEY_STRING,
                        inherited_props);

Modified: subversion/trunk/subversion/libsvn_client/update.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/update.c?rev=1430638&r1=1430637&r2=1430638&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/update.c (original)
+++ subversion/trunk/subversion/libsvn_client/update.c Wed Jan  9 00:01:13 2013
@@ -377,7 +377,7 @@ update_internal(svn_revnum_t *result_rev
   dfb.anchor_url = anchor_loc->url;
 
   err = svn_client__get_inheritable_props(&wcroot_iprops, local_abspath,
-                                          revnum, depth, TRUE, ra_session,
+                                          revnum, depth, ra_session,
                                           ctx, pool, pool);
 
   /* We might be trying to update to a non-existant path-rev. */

Modified: subversion/trunk/subversion/libsvn_ra/compat.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra/compat.c?rev=1430638&r1=1430637&r2=1430638&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra/compat.c (original)
+++ subversion/trunk/subversion/libsvn_ra/compat.c Wed Jan  9 00:01:13 2013
@@ -935,7 +935,9 @@ svn_ra__get_inherited_props_walk(svn_ra_
         {
           svn_prop_inherited_item_t *new_iprop =
             apr_palloc(result_pool, sizeof(*new_iprop));
-          new_iprop->path_or_url = apr_pstrdup(result_pool, parent_url);
+          new_iprop->path_or_url = svn_uri_skip_ancestor(repos_root_url,
+                                                         parent_url,
+                                                         result_pool);
           new_iprop->prop_hash = final_hash;
           svn_sort__array_insert(&new_iprop, *inherited_props, 0);
         }

Modified: subversion/trunk/subversion/libsvn_ra/ra_loader.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra/ra_loader.c?rev=1430638&r1=1430637&r2=1430638&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra/ra_loader.c (original)
+++ subversion/trunk/subversion/libsvn_ra/ra_loader.c Wed Jan  9 00:01:13 2013
@@ -1298,7 +1298,6 @@ svn_ra_get_inherited_props(svn_ra_sessio
                            apr_array_header_t **iprops,
                            const char *path,
                            svn_revnum_t revision,
-                           svn_boolean_t use_relpath_keys,
                            apr_pool_t *result_pool,
                            apr_pool_t *scratch_pool)
 {
@@ -1324,23 +1323,6 @@ svn_ra_get_inherited_props(svn_ra_sessio
                                                result_pool, scratch_pool));
     }
 
-  if (use_relpath_keys && (*iprops)->nelts)
-    {
-      const char *repos_root_url;
-      int i;
-
-      SVN_ERR(svn_ra_get_repos_root2(session, &repos_root_url, scratch_pool));
-      for (i = 0; i < (*iprops)->nelts; i++)
-        {
-          svn_prop_inherited_item_t *elt =
-            APR_ARRAY_IDX(*iprops, i, svn_prop_inherited_item_t *);
-          elt->path_or_url =
-            svn_dirent_skip_ancestor(repos_root_url, elt->path_or_url);
-          elt->path_or_url = svn_path_uri_decode(elt->path_or_url,
-                                                 result_pool);
-        }
-    }
-
   return SVN_NO_ERROR;
 }
 

Modified: subversion/trunk/subversion/libsvn_ra/ra_loader.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra/ra_loader.h?rev=1430638&r1=1430637&r2=1430638&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra/ra_loader.h (original)
+++ subversion/trunk/subversion/libsvn_ra/ra_loader.h Wed Jan  9 00:01:13 2013
@@ -496,11 +496,11 @@ svn_ra__get_deleted_rev_from_log(svn_ra_
 
 
 /**
- * Fallback logic for svn_ra_get_fileX and svn_ra_get_dirX when those APIs
+ * Fallback logic for svn_ra_get_inherited_props() when that API
  * need to find PATH's inherited properties on a legacy server that
  * doesn't have the SVN_RA_CAPABILITY_INHERITED_PROPS capability.
  *
- * All arguments are as per the two aforementioned APIs.
+ * All arguments are as per svn_ra_get_inherited_props().
  */
 svn_error_t *
 svn_ra__get_inherited_props_walk(svn_ra_session_t *session,

Modified: subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c?rev=1430638&r1=1430637&r2=1430638&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c (original)
+++ subversion/trunk/subversion/libsvn_ra_local/ra_plugin.c Wed Jan  9 00:01:13 
2013
@@ -1058,22 +1058,12 @@ get_node_props(apr_hash_t **props,
       SVN_ERR(svn_fs_node_proplist(props, root, path, result_pool));
     }
 
-  /* Turn FS-path keys into URLs. */
+  /* Get inherited properties if requested. */
   if (inherited_props)
     {
-      int i;
-
       SVN_ERR(svn_repos_fs_get_inherited_props(inherited_props, root, path,
                                                NULL, NULL, NULL,
                                                result_pool, scratch_pool));
-
-      for (i = 0; i < (*inherited_props)->nelts; i++)
-        {
-          svn_prop_inherited_item_t *i_props =
-            APR_ARRAY_IDX(*inherited_props, i, svn_prop_inherited_item_t *);
-          i_props->path_or_url = svn_path_url_add_component2(
-            sess->repos_url, i_props->path_or_url, result_pool);
-        }
     }
 
   /* Now add some non-tweakable metadata to the hash as well... */

Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=1430638&r1=1430637&r2=1430638&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.c Wed Jan  9 00:01:13 2013
@@ -9145,15 +9145,7 @@ db_read_inherited_props(apr_array_header
 
           /* If we didn't filter everything then keep this iprop. */
           if (apr_hash_count(cached_iprop->prop_hash))
-            {
-              /* Convert the repository relative path in the
-                 cache to a full URL. */
-              cached_iprop->path_or_url =
-                svn_path_url_add_component2(repos_root_url,
-                                            cached_iprop->path_or_url,
-                                            result_pool);
-              svn_sort__array_insert(&cached_iprop, *iprops, 0);
-            }
+            svn_sort__array_insert(&cached_iprop, *iprops, 0);
         }
     }
 

Modified: subversion/trunk/subversion/libsvn_wc/wc_db.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.h?rev=1430638&r1=1430637&r2=1430638&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.h (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.h Wed Jan  9 00:01:13 2013
@@ -2075,14 +2075,19 @@ svn_wc__db_read_pristine_props(apr_hash_
 
 
 /**
- * Set @a *inherited_props to a depth-first ordered array of
+ * Set @a *iprops to a depth-first ordered array of
  * #svn_prop_inherited_item_t * structures representing the properties
  * inherited by @a local_abspath from the ACTUAL tree above
  * @a local_abspath (looking through to the WORKING or BASE tree as
  * required), up to and including the root of the working copy and
  * any cached inherited properties inherited by the root.
  *
- * Allocate @a *inherited_props in @a result_pool.  Use @a scratch_pool
+ * The #svn_prop_inherited_item_t->path_or_url members of the
+ * #svn_prop_inherited_item_t * structures in @a *iprops are
+ * paths relative to the repository root URL for cached inherited
+ * properties and absolute working copy paths otherwise.
+ *
+ * Allocate @a *iprops in @a result_pool.  Use @a scratch_pool
  * for temporary allocations.
  */
 svn_error_t *


Reply via email to