Index: subversion/mod_dav_svn/repos.c
===================================================================
--- subversion/mod_dav_svn/repos.c	(revision 37017)
+++ subversion/mod_dav_svn/repos.c	(working copy)
@@ -1217,7 +1217,7 @@
   if (fs_path != NULL)
     {
       /* the repos_name is the last component of root_path. */
-      *repos_name = svn_path_basename(root_path, r->pool);
+      *repos_name = svn_uri_basename(root_path, r->pool);
 
       /* 'relative' is already correct for SVNPath; the root_path
          already contains the name of the repository, so relative is
@@ -1995,8 +1995,8 @@
     /* If this is a ParentPath-based repository, treat the specified
        path as a similar parent directory. */
     repos->activities_db = svn_path_join(repos->activities_db,
-                                         svn_path_basename(repos->fs_path,
-                                                           r->pool),
+                                         svn_uri_basename(repos->fs_path,
+                                                          r->pool),
                                          r->pool);
 
   /* Remember various bits for later URL construction */
Index: subversion/mod_dav_svn/authz.c
===================================================================
--- subversion/mod_dav_svn/authz.c	(revision 37017)
+++ subversion/mod_dav_svn/authz.c	(working copy)
@@ -20,6 +20,7 @@
 #include <http_log.h>
 
 #include "svn_pools.h"
+#include "svn_dirent_uri.h"
 #include "svn_path.h"
 
 #include "mod_authz_svn.h"
@@ -150,7 +151,7 @@
             }
 
           /* Lop off the basename and try again. */
-          lopped_path = svn_path_join(svn_path_basename
+          lopped_path = svn_path_join(svn_uri_basename
                                       (path_s->data, pool), lopped_path, pool);
           svn_path_remove_component(path_s);
         }
Index: subversion/mod_dav_svn/reports/update.c
===================================================================
--- subversion/mod_dav_svn/reports/update.c	(revision 37017)
+++ subversion/mod_dav_svn/reports/update.c	(working copy)
@@ -29,6 +29,7 @@
 #include "svn_fs.h"
 #include "svn_base64.h"
 #include "svn_xml.h"
+#include "svn_dirent_uri.h"
 #include "svn_path.h"
 #include "svn_dav.h"
 #include "svn_props.h"
@@ -174,7 +175,7 @@
   baton = apr_pcalloc(pool, sizeof(*baton));
   baton->pool = pool;
   baton->uc = parent->uc;
-  baton->name = svn_path_basename(path, pool);
+  baton->name = svn_uri_basename(path, pool);
   baton->parent = parent;
 
   /* Telescope the path based on uc->anchor.  */
@@ -243,7 +244,7 @@
                                      DIR_OR_FILE(is_dir),
                                      apr_xml_quote_string
                                        (pool,
-                                        svn_path_basename(path, pool),
+                                        svn_uri_basename(path, pool),
                                         1));
       SVN_ERR(dav_svn__send_xml(uc->bb, uc->output, "%s", elt));
     }
@@ -584,7 +585,7 @@
 {
   item_baton_t *parent = parent_baton;
   const char *qname = apr_xml_quote_string(pool,
-                                           svn_path_basename(path, pool), 1);
+                                           svn_uri_basename(path, pool), 1);
   return dav_svn__send_xml(parent->uc->bb, parent->uc->output,
                            "<S:delete-entry name=\"%s\"/>" DEBUG_CR, qname);
 }
Index: subversion/svn/merge-cmd.c
===================================================================
--- subversion/svn/merge-cmd.c	(revision 37017)
+++ subversion/svn/merge-cmd.c	(working copy)
@@ -23,6 +23,7 @@
 /*** Includes. ***/
 
 #include "svn_client.h"
+#include "svn_dirent_uri.h"
 #include "svn_path.h"
 #include "svn_error.h"
 #include "svn_types.h"
