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/08/12 21:38:11 UTC

svn commit: r984927 - /subversion/branches/performance/subversion/libsvn_client/export.c

Author: stefan2
Date: Thu Aug 12 19:38:11 2010
New Revision: 984927

URL: http://svn.apache.org/viewvc?rev=984927&view=rev
Log:
As suggested in http://svn.haxx.se/dev/archive-2010-08/0219.shtm,
use svn_path_url_add_component2 instead of svn_uri_canonicalize
and svn_uri_join because the latter might double-escape the root url.

I tested the new code with  a repository url containing a space and
a relative path containing a space. It worked as suggested by the
comment.

(Fixing that on this branch to minimize the conflicts when merging
 to trunk and back again.) 

* subversion/libsvn_client/export.c:
  (add_file): use svn_path_url_add_component2

Modified:
    subversion/branches/performance/subversion/libsvn_client/export.c

Modified: subversion/branches/performance/subversion/libsvn_client/export.c
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/libsvn_client/export.c?rev=984927&r1=984926&r2=984927&view=diff
==============================================================================
--- subversion/branches/performance/subversion/libsvn_client/export.c (original)
+++ subversion/branches/performance/subversion/libsvn_client/export.c Thu Aug 12 19:38:11 2010
@@ -709,11 +709,11 @@ add_file(const char *path,
   struct file_baton *fb = apr_pcalloc(pool, sizeof(*fb));
   const char *full_path = svn_dirent_join(eb->root_path, path, pool);
 
-  /* path is not canonicalized, i.e. it may still contain spaces etc. */
-  const char *full_url = svn_uri_canonicalize(svn_uri_join(eb->root_url, 
-                                                           path, 
-                                                           pool),
-                                              pool);
+  /* path is not canonicalized, i.e. it may still contain spaces etc.
+   * but eb->root_url is */
+  const char *full_url = svn_path_url_add_component2(eb->root_url,
+                                                     path,
+                                                     pool);
 
   fb->edit_baton = eb;
   fb->path = full_path;