Daniel Shahaf wrote:
stef...@apache.org wrote on Mon, Aug 09, 2010 at 18:33:53 -0000:
Author: stefan2
Date: Mon Aug  9 18:33:53 2010
New Revision: 983766

URL: http://svn.apache.org/viewvc?rev=983766&view=rev
Log:
Fix the root cause of an assertion triggered by exporting KDE /trunk:
File names need to be canonicalized when forming URLs.

* subversion/libsvn_client/export.c
  (add_file): properly escape the file's URL

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=983766&r1=983765&r2=983766&view=diff
==============================================================================
--- subversion/branches/performance/subversion/libsvn_client/export.c (original)
+++ subversion/branches/performance/subversion/libsvn_client/export.c Mon Aug  
9 18:33:53 2010
@@ -708,7 +708,12 @@ add_file(const char *path,
   struct edit_baton *eb = pb->edit_baton;
   struct file_baton *fb = apr_pcalloc(pool, sizeof(*fb));
   const char *full_path = svn_dirent_join(eb->root_path, path, pool);
-  const char *full_url = svn_uri_join(eb->root_url, 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);

See svn_path_url_add_component2().
Yep, that would be the correct function to use. I didn't test my
variant with a repo root that required escaped chars. In r984927,
it uses svn_path_url_add_component2 and works fine also in that case.
Also, this isn't really related to performance; it belongs on /trunk.  Next
time, you could send this with a [PATCH] marker in the subject line, and
a full committer could +1 you to commit that to directly to /trunk.
Will do. But as far as I remember, my prototyping code didn't
require any further bug fixes.
In this case, I give my +1.
Merged in r984928.
Daniel
(actually, this may be a good change to backport to 1.6.x too)
It seems to work with the 1.6.x client (at least with the builds I used).
So, this bug might have gotten triggered by some canonicalization
usage cleanup in 1.7.

-- Stefan^2.

Reply via email to