@@ -230,8 +231,8 @@
       if (svn_path_is_url(sourcepath1))
         {
           char *sp1_basename, *sp2_basename;
-          sp1_basename = svn_path_basename(sourcepath1, pool);
-          sp2_basename = svn_path_basename(sourcepath2, pool);
+          sp1_basename = svn_uri_basename(sourcepath1, pool);
+          sp2_basename = svn_uri_basename(sourcepath2, pool);
 
           if (strcmp(sp1_basename, sp2_basename) == 0)
             {
Index: subversion/svn/tree-conflicts.c
===================================================================
--- subversion/svn/tree-conflicts.c	(revision 37017)
+++ subversion/svn/tree-conflicts.c	(working copy)
@@ -18,6 +18,7 @@
 
 #include "tree-conflicts.h"
 #include "svn_xml.h"
+#include "svn_dirent_uri.h"
 #include "svn_path.h"
 
 #include "cl.h"
@@ -69,7 +70,7 @@
   apr_pool_t *pool)
 {
   const char *victim_name, *action, *reason, *operation;
-  victim_name = svn_path_basename(conflict->path, pool);
+  victim_name = svn_dirent_basename(conflict->path, pool);
   reason = reason_str(conflict);
   action = action_str(conflict);
   operation = svn_cl__operation_str_human_readable(conflict->operation, pool);
@@ -127,7 +128,7 @@
   const char *tmp;
 
   apr_hash_set(att_hash, "victim", APR_HASH_KEY_STRING,
-               svn_path_basename(conflict->path, pool));
+               svn_dirent_basename(conflict->path, pool));
 
   apr_hash_set(att_hash, "kind", APR_HASH_KEY_STRING,
                svn_cl__node_kind_str_xml(conflict->node_kind));
Index: subversion/svn/export-cmd.c
===================================================================
--- subversion/svn/export-cmd.c	(revision 37017)
+++ subversion/svn/export-cmd.c	(working copy)
@@ -24,6 +24,7 @@
 
 #include "svn_client.h"
 #include "svn_error.h"
+#include "svn_dirent_uri.h"
 #include "svn_path.h"
 #include "cl.h"
 
@@ -65,7 +66,7 @@
   /* If only one target was given, split off the basename to use as
      the `to' path.  Else, a `to' path was supplied. */
   if (targets->nelts == 1)
-    to = svn_path_uri_decode(svn_path_basename(truefrom, pool), pool);
+    to = svn_path_uri_decode(svn_uri_basename(truefrom, pool), pool);
   else
     to = APR_ARRAY_IDX(targets, 1, const char *);
 
Index: subversion/svn/info-cmd.c
===================================================================
--- subversion/svn/info-cmd.c	(revision 37017)
+++ subversion/svn/info-cmd.c	(working copy)
@@ -28,6 +28,7 @@
 #include "svn_pools.h"
 #include "svn_error_codes.h"
 #include "svn_error.h"
+#include "svn_dirent_uri.h"
 #include "svn_path.h"
 #include "svn_time.h"
 #include "svn_xml.h"
@@ -239,7 +240,7 @@
      compatibility with svn 1.1 and older.  */
   if (info->kind != svn_node_dir)
     SVN_ERR(svn_cmdline_printf(pool, _("Name: %s\n"),
-                               svn_path_basename(target, pool)));
+                               svn_dirent_basename(target, pool)));
 
   if (info->URL)
     SVN_ERR(svn_cmdline_printf(pool, _("URL: %s\n"), info->URL));
Index: subversion/libsvn_client/repos_diff.c
===================================================================
--- subversion/libsvn_client/repos_diff.c	(revision 37017)
+++ subversion/libsvn_client/repos_diff.c	(working copy)
@@ -30,6 +30,7 @@
 #include "svn_hash.h"
 #include "svn_wc.h"
 #include "svn_pools.h"
+#include "svn_dirent_uri.h"
 #include "svn_path.h"
 #include "svn_io.h"
 #include "svn_props.h"
@@ -1529,7 +1530,7 @@
     {
       svn_wc_notify_t *notify
         = svn_wc_create_notify(svn_path_join(pb->wcpath,
-                                             svn_path_basename(path, pool),
+                                             svn_uri_basename(path, pool),
                                              pool),
                                svn_wc_notify_skip, pool);
       notify->kind = svn_node_dir;
@@ -1557,7 +1558,7 @@
     {
       svn_wc_notify_t *notify
         = svn_wc_create_notify(svn_path_join(pb->wcpath,
-                                             svn_path_basename(path, pool),
+                                             svn_uri_basename(path, pool),
                                              pool),
                                svn_wc_notify_skip, pool);
       notify->kind = svn_node_file;
Index: subversion/libsvn_client/patch.c
===================================================================
--- subversion/libsvn_client/patch.c	(revision 37017)
+++ subversion/libsvn_client/patch.c	(working copy)
@@ -315,7 +315,7 @@
   svn_node_kind_t kind;
   int i;
   apr_hash_t *new_props;
-  const char *path_basename = svn_path_basename(mine, subpool);
+  const char *path_basename = svn_dirent_basename(mine, subpool);
 
   /* This new file can't have any original prop in this offline context. */
   original_props = apr_hash_make(subpool);
Index: subversion/libsvn_client/copy.c
===================================================================
--- subversion/libsvn_client/copy.c	(revision 37017)
+++ subversion/libsvn_client/copy.c	(working copy)
@@ -1713,7 +1713,7 @@
                                             src_is_url,
                                             TRUE,
                                             iterpool));
-          src_basename = svn_path_basename(pair->src, iterpool);
+          src_basename = svn_uri_basename(pair->src, iterpool);
           if (srcs_are_urls && ! dst_is_url)
             src_basename = svn_path_uri_decode(src_basename, iterpool);
 
@@ -1993,7 +1993,7 @@
       svn_error_clear(err);
       svn_pool_clear(subpool);
 
-      src_basename = svn_path_basename(src_path, subpool);
+      src_basename = svn_uri_basename(src_path, subpool);
       if (svn_path_is_url(src_path) && ! svn_path_is_url(dst_path))
         src_basename = svn_path_uri_decode(src_basename, subpool);
 
@@ -2080,7 +2080,7 @@
       svn_error_clear(err);
       svn_pool_clear(subpool);
 
-      src_basename = svn_path_basename(src_path, pool);
+      src_basename = svn_uri_basename(src_path, pool);
 
       err = try_copy(&commit_info, sources,
                      svn_path_join(dst_path, src_basename, pool),
Index: subversion/libsvn_client/mergeinfo.c
===================================================================
--- subversion/libsvn_client/mergeinfo.c	(revision 37017)
+++ subversion/libsvn_client/mergeinfo.c	(working copy)
@@ -214,7 +214,7 @@
 
           /* No explicit mergeinfo on this path.  Look higher up the
              directory tree while keeping track of what we've walked. */
-          walk_path = svn_path_join(svn_path_basename(wcpath, pool),
+          walk_path = svn_path_join(svn_dirent_basename(wcpath, pool),
                                     walk_path, pool);
           wcpath = svn_path_dirname(wcpath, pool);
 
@@ -693,8 +693,8 @@
             {
               const char *path_prefix = svn_path_dirname(child->path,
                                                          iterpool);
-              const char *path_suffix = svn_path_basename(child->path,
-                                                          iterpool);
+              const char *path_suffix = svn_dirent_basename(child->path,
+                                                            iterpool);
 
               SVN_ERR(svn_client__parse_mergeinfo(&child_mergeinfo, entry,
                                                   child->path, FALSE,
@@ -702,8 +702,8 @@
 
               while (strcmp(path_prefix, target_wcpath) != 0)
                 {
-                  path_suffix = svn_path_join(svn_path_basename(path_prefix,
-                                                                iterpool),
+                  path_suffix = svn_path_join(svn_dirent_basename(path_prefix,
+                                                                  iterpool),
                                               path_suffix, iterpool);
                   path_prefix = svn_path_dirname(path_prefix, iterpool);
                 }
Index: subversion/libsvn_ra_neon/props.c
===================================================================
--- subversion/libsvn_ra_neon/props.c	(revision 37017)
+++ subversion/libsvn_ra_neon/props.c	(working copy)
@@ -25,6 +25,7 @@
 #include <apr_want.h>
 
 #include "svn_error.h"
+#include "svn_dirent_uri.h"
 #include "svn_path.h"
 #include "svn_dav.h"
 #include "svn_base64.h"
@@ -715,7 +716,7 @@
 
       /* else... lop off the basename and try again. */
       svn_stringbuf_set(lopped_path,
-                        svn_path_join(svn_path_basename(path_s->data, iterpool),
+                        svn_path_join(svn_uri_basename(path_s->data, iterpool),
                                       lopped_path->data, iterpool));
 
       len = path_s->len;
Index: subversion/libsvn_ra_neon/commit.c
===================================================================
--- subversion/libsvn_ra_neon/commit.c	(revision 37017)
+++ subversion/libsvn_ra_neon/commit.c	(working copy)
@@ -32,6 +32,7 @@
 #include "svn_io.h"
 #include "svn_ra.h"
 #include "../libsvn_ra/ra_loader.h"
+#include "svn_dirent_uri.h"
 #include "svn_path.h"
 #include "svn_xml.h"
 #include "svn_dav.h"
@@ -690,7 +691,7 @@
                                          apr_pool_t *pool)
 {
   resource_baton_t *parent = parent_baton;
-  const char *name = svn_path_basename(path, pool);
+  const char *name = svn_uri_basename(path, pool);
   apr_hash_t *extra_headers = NULL;
   const char *child;
   int code;
@@ -838,7 +839,7 @@
   resource_baton_t *parent = parent_baton;
   resource_baton_t *child;
   int code;
-  const char *name = svn_path_basename(path, dir_pool);
+  const char *name = svn_uri_basename(path, dir_pool);
   apr_pool_t *workpool = svn_pool_create(dir_pool);
   version_rsrc_t *rsrc = NULL;
 
@@ -918,7 +919,7 @@
 {
   resource_baton_t *parent = parent_baton;
   resource_baton_t *child = apr_pcalloc(dir_pool, sizeof(*child));
-  const char *name = svn_path_basename(path, dir_pool);
+  const char *name = svn_uri_basename(path, dir_pool);
   apr_pool_t *workpool = svn_pool_create(dir_pool);
   version_rsrc_t *rsrc = NULL;
 
@@ -983,7 +984,7 @@
 {
   resource_baton_t *parent = parent_baton;
   resource_baton_t *file;
-  const char *name = svn_path_basename(path, file_pool);
+  const char *name = svn_uri_basename(path, file_pool);
   apr_pool_t *workpool = svn_pool_create(file_pool);
   version_rsrc_t *rsrc = NULL;
 
@@ -1114,7 +1115,7 @@
 {
   resource_baton_t *parent = parent_baton;
   resource_baton_t *file;
-  const char *name = svn_path_basename(path, file_pool);
+  const char *name = svn_uri_basename(path, file_pool);
   apr_pool_t *workpool = svn_pool_create(file_pool);
   version_rsrc_t *rsrc = NULL;
 
Index: subversion/libsvn_ra_neon/fetch.c
===================================================================
--- subversion/libsvn_ra_neon/fetch.c	(revision 37017)
+++ subversion/libsvn_ra_neon/fetch.c	(working copy)
@@ -37,6 +37,7 @@
 #include "svn_base64.h"
 #include "svn_ra.h"
 #include "../libsvn_ra/ra_loader.h"
+#include "svn_dirent_uri.h"
 #include "svn_path.h"
 #include "svn_xml.h"
 #include "svn_dav.h"
@@ -1057,7 +1058,7 @@
             }
 
           apr_hash_set(*dirents,
-                       svn_path_uri_decode(svn_path_basename(childname, pool),
+                       svn_path_uri_decode(svn_uri_basename(childname, pool),
                                            pool),
                        APR_HASH_KEY_STRING, entry);
         }
Index: subversion/libsvn_repos/reporter.c
===================================================================
--- subversion/libsvn_repos/reporter.c	(revision 37017)
+++ subversion/libsvn_repos/reporter.c	(working copy)
@@ -16,6 +16,7 @@
  * ====================================================================
  */
 
+#include "svn_dirent_uri.h"
 #include "svn_path.h"
 #include "svn_types.h"
 #include "svn_error.h"
@@ -606,7 +607,7 @@
   else
     {
       ent = apr_palloc(pool, sizeof(**entry));
-      ent->name = svn_path_basename(path, pool);
+      ent->name = svn_uri_basename(path, pool);
       SVN_ERR(svn_fs_node_id(&ent->id, root, path, pool));
       ent->kind = kind;
       *entry = ent;
Index: subversion/libsvn_repos/node_tree.c
===================================================================
--- subversion/libsvn_repos/node_tree.c	(revision 37017)
+++ subversion/libsvn_repos/node_tree.c	(working copy)
@@ -29,6 +29,7 @@
 
 #include "svn_types.h"
 #include "svn_error.h"
+#include "svn_dirent_uri.h"
 #include "svn_path.h"
 #include "svn_delta.h"
 #include "svn_fs.h"
@@ -206,7 +207,7 @@
   svn_node_kind_t kind;
 
   /* Get (or create) the change node and update it. */
-  name = svn_path_basename(path, pool);
+  name = svn_uri_basename(path, pool);
   node = find_child_by_name(d->node, name);
   if (! node)
     node = create_child_node(d->node, name, eb->node_pool);
@@ -262,7 +263,7 @@
   nb->parent_baton = pb;
 
   /* Create and populate the node. */
-  nb->node = create_child_node(pb->node, svn_path_basename(path, pool),
+  nb->node = create_child_node(pb->node, svn_uri_basename(path, pool),
                                eb->node_pool);
   nb->node->kind = kind;
   nb->node->action = action;
Index: subversion/libsvn_repos/commit.c
===================================================================
--- subversion/libsvn_repos/commit.c	(revision 37017)
+++ subversion/libsvn_repos/commit.c	(working copy)
@@ -24,6 +24,7 @@
 #include "svn_compat.h"
 #include "svn_pools.h"
 #include "svn_error.h"
+#include "svn_dirent_uri.h"
 #include "svn_path.h"
 #include "svn_delta.h"
 #include "svn_fs.h"
@@ -837,8 +838,8 @@
   eb->base_path = apr_pstrdup(subpool, base_path);
   eb->repos = repos;
   eb->repos_url = repos_url;
-  eb->repos_name = svn_path_basename(svn_repos_path(repos, subpool),
-                                     subpool);
+  eb->repos_name = svn_uri_basename(svn_repos_path(repos, subpool),
+                                    subpool);
   eb->fs = svn_repos_fs(repos);
   eb->txn = txn;
   eb->txn_owner = txn == NULL;
Index: subversion/svnserve/serve.c
===================================================================
--- subversion/svnserve/serve.c	(revision 37017)
+++ subversion/svnserve/serve.c	(working copy)
@@ -37,6 +37,7 @@
 #include "svn_ra.h"              /* for SVN_RA_CAPABILITY_* */
 #include "svn_ra_svn.h"
 #include "svn_repos.h"
+#include "svn_dirent_uri.h"
 #include "svn_path.h"
 #include "svn_time.h"
 #include "svn_config.h"
@@ -2859,7 +2860,7 @@
   b->repos_url = url_buf->data;
   b->authz_repos_name = svn_path_is_child(root, repos_root, pool);
   if (b->authz_repos_name == NULL)
-    b->repos_name = svn_path_basename(repos_root, pool);
+    b->repos_name = svn_uri_basename(repos_root, pool);
   else
     b->repos_name = b->authz_repos_name;
   b->repos_name = svn_path_uri_encode(b->repos_name, pool);

