subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From i...@apache.org
Subject svn commit: r1614851 [4/5] - in /subversion/branches/remove-log-addressing: ./ build/ subversion/bindings/javahl/native/ subversion/bindings/swig/python/svn/ subversion/include/ subversion/include/private/ subversion/libsvn_client/ subversion/libsvn_de...
Date Thu, 31 Jul 2014 10:44:21 GMT
Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db.c Thu Jul 31 10:44:15 2014
@@ -1339,7 +1339,7 @@ flush_entries(svn_wc__db_wcroot_t *wcroo
            hi;
            hi = apr_hash_next(hi))
         {
-          const char *item_abspath = svn__apr_hash_index_key(hi);
+          const char *item_abspath = apr_hash_this_key(hi);
 
           if ((depth == svn_depth_files || depth == svn_depth_immediates) &&
               is_immediate_child_path(local_abspath, item_abspath))
@@ -10235,7 +10235,7 @@ filter_unwanted_props(apr_hash_t *prop_h
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *ipropname = svn__apr_hash_index_key(hi);
+      const char *ipropname = apr_hash_this_key(hi);
 
       if (strcmp(ipropname, propname) != 0)
         svn_hash_sets(prop_hash, ipropname, NULL);
@@ -10559,7 +10559,7 @@ get_children_with_cached_iprops(apr_hash
            hi;
            hi = apr_hash_next(hi))
         {
-          const char *child_abspath = svn__apr_hash_index_key(hi);
+          const char *child_abspath = apr_hash_this_key(hi);
           const char *child_relpath;
           svn_node_kind_t child_kind;
 
@@ -11092,8 +11092,8 @@ moved_descendant_commit(svn_wc__db_wcroo
   iterpool = svn_pool_create(scratch_pool);
   for (hi = apr_hash_first(scratch_pool, children); hi; hi = apr_hash_next(hi))
     {
-      const char *src_relpath = svn__apr_hash_index_key(hi);
-      const char *to_relpath = svn__apr_hash_index_val(hi);
+      const char *src_relpath = apr_hash_this_key(hi);
+      const char *to_relpath = apr_hash_this_val(hi);
       const char *new_repos_relpath;
       int to_op_depth = relpath_depth(to_relpath);
       int affected;
@@ -11673,14 +11673,14 @@ bump_node_revision(svn_wc__db_wcroot_t *
                                  scratch_pool, iterpool));
   for (hi = apr_hash_first(scratch_pool, children); hi; hi = apr_hash_next(hi))
     {
-      const char *child_basename = svn__apr_hash_index_key(hi);
+      const char *child_basename = apr_hash_this_key(hi);
       const struct svn_wc__db_base_info_t *child_info;
       const char *child_local_relpath;
       const char *child_repos_relpath = NULL;
 
       svn_pool_clear(iterpool);
 
-      child_info = svn__apr_hash_index_val(hi);
+      child_info = apr_hash_this_val(hi);
 
       if (child_info->update_root && child_info->kind == svn_node_file)
         continue; /* Skip file externals */
@@ -12779,8 +12779,8 @@ svn_wc__db_upgrade_apply_dav_cache(svn_s
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *name = svn__apr_hash_index_key(hi);
-      apr_hash_t *props = svn__apr_hash_index_val(hi);
+      const char *name = apr_hash_this_key(hi);
+      apr_hash_t *props = apr_hash_this_val(hi);
       const char *local_relpath;
 
       svn_pool_clear(iterpool);
@@ -13151,8 +13151,8 @@ wq_record(svn_wc__db_wcroot_t *wcroot,
   for (hi = apr_hash_first(scratch_pool, record_map); hi;
        hi = apr_hash_next(hi))
     {
-      const char *local_abspath = svn__apr_hash_index_key(hi);
-      const svn_io_dirent2_t *dirent = svn__apr_hash_index_val(hi);
+      const char *local_abspath = apr_hash_this_key(hi);
+      const svn_io_dirent2_t *dirent = apr_hash_this_val(hi);
       const char *local_relpath = svn_dirent_skip_ancestor(wcroot->abspath,
                                                            local_abspath);
 
@@ -13365,7 +13365,7 @@ svn_wc__db_temp_get_all_access(svn_wc__d
        hi;
        hi = apr_hash_next(hi))
     {
-      const svn_wc__db_wcroot_t *wcroot = svn__apr_hash_index_val(hi);
+      const svn_wc__db_wcroot_t *wcroot = apr_hash_this_val(hi);
 
       /* This is highly redundant, 'cause the same WCROOT will appear many
          times in dir_data. */

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_pristine.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_pristine.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_pristine.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_pristine.c Thu Jul 31 10:44:15 2014
@@ -335,6 +335,7 @@ pristine_install_txn(svn_sqlite__db_t *s
     apr_finfo_t finfo;
     SVN_ERR(svn_stream__install_get_info(&finfo, install_stream, APR_FINFO_SIZE,
                                          scratch_pool));
+    SVN_ERR(svn_io_set_file_read_write(pristine_abspath, TRUE, scratch_pool));
     SVN_ERR(svn_stream__install_stream(install_stream, pristine_abspath,
                                         TRUE, scratch_pool));
 
@@ -344,6 +345,8 @@ pristine_install_txn(svn_sqlite__db_t *s
     SVN_ERR(svn_sqlite__bind_checksum(stmt, 2, md5_checksum, scratch_pool));
     SVN_ERR(svn_sqlite__bind_int64(stmt, 3, finfo.size));
     SVN_ERR(svn_sqlite__insert(NULL, stmt));
+
+    SVN_ERR(svn_io_set_file_read_only(pristine_abspath, FALSE, scratch_pool));
   }
 
   return SVN_NO_ERROR;

Modified: subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_wcroot.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_wcroot.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_wcroot.c (original)
+++ subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_wcroot.c Thu Jul 31 10:44:15 2014
@@ -245,8 +245,8 @@ svn_wc__db_close(svn_wc__db_t *db)
        hi;
        hi = apr_hash_next(hi))
     {
-      svn_wc__db_wcroot_t *wcroot = svn__apr_hash_index_val(hi);
-      const char *local_abspath = svn__apr_hash_index_key(hi);
+      svn_wc__db_wcroot_t *wcroot = apr_hash_this_val(hi);
+      const char *local_abspath = apr_hash_this_key(hi);
 
       if (wcroot->sdb)
         svn_hash_sets(roots, wcroot->abspath, wcroot);
@@ -362,7 +362,7 @@ svn_wc__db_close_many_wcroots(apr_hash_t
 
   for (hi = apr_hash_first(scratch_pool, roots); hi; hi = apr_hash_next(hi))
     {
-      svn_wc__db_wcroot_t *wcroot = svn__apr_hash_index_val(hi);
+      svn_wc__db_wcroot_t *wcroot = apr_hash_this_val(hi);
       apr_status_t result;
 
       result = apr_pool_cleanup_run(state_pool, wcroot, close_wcroot);
@@ -916,10 +916,10 @@ svn_wc__db_drop_root(svn_wc__db_t *db,
        hi;
        hi = apr_hash_next(hi))
     {
-      svn_wc__db_wcroot_t *wcroot = svn__apr_hash_index_val(hi);
+      svn_wc__db_wcroot_t *wcroot = apr_hash_this_val(hi);
 
       if (wcroot == root_wcroot)
-        svn_hash_sets(db->dir_data, svn__apr_hash_index_key(hi), NULL);
+        svn_hash_sets(db->dir_data, apr_hash_this_key(hi), NULL);
     }
 
   result = apr_pool_cleanup_run(db->state_pool, root_wcroot, close_wcroot);

Modified: subversion/branches/remove-log-addressing/subversion/mod_dav_svn/reports/inherited-props.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/mod_dav_svn/reports/inherited-props.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/mod_dav_svn/reports/inherited-props.c (original)
+++ subversion/branches/remove-log-addressing/subversion/mod_dav_svn/reports/inherited-props.c Thu Jul 31 10:44:15 2014
@@ -156,8 +156,8 @@ dav_svn__get_inherited_props_report(cons
                hi;
                hi = apr_hash_next(hi))
             {
-              const char *propname = svn__apr_hash_index_key(hi);
-              svn_string_t *propval = svn__apr_hash_index_val(hi);
+              const char *propname = apr_hash_this_key(hi);
+              svn_string_t *propval = apr_hash_this_val(hi);
               const char *xml_safe;
 
               serr = dav_svn__brigade_printf(

Modified: subversion/branches/remove-log-addressing/subversion/mod_dav_svn/reports/update.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/mod_dav_svn/reports/update.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/mod_dav_svn/reports/update.c (original)
+++ subversion/branches/remove-log-addressing/subversion/mod_dav_svn/reports/update.c Thu Jul 31 10:44:15 2014
@@ -317,7 +317,6 @@ add_helper(svn_boolean_t is_dir,
 {
   item_baton_t *child;
   update_ctx_t *uc = parent->uc;
-  const char *bc_url = NULL;
 
   child = make_child_baton(parent, path, pool);
   child->added = TRUE;
@@ -341,6 +340,8 @@ add_helper(svn_boolean_t is_dir,
         {
           /* we send baseline-collection urls when we add a directory */
           svn_revnum_t revision;
+          const char *bc_url;
+
           revision = dav_svn__get_safe_cr(child->uc->rev_root, real_path,
                                           pool);
           bc_url = dav_svn__build_uri(child->uc->resource->info->repos,
@@ -360,6 +361,8 @@ add_helper(svn_boolean_t is_dir,
 
           /* make sure that the BC_URL is xml attribute safe. */
           bc_url = apr_xml_quote_string(pool, bc_url, 1);
+
+          bc_url_str = apr_psprintf(pool, " bc-url=\"%s\"", bc_url);
         }
       else
         {
@@ -373,9 +376,6 @@ add_helper(svn_boolean_t is_dir,
                            svn_checksum_to_cstring(sha1_checksum, pool));
         }
 
-      if (bc_url)
-        bc_url_str = apr_psprintf(pool, " bc-url=\"%s\"", bc_url);
-
       if (copyfrom_path == NULL)
         {
           elt = apr_psprintf(pool,

Modified: subversion/branches/remove-log-addressing/subversion/mod_dav_svn/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/mod_dav_svn/util.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/mod_dav_svn/util.c (original)
+++ subversion/branches/remove-log-addressing/subversion/mod_dav_svn/util.c Thu Jul 31 10:44:15 2014
@@ -1,5 +1,8 @@
 /*
- * util.c: some handy utility functions
+ * util.c:
+ * # ****************************************************************************
+ * # TRASHY LITTLE SUBROUTINES
+ * # ****************************************************************************
  *
  * ====================================================================
  *    Licensed to the Apache Software Foundation (ASF) under one

Modified: subversion/branches/remove-log-addressing/subversion/mod_dav_svn/version.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/mod_dav_svn/version.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/mod_dav_svn/version.c (original)
+++ subversion/branches/remove-log-addressing/subversion/mod_dav_svn/version.c Thu Jul 31 10:44:15 2014
@@ -1388,8 +1388,8 @@ release_locks(apr_hash_t *locks,
 
   for (hi = apr_hash_first(subpool, locks); hi; hi = apr_hash_next(hi))
     {
-      const char *path = svn__apr_hash_index_key(hi);
-      const char *token = svn__apr_hash_index_val(hi);
+      const char *path = apr_hash_this_key(hi);
+      const char *token = apr_hash_this_val(hi);
 
       svn_hash_sets(targets, path, token);
     }

Modified: subversion/branches/remove-log-addressing/subversion/svn/log-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svn/log-cmd.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/svn/log-cmd.c (original)
+++ subversion/branches/remove-log-addressing/subversion/svn/log-cmd.c Thu Jul 31 10:44:15 2014
@@ -147,14 +147,14 @@ match_search_pattern(const char *search_
            hi;
            hi = apr_hash_next(hi))
         {
-          const char *path = svn__apr_hash_index_key(hi);
+          const char *path = apr_hash_this_key(hi);
           svn_log_changed_path2_t *log_item;
 
           if (apr_fnmatch(pattern, path, flags) == APR_SUCCESS)
             return TRUE;
 
           /* Match copy-from paths, too. */
-          log_item = svn__apr_hash_index_val(hi);
+          log_item = apr_hash_this_val(hi);
           if (log_item->copyfrom_path
               && SVN_IS_VALID_REVNUM(log_item->copyfrom_rev)
               && apr_fnmatch(pattern,
@@ -821,8 +821,8 @@ svn_cl__log(apr_getopt_t *os,
                hi != NULL;
                hi = apr_hash_next(hi))
             {
-              const char *property = svn__apr_hash_index_key(hi);
-              svn_string_t *value = svn__apr_hash_index_val(hi);
+              const char *property = apr_hash_this_key(hi);
+              svn_string_t *value = apr_hash_this_val(hi);
 
               if (value && value->data[0] != '\0')
                 return svn_error_createf(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,

Modified: subversion/branches/remove-log-addressing/subversion/svn/notify.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svn/notify.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/svn/notify.c (original)
+++ subversion/branches/remove-log-addressing/subversion/svn/notify.c Thu Jul 31 10:44:15 2014
@@ -226,10 +226,12 @@ notify_body(struct notify_baton *nb,
     path_local = n->url;
   else
     {
+      /* Skip the path prefix in N, if supplied, or else the path prefix
+         in NB (which was set to the current working directory). */
       if (n->path_prefix)
         path_local = svn_cl__local_style_skip_ancestor(n->path_prefix, n->path,
                                                        pool);
-      else /* skip nb->path_prefix, if it's non-null */
+      else
         path_local = svn_cl__local_style_skip_ancestor(nb->path_prefix, n->path,
                                                        pool);
     }

Modified: subversion/branches/remove-log-addressing/subversion/svn/propget-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svn/propget-cmd.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/svn/propget-cmd.c (original)
+++ subversion/branches/remove-log-addressing/subversion/svn/propget-cmd.c Thu Jul 31 10:44:15 2014
@@ -89,7 +89,7 @@ print_properties_xml(const char *pname,
           const char *name_local;
           svn_prop_inherited_item_t *iprop =
            APR_ARRAY_IDX(inherited_props, i, svn_prop_inherited_item_t *);
-          svn_string_t *propval = svn__apr_hash_index_val(
+          svn_string_t *propval = apr_hash_this_val(
             apr_hash_first(pool, iprop->prop_hash));
 
           sb = NULL;
@@ -278,7 +278,7 @@ print_properties(svn_stream_t *out,
         {
           svn_prop_inherited_item_t *iprop =
             APR_ARRAY_IDX(inherited_props, i, svn_prop_inherited_item_t *);
-          svn_string_t *propval = svn__apr_hash_index_val(apr_hash_first(pool,
+          svn_string_t *propval = apr_hash_this_val(apr_hash_first(pool,
                                                           iprop->prop_hash));
           SVN_ERR(print_single_prop(propval, target_abspath_or_url,
                                     iprop->path_or_url,
@@ -431,7 +431,8 @@ svn_cl__propget(apr_getopt_t *os,
          sure we have only a single target, and that we're not being
          asked to recurse on that target. */
       if (opt_state->strict
-          && ((targets->nelts > 1) || (opt_state->depth != svn_depth_empty)))
+          && ((targets->nelts > 1) || (opt_state->depth != svn_depth_empty)
+              || (opt_state->show_inherited_props)))
         return svn_error_create
           (SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
            _("Strict output of property values only available for single-"

Modified: subversion/branches/remove-log-addressing/subversion/svn/status-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svn/status-cmd.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/svn/status-cmd.c (original)
+++ subversion/branches/remove-log-addressing/subversion/svn/status-cmd.c Thu Jul 31 10:44:15 2014
@@ -379,8 +379,8 @@ svn_cl__status(apr_getopt_t *os,
       for (hi = apr_hash_first(scratch_pool, master_cl_hash); hi;
            hi = apr_hash_next(hi))
         {
-          const char *changelist_name = svn__apr_hash_index_key(hi);
-          apr_array_header_t *path_array = svn__apr_hash_index_val(hi);
+          const char *changelist_name = apr_hash_this_key(hi);
+          apr_array_header_t *path_array = apr_hash_this_val(hi);
           int j;
 
           /* ### TODO: For non-XML output, we shouldn't print the

Modified: subversion/branches/remove-log-addressing/subversion/svn/svn.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svn/svn.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/svn/svn.c (original)
+++ subversion/branches/remove-log-addressing/subversion/svn/svn.c Thu Jul 31 10:44:15 2014
@@ -191,7 +191,10 @@ const apr_getopt_option_t svn_cl__option
   {"verbose",       'v', 0, N_("print extra information")},
   {"show-updates",  'u', 0, N_("display update information")},
   {"username",      opt_auth_username, 1, N_("specify a username ARG")},
-  {"password",      opt_auth_password, 1, N_("specify a password ARG")},
+  {"password",      opt_auth_password, 1,
+                    N_("specify a password ARG (caution: on many operating\n"
+                       "                             "
+                       "systems, other users will be able to see this)")},
   {"extensions",    'x', 1,
                     N_("Specify differencing options for external diff or\n"
                        "                             "
@@ -1302,9 +1305,9 @@ const svn_opt_subcommand_desc2_t svn_cl_
      "  'empty', the target path is printed on the same line before each value.\n"
      "\n"
      "  By default, an extra newline is printed after the property value so that\n"
-     "  the output looks pretty.  With a single TARGET and depth 'empty', you can\n"
-     "  use the --strict option to disable this (useful when redirecting a binary\n"
-     "  property value to a file, for example).\n"),
+     "  the output looks pretty.  With a single TARGET, depth 'empty' and without\n"
+     "  --show-inherited-props, you can use the --strict option to disable this\n"
+     "  (useful when redirecting a binary property value to a file, for example).\n"),
     {'v', 'R', opt_depth, 'r', opt_revprop, opt_strict, opt_xml,
      opt_changelist, opt_show_inherited_props },
     {{'v', N_("print path, name and value on separate lines")},
@@ -2529,7 +2532,7 @@ sub_main(int *exit_code, int argc, const
       for (hi = apr_hash_first(pool, opt_state.revprop_table);
            hi; hi = apr_hash_next(hi))
         {
-          SVN_ERR(svn_cl__check_svn_prop_name(svn__apr_hash_index_key(hi),
+          SVN_ERR(svn_cl__check_svn_prop_name(apr_hash_this_key(hi),
                                               TRUE, svn_cl__prop_use_use,
                                               pool));
         }

Modified: subversion/branches/remove-log-addressing/subversion/svnadmin/svnadmin.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svnadmin/svnadmin.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/svnadmin/svnadmin.c (original)
+++ subversion/branches/remove-log-addressing/subversion/svnadmin/svnadmin.c Thu Jul 31 10:44:15 2014
@@ -399,7 +399,7 @@ static const svn_opt_subcommand_desc2_t 
     "Make a hot copy of a repository.\n"
     "If --incremental is passed, data which already exists at the destination\n"
     "is not copied again.  Incremental mode is implemented for FSFS repositories.\n"),
-   {svnadmin__clean_logs, svnadmin__incremental} },
+   {svnadmin__clean_logs, svnadmin__incremental, 'q'} },
 
   {"info", subcommand_info, {0}, N_
    ("usage: svnadmin info REPOS_PATH\n\n"
@@ -861,7 +861,8 @@ struct repos_notify_handler_baton {
 };
 
 /* Implementation of svn_repos_notify_func_t to wrap the output to a
-   response stream for svn_repos_dump_fs2() and svn_repos_verify_fs() */
+   response stream for svn_repos_dump_fs2(), svn_repos_verify_fs(),
+   svn_repos_hotcopy3() and others. */
 static void
 repos_notify_handler(void *baton,
                      const svn_repos_notify_t *notify,
@@ -1077,6 +1078,21 @@ repos_notify_handler(void *baton,
       svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
                             _("Bumped repository format to %ld\n"),
                             notify->revision));
+      return;
+
+    case svn_repos_notify_hotcopy_rev_range:
+      if (notify->start_revision == notify->end_revision)
+        {
+          svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
+                                            _("* Copied revision %ld.\n"),
+                                            notify->start_revision));
+        }
+      else
+        {
+          svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
+                               _("* Copied revisions from %ld to %ld.\n"),
+                               notify->start_revision, notify->end_revision));
+        }
 
     default:
       return;
@@ -1861,6 +1877,7 @@ svn_error_t *
 subcommand_hotcopy(apr_getopt_t *os, void *baton, apr_pool_t *pool)
 {
   struct svnadmin_opt_state *opt_state = baton;
+  struct repos_notify_handler_baton notify_baton = { 0 };
   apr_array_header_t *targets;
   const char *new_repos_path;
 
@@ -1869,9 +1886,14 @@ subcommand_hotcopy(apr_getopt_t *os, voi
   new_repos_path = APR_ARRAY_IDX(targets, 0, const char *);
   SVN_ERR(target_arg_to_dirent(&new_repos_path, new_repos_path, pool));
 
-  return svn_repos_hotcopy2(opt_state->repository_path, new_repos_path,
+  /* Progress feedback goes to STDOUT, unless they asked to suppress it. */
+  if (! opt_state->quiet)
+    notify_baton.feedback_stream = recode_stream_create(stdout, pool);
+
+  return svn_repos_hotcopy3(opt_state->repository_path, new_repos_path,
                             opt_state->clean_logs, opt_state->incremental,
-                            check_cancel, NULL, pool);
+                            !opt_state->quiet ? repos_notify_handler : NULL,
+                            &notify_baton, check_cancel, NULL, pool);
 }
 
 svn_error_t *
@@ -2085,8 +2107,8 @@ subcommand_lslocks(apr_getopt_t *os, voi
   for (hi = apr_hash_first(pool, locks); hi; hi = apr_hash_next(hi))
     {
       const char *cr_date, *exp_date = "";
-      const char *path = svn__apr_hash_index_key(hi);
-      svn_lock_t *lock = svn__apr_hash_index_val(hi);
+      const char *path = apr_hash_this_key(hi);
+      svn_lock_t *lock = apr_hash_this_val(hi);
       int comment_lines = 0;
 
       svn_pool_clear(iterpool);

Modified: subversion/branches/remove-log-addressing/subversion/svndumpfilter/svndumpfilter.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svndumpfilter/svndumpfilter.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/svndumpfilter/svndumpfilter.c (original)
+++ subversion/branches/remove-log-addressing/subversion/svndumpfilter/svndumpfilter.c Thu Jul 31 10:44:15 2014
@@ -348,8 +348,8 @@ new_revision_record(void **revision_bato
 
   for (hi = apr_hash_first(pool, headers); hi; hi = apr_hash_next(hi))
     {
-      const char *key = svn__apr_hash_index_key(hi);
-      const char *val = svn__apr_hash_index_val(hi);
+      const char *key = apr_hash_this_key(hi);
+      const char *val = apr_hash_this_val(hi);
 
       if ((!strcmp(key, SVN_REPOS_DUMPFILE_CONTENT_LENGTH))
           || (!strcmp(key, SVN_REPOS_DUMPFILE_PROP_CONTENT_LENGTH))
@@ -415,8 +415,8 @@ output_revision(struct revision_baton_t 
            hi;
            hi = apr_hash_next(hi))
         {
-          const char *pname = svn__apr_hash_index_key(hi);
-          const svn_string_t *pval = svn__apr_hash_index_val(hi);
+          const char *pname = apr_hash_this_key(hi);
+          const svn_string_t *pval = apr_hash_this_val(hi);
 
           write_prop_to_stringbuf(props, pname, pval);
         }
@@ -651,8 +651,8 @@ new_node_record(void **node_baton,
 
       for (hi = apr_hash_first(pool, headers); hi; hi = apr_hash_next(hi))
         {
-          const char *key = svn__apr_hash_index_key(hi);
-          const char *val = svn__apr_hash_index_val(hi);
+          const char *key = apr_hash_this_key(hi);
+          const char *val = apr_hash_this_val(hi);
 
           if ((!strcmp(key, SVN_REPOS_DUMPFILE_PROP_DELTA))
               && (!strcmp(val, "true")))
@@ -803,8 +803,8 @@ adjust_mergeinfo(svn_string_t **final_va
 
   for (hi = apr_hash_first(subpool, mergeinfo); hi; hi = apr_hash_next(hi))
     {
-      const char *merge_source = svn__apr_hash_index_key(hi);
-      svn_rangelist_t *rangelist = svn__apr_hash_index_val(hi);
+      const char *merge_source = apr_hash_this_key(hi);
+      svn_rangelist_t *rangelist = apr_hash_this_val(hi);
       struct parse_baton_t *pb = rb->pb;
 
       /* Determine whether the merge_source is a part of the prefix. */
@@ -1303,7 +1303,7 @@ do_filter(apr_getopt_t *os,
            hi;
            hi = apr_hash_next(hi))
         {
-          const svn_revnum_t *revnum = svn__apr_hash_index_key(hi);
+          const svn_revnum_t *revnum = apr_hash_this_key(hi);
 
           APR_ARRAY_PUSH(keys, svn_revnum_t) = *revnum;
         }
@@ -1346,7 +1346,7 @@ do_filter(apr_getopt_t *os,
            hi;
            hi = apr_hash_next(hi))
         {
-          const char *path = svn__apr_hash_index_key(hi);
+          const char *path = apr_hash_this_key(hi);
 
           APR_ARRAY_PUSH(keys, const char *) = path;
         }

Modified: subversion/branches/remove-log-addressing/subversion/svnlook/svnlook.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svnlook/svnlook.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/svnlook/svnlook.c (original)
+++ subversion/branches/remove-log-addressing/subversion/svnlook/svnlook.c Thu Jul 31 10:44:15 2014
@@ -1769,8 +1769,7 @@ do_pget(svnlook_ctxt_t *c,
               else
                 {
                   svn_string_t *propval =
-                    svn__apr_hash_index_val(apr_hash_first(pool,
-                                                           elt->prop_hash));
+                    apr_hash_this_val(apr_hash_first(pool, elt->prop_hash));
 
                   SVN_ERR(svn_stream_printf(
                     stdout_stream, pool, "%s - ",
@@ -1953,8 +1952,8 @@ do_plist(svnlook_ctxt_t *c,
 
   for (hi = apr_hash_first(pool, props); hi; hi = apr_hash_next(hi))
     {
-      const char *pname = svn__apr_hash_index_key(hi);
-      svn_string_t *propval = svn__apr_hash_index_val(hi);
+      const char *pname = apr_hash_this_key(hi);
+      svn_string_t *propval = apr_hash_this_val(hi);
 
       SVN_ERR(check_cancel(NULL));
 

Modified: subversion/branches/remove-log-addressing/subversion/svnmucc/svnmucc.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svnmucc/svnmucc.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/svnmucc/svnmucc.c (original)
+++ subversion/branches/remove-log-addressing/subversion/svnmucc/svnmucc.c Thu Jul 31 10:44:15 2014
@@ -43,7 +43,7 @@
 #include "svn_private_config.h"
 #include "svn_hash.h"
 #include "svn_client.h"
-#include "svn_client_mtcc.h"
+#include "private/svn_client_mtcc.h"
 #include "svn_cmdline.h"
 #include "svn_config.h"
 #include "svn_error.h"
@@ -136,16 +136,16 @@ execute(const apr_array_header_t *action
         svn_client_ctx_t *ctx,
         apr_pool_t *pool)
 {
-  svn_client_mtcc_t *mtcc;
+  svn_client__mtcc_t *mtcc;
   apr_pool_t *iterpool = svn_pool_create(pool);
   svn_error_t *err;
   int i;
 
-  SVN_ERR(svn_client_mtcc_create(&mtcc, anchor,
-                                 SVN_IS_VALID_REVNUM(base_revision)
-                                    ? base_revision
-                                    : SVN_INVALID_REVNUM,
-                                 ctx, pool, iterpool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc, anchor,
+                                  SVN_IS_VALID_REVNUM(base_revision)
+                                     ? base_revision
+                                     : SVN_INVALID_REVNUM,
+                                  ctx, pool, iterpool));
 
   for (i = 0; i < actions->nelts; ++i)
     {
@@ -160,29 +160,29 @@ execute(const apr_array_header_t *action
         case ACTION_MV:
           path1 = subtract_anchor(anchor, action->path[0], pool);
           path2 = subtract_anchor(anchor, action->path[1], pool);
-          SVN_ERR(svn_client_mtcc_add_move(path1, path2, mtcc, iterpool));
+          SVN_ERR(svn_client__mtcc_add_move(path1, path2, mtcc, iterpool));
           break;
         case ACTION_CP:
           path1 = subtract_anchor(anchor, action->path[0], pool);
           path2 = subtract_anchor(anchor, action->path[1], pool);
-          SVN_ERR(svn_client_mtcc_add_copy(path1, action->rev, path2,
-                                           mtcc, iterpool));
+          SVN_ERR(svn_client__mtcc_add_copy(path1, action->rev, path2,
+                                            mtcc, iterpool));
           break;
         case ACTION_RM:
           path1 = subtract_anchor(anchor, action->path[0], pool);
-          SVN_ERR(svn_client_mtcc_add_delete(path1, mtcc, iterpool));
+          SVN_ERR(svn_client__mtcc_add_delete(path1, mtcc, iterpool));
           break;
         case ACTION_MKDIR:
           path1 = subtract_anchor(anchor, action->path[0], pool);
-          SVN_ERR(svn_client_mtcc_add_mkdir(path1, mtcc, iterpool));
+          SVN_ERR(svn_client__mtcc_add_mkdir(path1, mtcc, iterpool));
           break;
         case ACTION_PUT:
           path1 = subtract_anchor(anchor, action->path[0], pool);
-          SVN_ERR(svn_client_mtcc_check_path(&kind, path1, TRUE, mtcc, pool));
+          SVN_ERR(svn_client__mtcc_check_path(&kind, path1, TRUE, mtcc, pool));
 
           if (kind == svn_node_dir)
             {
-              SVN_ERR(svn_client_mtcc_add_delete(path1, mtcc, pool));
+              SVN_ERR(svn_client__mtcc_add_delete(path1, mtcc, pool));
               kind = svn_node_none;
             }
 
@@ -197,20 +197,20 @@ execute(const apr_array_header_t *action
 
 
             if (kind == svn_node_file)
-              SVN_ERR(svn_client_mtcc_add_update_file(path1, src, NULL,
-                                                      NULL, NULL,
-                                                      mtcc, iterpool));
+              SVN_ERR(svn_client__mtcc_add_update_file(path1, src, NULL,
+                                                       NULL, NULL,
+                                                       mtcc, iterpool));
             else if (kind == svn_node_none)
-              SVN_ERR(svn_client_mtcc_add_add_file(path1, src, NULL,
-                                                   mtcc, iterpool));
+              SVN_ERR(svn_client__mtcc_add_add_file(path1, src, NULL,
+                                                    mtcc, iterpool));
           }
           break;
         case ACTION_PROPSET:
         case ACTION_PROPDEL:
           path1 = subtract_anchor(anchor, action->path[0], pool);
-          SVN_ERR(svn_client_mtcc_add_propset(path1, action->prop_name,
-                                              action->prop_value, FALSE,
-                                              mtcc, iterpool));
+          SVN_ERR(svn_client__mtcc_add_propset(path1, action->prop_name,
+                                               action->prop_value, FALSE,
+                                               mtcc, iterpool));
           break;
         case ACTION_PROPSETF:
         default:
@@ -218,8 +218,8 @@ execute(const apr_array_header_t *action
         }
     }
 
-  err = svn_client_mtcc_commit(revprops, commit_callback, NULL,
-                               mtcc, iterpool);
+  err = svn_client__mtcc_commit(revprops, commit_callback, NULL,
+                                mtcc, iterpool);
 
   svn_pool_destroy(iterpool);
   return svn_error_trace(err);;

Modified: subversion/branches/remove-log-addressing/subversion/svnrdump/dump_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svnrdump/dump_editor.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/svnrdump/dump_editor.c (original)
+++ subversion/branches/remove-log-addressing/subversion/svnrdump/dump_editor.c Thu Jul 31 10:44:15 2014
@@ -794,7 +794,7 @@ close_directory(void *dir_baton,
   for (hi = apr_hash_first(pool, db->deleted_entries); hi;
        hi = apr_hash_next(hi))
     {
-      const char *path = svn__apr_hash_index_key(hi);
+      const char *path = apr_hash_this_key(hi);
 
       SVN_ERR(dump_node(db->eb, path, NULL, NULL, svn_node_action_delete,
                         FALSE, NULL, SVN_INVALID_REVNUM, pool));

Modified: subversion/branches/remove-log-addressing/subversion/svnrdump/load_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svnrdump/load_editor.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/svnrdump/load_editor.c (original)
+++ subversion/branches/remove-log-addressing/subversion/svnrdump/load_editor.c Thu Jul 31 10:44:15 2014
@@ -557,8 +557,8 @@ new_revision_record(void **revision_bato
 
   for (hi = apr_hash_first(pool, headers); hi; hi = apr_hash_next(hi))
     {
-      const char *hname = svn__apr_hash_index_key(hi);
-      const char *hval = svn__apr_hash_index_val(hi);
+      const char *hname = apr_hash_this_key(hi);
+      const char *hval = apr_hash_this_val(hi);
 
       if (strcmp(hname, SVN_REPOS_DUMPFILE_REVISION_NUMBER) == 0)
         rb->rev = atoi(hval);
@@ -669,8 +669,8 @@ new_node_record(void **node_baton,
 
   for (hi = apr_hash_first(rb->pool, headers); hi; hi = apr_hash_next(hi))
     {
-      const char *hname = svn__apr_hash_index_key(hi);
-      const char *hval = svn__apr_hash_index_val(hi);
+      const char *hname = apr_hash_this_key(hi);
+      const char *hval = apr_hash_this_val(hi);
 
       /* Parse the different kinds of headers we can encounter and
          stuff them into the node_baton for writing later */
@@ -1009,7 +1009,7 @@ remove_node_props(void *baton)
 
   for (hi = apr_hash_first(pool, props); hi; hi = apr_hash_next(hi))
     {
-      const char *name = svn__apr_hash_index_key(hi);
+      const char *name = apr_hash_this_key(hi);
       svn_prop_kind_t kind = svn_property_kind2(name);
 
       if (kind == svn_prop_regular_kind)

Modified: subversion/branches/remove-log-addressing/subversion/svnrdump/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svnrdump/util.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/svnrdump/util.c (original)
+++ subversion/branches/remove-log-addressing/subversion/svnrdump/util.c Thu Jul 31 10:44:15 2014
@@ -61,8 +61,8 @@ svn_rdump__normalize_props(apr_hash_t **
   for (hi = apr_hash_first(result_pool, props); hi;
         hi = apr_hash_next(hi))
     {
-      const char *key = svn__apr_hash_index_key(hi);
-      const svn_string_t *value = svn__apr_hash_index_val(hi);
+      const char *key = apr_hash_this_key(hi);
+      const svn_string_t *value = apr_hash_this_val(hi);
 
       SVN_ERR(svn_rdump__normalize_prop(key, &value,
                                         result_pool));

Modified: subversion/branches/remove-log-addressing/subversion/svnserve/serve.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svnserve/serve.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/svnserve/serve.c (original)
+++ subversion/branches/remove-log-addressing/subversion/svnserve/serve.c Thu Jul 31 10:44:15 2014
@@ -1743,8 +1743,8 @@ static svn_error_t *get_dir(svn_ra_svn_c
       subpool = svn_pool_create(pool);
       for (hi = apr_hash_first(pool, entries); hi; hi = apr_hash_next(hi))
         {
-          const char *name = svn__apr_hash_index_key(hi);
-          svn_fs_dirent_t *fsent = svn__apr_hash_index_val(hi);
+          const char *name = apr_hash_this_key(hi);
+          svn_fs_dirent_t *fsent = apr_hash_this_val(hi);
           const char *file_path;
 
           /* The fields in the entry tuple.  */
@@ -2100,8 +2100,8 @@ static svn_error_t *get_mergeinfo(svn_ra
   iterpool = svn_pool_create(pool);
   for (hi = apr_hash_first(pool, mergeinfo); hi; hi = apr_hash_next(hi))
     {
-      const char *key = svn__apr_hash_index_key(hi);
-      svn_mergeinfo_t value = svn__apr_hash_index_val(hi);
+      const char *key = apr_hash_this_key(hi);
+      svn_mergeinfo_t value = apr_hash_this_val(hi);
       svn_string_t *mergeinfo_string;
 
       svn_pool_clear(iterpool);
@@ -2160,8 +2160,8 @@ static svn_error_t *log_receiver(void *b
       for (h = apr_hash_first(pool, log_entry->changed_paths2); h;
                                                         h = apr_hash_next(h))
         {
-          const char *path = svn__apr_hash_index_key(h);
-          svn_log_changed_path2_t *change = svn__apr_hash_index_val(h);
+          const char *path = apr_hash_this_key(h);
+          svn_log_changed_path2_t *change = apr_hash_this_val(h);
 
           SVN_ERR(svn_ra_svn__write_data_log_changed_path(
                       conn, pool,
@@ -2446,8 +2446,8 @@ static svn_error_t *get_locations(svn_ra
           for (iter = apr_hash_first(pool, fs_locations); iter;
               iter = apr_hash_next(iter))
             {
-              const svn_revnum_t *iter_key = svn__apr_hash_index_key(iter);
-              const char *iter_value = svn__apr_hash_index_val(iter);
+              const svn_revnum_t *iter_key = apr_hash_this_key(iter);
+              const char *iter_value = apr_hash_this_val(iter);
 
               SVN_ERR(svn_ra_svn__write_tuple(conn, pool, "rc",
                                               *iter_key, iter_value));
@@ -2743,7 +2743,7 @@ clear_lock_result_hash(apr_hash_t *resul
 
   for (hi = apr_hash_first(scratch_pool, results); hi; hi = apr_hash_next(hi))
     {
-      struct lock_result_t *result = svn__apr_hash_index_val(hi);
+      struct lock_result_t *result = apr_hash_this_val(hi);
       svn_error_clear(result->err);
     }
 }
@@ -2812,7 +2812,7 @@ static svn_error_t *lock_many(svn_ra_svn
      results, are cleared before returning from this function. */
   for (hi = apr_hash_first(pool, targets); hi; hi = apr_hash_next(hi))
     {
-      const char *full_path = svn__apr_hash_index_key(hi);
+      const char *full_path = apr_hash_this_key(hi);
 
       svn_pool_clear(subpool);
 
@@ -2939,7 +2939,7 @@ static svn_error_t *unlock_many(svn_ra_s
   apr_array_header_t *unlock_tokens;
   int i;
   apr_pool_t *subpool;
-  svn_error_t *err = SVN_NO_ERROR, *write_err;
+  svn_error_t *err = SVN_NO_ERROR, *write_err = SVN_NO_ERROR;
   apr_hash_t *targets = apr_hash_make(pool);
   apr_hash_t *authz_results = apr_hash_make(pool);
   apr_hash_index_t *hi;
@@ -2990,7 +2990,7 @@ static svn_error_t *unlock_many(svn_ra_s
      results, are cleared before returning from this function. */
   for (hi = apr_hash_first(pool, targets); hi; hi = apr_hash_next(hi))
     {
-      const char *full_path = svn__apr_hash_index_key(hi);
+      const char *full_path = apr_hash_this_key(hi);
 
       svn_pool_clear(subpool);
 
@@ -3145,7 +3145,7 @@ static svn_error_t *get_locks(svn_ra_svn
   SVN_ERR(svn_ra_svn__write_tuple(conn, pool, "w((!", "success"));
   for (hi = apr_hash_first(pool, locks); hi; hi = apr_hash_next(hi))
     {
-      svn_lock_t *l = svn__apr_hash_index_val(hi);
+      svn_lock_t *l = apr_hash_this_val(hi);
 
       SVN_ERR(write_lock(conn, pool, l));
     }

Modified: subversion/branches/remove-log-addressing/subversion/svnsync/svnsync.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svnsync/svnsync.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/svnsync/svnsync.c (original)
+++ subversion/branches/remove-log-addressing/subversion/svnsync/svnsync.c Thu Jul 31 10:44:15 2014
@@ -486,7 +486,7 @@ remove_props_not_in_source(svn_ra_sessio
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *propname = svn__apr_hash_index_key(hi);
+      const char *propname = apr_hash_this_key(hi);
 
       svn_pool_clear(subpool);
 
@@ -530,8 +530,8 @@ filter_props(int *filtered_count, apr_ha
 
   for (hi = apr_hash_first(pool, props); hi ; hi = apr_hash_next(hi))
     {
-      const char *propname = svn__apr_hash_index_key(hi);
-      void *propval = svn__apr_hash_index_val(hi);
+      const char *propname = apr_hash_this_key(hi);
+      void *propval = apr_hash_this_val(hi);
 
       /* Copy all properties:
           - not matching the exclude pattern if provided OR
@@ -572,8 +572,8 @@ write_revprops(int *filtered_count,
 
   for (hi = apr_hash_first(pool, rev_props); hi; hi = apr_hash_next(hi))
     {
-      const char *propname = svn__apr_hash_index_key(hi);
-      const svn_string_t *propval = svn__apr_hash_index_val(hi);
+      const char *propname = apr_hash_this_key(hi);
+      const svn_string_t *propval = apr_hash_this_val(hi);
 
       svn_pool_clear(subpool);
 

Modified: subversion/branches/remove-log-addressing/subversion/svnsync/sync.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/svnsync/sync.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/svnsync/sync.c (original)
+++ subversion/branches/remove-log-addressing/subversion/svnsync/sync.c Thu Jul 31 10:44:15 2014
@@ -107,8 +107,8 @@ svnsync_normalize_revprops(apr_hash_t *r
        hi;
        hi = apr_hash_next(hi))
     {
-      const char *propname = svn__apr_hash_index_key(hi);
-      const svn_string_t *propval = svn__apr_hash_index_val(hi);
+      const char *propname = apr_hash_this_key(hi);
+      const svn_string_t *propval = apr_hash_this_val(hi);
 
       if (svn_prop_needs_translation(propname))
         {

Modified: subversion/branches/remove-log-addressing/subversion/tests/cmdline/entries-dump.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/tests/cmdline/entries-dump.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/tests/cmdline/entries-dump.c (original)
+++ subversion/branches/remove-log-addressing/subversion/tests/cmdline/entries-dump.c Thu Jul 31 10:44:15 2014
@@ -112,8 +112,8 @@ entries_dump(const char *dir_path, svn_w
 
   for (hi = apr_hash_first(pool, entries); hi; hi = apr_hash_next(hi))
     {
-      const char *key = svn__apr_hash_index_key(hi);
-      const svn_wc_entry_t *entry = svn__apr_hash_index_val(hi);
+      const char *key = apr_hash_this_key(hi);
+      const svn_wc_entry_t *entry = apr_hash_this_val(hi);
 
       SVN_ERR_ASSERT(strcmp(key, entry->name) == 0);
 
@@ -214,7 +214,7 @@ directory_dump_old(struct directory_walk
                                    scratch_pool, scratch_pool));
   for (hi = apr_hash_first(scratch_pool, entries); hi; hi = apr_hash_next(hi))
     {
-      const svn_wc_entry_t *entry = svn__apr_hash_index_val(hi);
+      const svn_wc_entry_t *entry = apr_hash_this_val(hi);
       const char *local_abspath;
 
       if (entry->deleted || entry->absent || entry->kind != svn_node_dir)

Modified: subversion/branches/remove-log-addressing/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout (original)
+++ subversion/branches/remove-log-addressing/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout Thu Jul 31 10:44:15 2014
@@ -115,7 +115,8 @@ Valid options:
 
 Global options:
   --username ARG           : specify a username ARG
-  --password ARG           : specify a password ARG
+  --password ARG           : specify a password ARG (caution: on many operating
+                             systems, other users will be able to see this)
   --no-auth-cache          : do not cache authentication tokens
   --non-interactive        : do no interactive prompting (default is to prompt
                              only if standard input is a terminal device)
@@ -198,7 +199,8 @@ Valid options:
 
 Global options:
   --username ARG           : specify a username ARG
-  --password ARG           : specify a password ARG
+  --password ARG           : specify a password ARG (caution: on many operating
+                             systems, other users will be able to see this)
   --no-auth-cache          : do not cache authentication tokens
   --non-interactive        : do no interactive prompting (default is to prompt
                              only if standard input is a terminal device)

Modified: subversion/branches/remove-log-addressing/subversion/tests/cmdline/svnadmin_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/tests/cmdline/svnadmin_tests.py?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/tests/cmdline/svnadmin_tests.py (original)
+++ subversion/branches/remove-log-addressing/subversion/tests/cmdline/svnadmin_tests.py Thu Jul 31 10:44:15 2014
@@ -2545,6 +2545,240 @@ def verify_quickly(sbox):
     raise svntest.Failure
 
 
+@SkipUnless(svntest.main.is_fs_type_fsfs)
+@SkipUnless(svntest.main.fs_has_pack)
+def fsfs_hotcopy_progress(sbox):
+  "hotcopy progress reporting"
+
+  # Check how 'svnadmin hotcopy' reports progress for non-incremental
+  # and incremental scenarios.  The progress output can be affected by
+  # the --fsfs-packing option, so skip the test if that is the case.
+  if svntest.main.options.fsfs_packing:
+    raise svntest.Skip
+
+  # Create an empty repository, configure three files per shard.
+  sbox.build(create_wc=False)
+  svntest.main.safe_rmtree(sbox.repo_dir, True)
+  svntest.main.create_repos(sbox.repo_dir)
+
+  if svntest.main.options.server_minor_version >= 9:
+    format = "7\nlayout sharded 3\naddressing logical 0\n"
+  elif svntest.main.options.server_minor_version < 9:
+    format = "6\nlayout sharded 3\n"
+  else:
+    raise svntest.Failure
+
+  format_file = open(os.path.join(sbox.repo_dir, 'db', 'format'), 'wb')
+  format_file.write(format)
+  format_file.close()
+
+  inc_backup_dir, inc_backup_url = sbox.add_repo_path('incremental-backup')
+
+  # Nothing really exciting for the empty repository.
+  expected_full = [
+    "* Copied revision 0.\n"
+    ]
+  expected_incremental = [
+    "* Copied revision 0.\n",
+    ]
+
+  backup_dir, backup_url = sbox.add_repo_path('backup-0')
+  svntest.actions.run_and_verify_svnadmin(None, expected_full, [],
+                                          'hotcopy',
+                                          sbox.repo_dir, backup_dir)
+  svntest.actions.run_and_verify_svnadmin(None, expected_incremental, [],
+                                          'hotcopy', '--incremental',
+                                          sbox.repo_dir, inc_backup_dir)
+
+  # Commit three revisions.  After this step we have a full shard
+  # (r0, r1, r2) and the second shard (r3) with a single revision.
+  for i in range(3):
+    svntest.actions.run_and_verify_svn(None, None, [], 'mkdir',
+                                       '-m', svntest.main.make_log_msg(),
+                                       sbox.repo_url + '/dir-%i' % i)
+  expected_full = [
+    "* Copied revision 0.\n",
+    "* Copied revision 1.\n",
+    "* Copied revision 2.\n",
+    "* Copied revision 3.\n",
+    ]
+  expected_incremental = [
+    "* Copied revision 1.\n",
+    "* Copied revision 2.\n",
+    "* Copied revision 3.\n",
+    ]
+
+  backup_dir, backup_url = sbox.add_repo_path('backup-1')
+  svntest.actions.run_and_verify_svnadmin(None, expected_full, [],
+                                          'hotcopy',
+                                          sbox.repo_dir, backup_dir)
+  svntest.actions.run_and_verify_svnadmin(None, expected_incremental, [],
+                                          'hotcopy', '--incremental',
+                                          sbox.repo_dir, inc_backup_dir)
+
+  # Pack everything (r3 is still unpacked) and hotcopy again.  In this case,
+  # the --incremental output should track the incoming (r0, r1, r2) pack and
+  # should not mention r3, because it is already a part of the destination
+  # and is *not* a part of the incoming pack.
+  svntest.actions.run_and_verify_svnadmin(None, None, [], 'pack',
+                                          sbox.repo_dir)
+  expected_full = [
+    "* Copied revisions from 0 to 2.\n",
+    "* Copied revision 3.\n",
+    ]
+  expected_incremental = [
+    "* Copied revisions from 0 to 2.\n",
+    ]
+
+  backup_dir, backup_url = sbox.add_repo_path('backup-2')
+  svntest.actions.run_and_verify_svnadmin(None, expected_full, [],
+                                          'hotcopy',
+                                          sbox.repo_dir, backup_dir)
+  svntest.actions.run_and_verify_svnadmin(None, expected_incremental, [],
+                                          'hotcopy', '--incremental',
+                                          sbox.repo_dir, inc_backup_dir)
+
+  # Fill the second shard, pack again, commit several unpacked revisions
+  # on top of it.  Rerun the hotcopy and check the progress output.
+  for i in range(4, 6):
+    svntest.actions.run_and_verify_svn(None, None, [], 'mkdir',
+                                       '-m', svntest.main.make_log_msg(),
+                                       sbox.repo_url + '/dir-%i' % i)
+
+  svntest.actions.run_and_verify_svnadmin(None, None, [], 'pack',
+                                          sbox.repo_dir)
+
+  for i in range(6, 8):
+    svntest.actions.run_and_verify_svn(None, None, [], 'mkdir',
+                                       '-m', svntest.main.make_log_msg(),
+                                       sbox.repo_url + '/dir-%i' % i)
+  expected_full = [
+    "* Copied revisions from 0 to 2.\n",
+    "* Copied revisions from 3 to 5.\n",
+    "* Copied revision 6.\n",
+    "* Copied revision 7.\n",
+    ]
+  expected_incremental = [
+    "* Copied revisions from 3 to 5.\n",
+    "* Copied revision 6.\n",
+    "* Copied revision 7.\n",
+    ]
+
+  backup_dir, backup_url = sbox.add_repo_path('backup-3')
+  svntest.actions.run_and_verify_svnadmin(None, expected_full, [],
+                                          'hotcopy',
+                                          sbox.repo_dir, backup_dir)
+  svntest.actions.run_and_verify_svnadmin(None, expected_incremental, [],
+                                          'hotcopy', '--incremental',
+                                          sbox.repo_dir, inc_backup_dir)
+
+
+@SkipUnless(svntest.main.is_fs_type_fsfs)
+def fsfs_hotcopy_progress_with_revprop_changes(sbox):
+  "incremental hotcopy progress with changed revprops"
+
+  # The progress output can be affected by the --fsfs-packing
+  # option, so skip the test if that is the case.
+  if svntest.main.options.fsfs_packing:
+    raise svntest.Skip
+
+  # Create an empty repository, commit several revisions and hotcopy it.
+  sbox.build(create_wc=False)
+  svntest.main.safe_rmtree(sbox.repo_dir, True)
+  svntest.main.create_repos(sbox.repo_dir)
+
+  for i in range(6):
+    svntest.actions.run_and_verify_svn(None, None, [], 'mkdir',
+                                       '-m', svntest.main.make_log_msg(),
+                                       sbox.repo_url + '/dir-%i' % i)
+  expected_output = [
+    "* Copied revision 0.\n",
+    "* Copied revision 1.\n",
+    "* Copied revision 2.\n",
+    "* Copied revision 3.\n",
+    "* Copied revision 4.\n",
+    "* Copied revision 5.\n",
+    "* Copied revision 6.\n",
+    ]
+
+  backup_dir, backup_url = sbox.add_repo_path('backup')
+  svntest.actions.run_and_verify_svnadmin(None, expected_output, [],
+                                          'hotcopy',
+                                          sbox.repo_dir, backup_dir)
+
+  # Amend a few log messages in the source, run the --incremental hotcopy.
+  # The progress output should only mention the corresponding revisions.
+  revprop_file = sbox.get_tempname()
+  svntest.main.file_write(revprop_file, "Modified log message.")
+
+  for i in [1, 3, 6]:
+    svntest.actions.run_and_verify_svnadmin(None, None, [],
+                                            'setrevprop',
+                                            sbox.repo_dir, '-r', i,
+                                            'svn:log', revprop_file)
+  expected_output = [
+    "* Copied revision 1.\n",
+    "* Copied revision 3.\n",
+    "* Copied revision 6.\n",
+    ]
+  svntest.actions.run_and_verify_svnadmin(None, expected_output, [],
+                                          'hotcopy', '--incremental',
+                                          sbox.repo_dir, backup_dir)
+
+
+@SkipUnless(svntest.main.is_fs_type_fsfs)
+def fsfs_hotcopy_progress_old(sbox):
+  "hotcopy --compatible-version=1.3 progress"
+
+  sbox.build(create_wc=False)
+  svntest.main.safe_rmtree(sbox.repo_dir, True)
+  svntest.main.create_repos(sbox.repo_dir, minor_version=3)
+
+  inc_backup_dir, inc_backup_url = sbox.add_repo_path('incremental-backup')
+
+  # Nothing really exciting for the empty repository.
+  expected_full = [
+    "* Copied revision 0.\n"
+    ]
+  expected_incremental = [
+    "* Copied revision 0.\n",
+    ]
+
+  backup_dir, backup_url = sbox.add_repo_path('backup-0')
+  svntest.actions.run_and_verify_svnadmin(None, expected_full, [],
+                                          'hotcopy',
+                                          sbox.repo_dir, backup_dir)
+  svntest.actions.run_and_verify_svnadmin(None, expected_incremental, [],
+                                          'hotcopy', '--incremental',
+                                          sbox.repo_dir, inc_backup_dir)
+
+  # Commit three revisions, hotcopy and check the progress output.
+  for i in range(3):
+    svntest.actions.run_and_verify_svn(None, None, [], 'mkdir',
+                                       '-m', svntest.main.make_log_msg(),
+                                       sbox.repo_url + '/dir-%i' % i)
+
+  expected_full = [
+    "* Copied revision 0.\n",
+    "* Copied revision 1.\n",
+    "* Copied revision 2.\n",
+    "* Copied revision 3.\n",
+    ]
+  expected_incremental = [
+    "* Copied revision 1.\n",
+    "* Copied revision 2.\n",
+    "* Copied revision 3.\n",
+    ]
+
+  backup_dir, backup_url = sbox.add_repo_path('backup-1')
+  svntest.actions.run_and_verify_svnadmin(None, expected_full, [],
+                                          'hotcopy',
+                                          sbox.repo_dir, backup_dir)
+  svntest.actions.run_and_verify_svnadmin(None, expected_incremental, [],
+                                          'hotcopy', '--incremental',
+                                          sbox.repo_dir, inc_backup_dir)
+
+
 ########################################################################
 # Run the tests
 
@@ -2593,6 +2827,9 @@ test_list = [ None,
               freeze_freeze,
               verify_metadata_only,
               verify_quickly,
+              fsfs_hotcopy_progress,
+              fsfs_hotcopy_progress_with_revprop_changes,
+              fsfs_hotcopy_progress_old,
              ]
 
 if __name__ == '__main__':

Modified: subversion/branches/remove-log-addressing/subversion/tests/cmdline/svnlook_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/tests/cmdline/svnlook_tests.py?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/tests/cmdline/svnlook_tests.py (original)
+++ subversion/branches/remove-log-addressing/subversion/tests/cmdline/svnlook_tests.py Thu Jul 31 10:44:15 2014
@@ -713,6 +713,8 @@ fp.close()"""
                     ]
   verify_logfile(logfilepath, svntest.verify.UnorderedOutput(expected_data))
 
+# From r1293375 until fixed in r1303856, 'svnlook changed' and 'svnlook diff'
+# produced no output on a property delete.
 def property_delete(sbox):
   "property delete"
 
@@ -724,8 +726,6 @@ def property_delete(sbox):
   sbox.simple_propdel('foo', 'A/mu')
   sbox.simple_commit()
 
-  # XFail since r1293375, changed and diff produce no output on a
-  # property delete
   svntest.actions.run_and_verify_svnlook(None, ["_U  A/mu\n"], [],
                                          'changed', repo_dir)
 

Modified: subversion/branches/remove-log-addressing/subversion/tests/cmdline/tree_conflict_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/tests/cmdline/tree_conflict_tests.py?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/tests/cmdline/tree_conflict_tests.py (original)
+++ subversion/branches/remove-log-addressing/subversion/tests/cmdline/tree_conflict_tests.py Thu Jul 31 10:44:15 2014
@@ -25,7 +25,7 @@
 ######################################################################
 
 # General modules
-import sys, re, os, traceback
+import sys, re, os, stat, traceback
 
 # Our testing module
 import svntest
@@ -1212,7 +1212,10 @@ def actual_only_node_behaviour(sbox):
                      "checkout", A_copy_url, foo_path)
   ### for now, ignore the fact that checkout succeeds and remove the nested
   ### working copy so we can test more commands
-  shutil.rmtree(foo_path)
+  def onerror(function, path, execinfo):
+    os.chmod(path, stat.S_IREAD | stat.S_IWRITE)
+    os.remove(path)
+  shutil.rmtree(foo_path, onerror=onerror)
 
   # cleanup
   expected_stdout = None

Modified: subversion/branches/remove-log-addressing/subversion/tests/libsvn_client/client-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/tests/libsvn_client/client-test.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/tests/libsvn_client/client-test.c (original)
+++ subversion/branches/remove-log-addressing/subversion/tests/libsvn_client/client-test.c Thu Jul 31 10:44:15 2014
@@ -31,7 +31,7 @@
 #include "../../libsvn_client/client.h"
 #include "svn_pools.h"
 #include "svn_client.h"
-#include "svn_client_mtcc.h"
+#include "private/svn_client_mtcc.h"
 #include "svn_repos.h"
 #include "svn_subst.h"
 #include "private/svn_wc_private.h"
@@ -776,7 +776,7 @@ test_suggest_mergesources(const svn_test
 {
   const char *repos_url;
   svn_client_ctx_t *ctx;
-  svn_client_mtcc_t *mtcc;
+  svn_client__mtcc_t *mtcc;
   apr_array_header_t *results;
   svn_opt_revision_t peg_rev;
   svn_opt_revision_t head_rev;
@@ -789,9 +789,9 @@ test_suggest_mergesources(const svn_test
 
   SVN_ERR(svn_client_create_context(&ctx, pool));
 
-  SVN_ERR(svn_client_mtcc_create(&mtcc, repos_url, -1, ctx, pool, pool));
-  SVN_ERR(svn_client_mtcc_add_copy("A", 1, "AA", mtcc, pool));
-  SVN_ERR(svn_client_mtcc_commit(NULL, NULL, NULL, mtcc, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc, repos_url, -1, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_add_copy("A", 1, "AA", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_commit(NULL, NULL, NULL, mtcc, pool));
 
   SVN_ERR(svn_client_suggest_merge_sources(
                     &results,
@@ -912,7 +912,7 @@ test_remote_only_status(const svn_test_o
   const char *local_path;
   apr_file_t *local_file;
   svn_client_ctx_t *ctx;
-  svn_client_mtcc_t *mtcc;
+  svn_client__mtcc_t *mtcc;
   svn_opt_revision_t rev;
   svn_revnum_t result_rev;
   svn_string_t *contents = svn_string_create("modified\n", pool);
@@ -931,23 +931,23 @@ test_remote_only_status(const svn_test_o
   SVN_ERR(svn_client_create_context(&ctx, pool));
 
   /* Make some modifications in the repository, creating revision 2. */
-  SVN_ERR(svn_client_mtcc_create(&mtcc, repos_url, -1, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc, repos_url, -1, ctx, pool, pool));
   SVN_ERR(svn_stream_seek(contentstream, start));
-  SVN_ERR(svn_client_mtcc_add_add_file("A/epsilon", contentstream, NULL,
-                                       mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_add_file("A/epsilon", contentstream, NULL,
+                                        mtcc, pool));
   SVN_ERR(svn_stream_seek(contentstream, start));
-  SVN_ERR(svn_client_mtcc_add_update_file("A/mu",
-                                          contentstream, NULL, NULL, NULL,
-                                          mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_update_file("A/mu",
+                                           contentstream, NULL, NULL, NULL,
+                                           mtcc, pool));
   SVN_ERR(svn_stream_seek(contentstream, start));
-  SVN_ERR(svn_client_mtcc_add_add_file("A/D/epsilon", contentstream, NULL,
-                                       mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_add_file("A/D/epsilon", contentstream, NULL,
+                                        mtcc, pool));
   SVN_ERR(svn_stream_seek(contentstream, start));
-  SVN_ERR(svn_client_mtcc_add_update_file("A/B/lambda",
-                                          contentstream, NULL, NULL, NULL,
-                                          mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_delete("A/C", mtcc, pool));
-  SVN_ERR(svn_client_mtcc_commit(NULL, NULL, NULL, mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_update_file("A/B/lambda",
+                                           contentstream, NULL, NULL, NULL,
+                                           mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_delete("A/C", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_commit(NULL, NULL, NULL, mtcc, pool));
 
   /* Check out a sparse root @r1 of the repository */
   wc_path = svn_test_data_path("test-remote-only-status-wc", pool);

Modified: subversion/branches/remove-log-addressing/subversion/tests/libsvn_client/mtcc-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/tests/libsvn_client/mtcc-test.c?rev=1614851&r1=1614850&r2=1614851&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/subversion/tests/libsvn_client/mtcc-test.c (original)
+++ subversion/branches/remove-log-addressing/subversion/tests/libsvn_client/mtcc-test.c Thu Jul 31 10:44:15 2014
@@ -24,7 +24,7 @@
 #include "svn_pools.h"
 #include "svn_props.h"
 #include "svn_client.h"
-#include "svn_client_mtcc.h"
+#include "private/svn_client_mtcc.h"
 
 #include "../svn_test.h"
 #include "../svn_test_fs.h"
@@ -57,7 +57,7 @@ cstr_stream(const char *data, apr_pool_t
 }
 
 static svn_error_t *
-verify_mtcc_commit(svn_client_mtcc_t *mtcc,
+verify_mtcc_commit(svn_client__mtcc_t *mtcc,
                    svn_revnum_t expected_rev,
                    apr_pool_t *pool)
 {
@@ -65,7 +65,7 @@ verify_mtcc_commit(svn_client_mtcc_t *mt
   vcb.commit_info = NULL;
   vcb.result_pool = pool;
 
-  SVN_ERR(svn_client_mtcc_commit(NULL, verify_commit_callback, &vcb, mtcc, pool));
+  SVN_ERR(svn_client__mtcc_commit(NULL, verify_commit_callback, &vcb, mtcc, pool));
 
   SVN_TEST_ASSERT(vcb.commit_info != NULL);
   SVN_TEST_ASSERT(vcb.commit_info->revision == expected_rev);
@@ -79,7 +79,7 @@ static svn_error_t *
 make_greek_tree(const char *repos_url,
                 apr_pool_t *scratch_pool)
 {
-  svn_client_mtcc_t *mtcc;
+  svn_client__mtcc_t *mtcc;
   svn_client_ctx_t *ctx;
   apr_pool_t *subpool;
   int i;
@@ -87,13 +87,13 @@ make_greek_tree(const char *repos_url,
   subpool = svn_pool_create(scratch_pool);
 
   SVN_ERR(svn_client_create_context2(&ctx, NULL, subpool));
-  SVN_ERR(svn_client_mtcc_create(&mtcc, repos_url, 0, ctx, subpool, subpool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc, repos_url, 0, ctx, subpool, subpool));
 
   for (i = 0; svn_test__greek_tree_nodes[i].path; i++)
     {
       if (svn_test__greek_tree_nodes[i].contents)
         {
-          SVN_ERR(svn_client_mtcc_add_add_file(
+          SVN_ERR(svn_client__mtcc_add_add_file(
                                 svn_test__greek_tree_nodes[i].path,
                                 cstr_stream(
                                         svn_test__greek_tree_nodes[i].contents,
@@ -103,7 +103,7 @@ make_greek_tree(const char *repos_url,
         }
       else
         {
-          SVN_ERR(svn_client_mtcc_add_mkdir(
+          SVN_ERR(svn_client__mtcc_add_mkdir(
                                 svn_test__greek_tree_nodes[i].path,
                                 mtcc, subpool));
         }
@@ -119,7 +119,7 @@ static svn_error_t *
 test_mkdir(const svn_test_opts_t *opts,
            apr_pool_t *pool)
 {
-  svn_client_mtcc_t *mtcc;
+  svn_client__mtcc_t *mtcc;
   svn_client_ctx_t *ctx;
   const char *repos_abspath;
   const char *repos_url;
@@ -131,14 +131,14 @@ test_mkdir(const svn_test_opts_t *opts,
   SVN_ERR(svn_test__create_repos(&repos, repos_abspath, opts, pool));
 
   SVN_ERR(svn_client_create_context2(&ctx, NULL, pool));
-  SVN_ERR(svn_client_mtcc_create(&mtcc, repos_url, 0, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc, repos_url, 0, ctx, pool, pool));
 
-  SVN_ERR(svn_client_mtcc_add_mkdir("branches", mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_mkdir("trunk", mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_mkdir("branches/1.x", mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_mkdir("tags", mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_mkdir("tags/1.0", mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_mkdir("tags/1.1", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_mkdir("branches", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_mkdir("trunk", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_mkdir("branches/1.x", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_mkdir("tags", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_mkdir("tags/1.0", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_mkdir("tags/1.1", mtcc, pool));
 
   SVN_ERR(verify_mtcc_commit(mtcc, 1, pool));
 
@@ -149,7 +149,7 @@ static svn_error_t *
 test_mkgreek(const svn_test_opts_t *opts,
              apr_pool_t *pool)
 {
-  svn_client_mtcc_t *mtcc;
+  svn_client__mtcc_t *mtcc;
   svn_client_ctx_t *ctx;
   const char *repos_abspath;
   const char *repos_url;
@@ -163,9 +163,9 @@ test_mkgreek(const svn_test_opts_t *opts
   SVN_ERR(make_greek_tree(repos_url, pool));
 
   SVN_ERR(svn_client_create_context2(&ctx, NULL, pool));
-  SVN_ERR(svn_client_mtcc_create(&mtcc, repos_url, 1, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc, repos_url, 1, ctx, pool, pool));
 
-  SVN_ERR(svn_client_mtcc_add_copy("A", 1, "greek_A", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_copy("A", 1, "greek_A", mtcc, pool));
 
   SVN_ERR(verify_mtcc_commit(mtcc, 2, pool));
 
@@ -176,7 +176,7 @@ static svn_error_t *
 test_swap(const svn_test_opts_t *opts,
           apr_pool_t *pool)
 {
-  svn_client_mtcc_t *mtcc;
+  svn_client__mtcc_t *mtcc;
   svn_client_ctx_t *ctx;
   const char *repos_abspath;
   const char *repos_url;
@@ -190,11 +190,11 @@ test_swap(const svn_test_opts_t *opts,
   SVN_ERR(make_greek_tree(repos_url, pool));
 
   SVN_ERR(svn_client_create_context2(&ctx, NULL, pool));
-  SVN_ERR(svn_client_mtcc_create(&mtcc, repos_url, 1, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc, repos_url, 1, ctx, pool, pool));
 
-  SVN_ERR(svn_client_mtcc_add_move("A/B", "B", mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_move("A/D", "A/B", mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_copy("A/B", 1, "A/D", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_move("A/B", "B", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_move("A/D", "A/B", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_copy("A/B", 1, "A/D", mtcc, pool));
 
   SVN_ERR(verify_mtcc_commit(mtcc, 2, pool));
 
@@ -205,7 +205,7 @@ static svn_error_t *
 test_propset(const svn_test_opts_t *opts,
              apr_pool_t *pool)
 {
-  svn_client_mtcc_t *mtcc;
+  svn_client__mtcc_t *mtcc;
   svn_client_ctx_t *ctx;
   const char *repos_abspath;
   const char *repos_url;
@@ -219,55 +219,55 @@ test_propset(const svn_test_opts_t *opts
   SVN_ERR(make_greek_tree(repos_url, pool));
 
   SVN_ERR(svn_client_create_context2(&ctx, NULL, pool));
-  SVN_ERR(svn_client_mtcc_create(&mtcc, repos_url, 1, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc, repos_url, 1, ctx, pool, pool));
 
-  SVN_ERR(svn_client_mtcc_add_propset("iota", "key",
-                                      svn_string_create("val", pool), FALSE,
-                                      mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_propset("A", "A-key",
-                                      svn_string_create("val-A", pool), FALSE,
-                                      mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_propset("A/B", "B-key",
-                                      svn_string_create("val-B", pool), FALSE,
-                                      mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_propset("iota", "key",
+                                       svn_string_create("val", pool), FALSE,
+                                       mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_propset("A", "A-key",
+                                       svn_string_create("val-A", pool), FALSE,
+                                       mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_propset("A/B", "B-key",
+                                       svn_string_create("val-B", pool), FALSE,
+                                       mtcc, pool));
 
   /* The repository ignores propdeletes of properties that aren't there,
      so this just works */
-  SVN_ERR(svn_client_mtcc_add_propset("A/D", "D-key", NULL, FALSE,
-                                      mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_propset("A/D", "D-key", NULL, FALSE,
+                                       mtcc, pool));
 
   SVN_ERR(verify_mtcc_commit(mtcc, 2, pool));
 
-  SVN_ERR(svn_client_mtcc_create(&mtcc, repos_url, 2, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc, repos_url, 2, ctx, pool, pool));
   SVN_TEST_ASSERT_ERROR(
-      svn_client_mtcc_add_propset("A", SVN_PROP_MIME_TYPE,
-                                  svn_string_create("text/plain", pool),
-                                  FALSE, mtcc, pool),
+      svn_client__mtcc_add_propset("A", SVN_PROP_MIME_TYPE,
+                                   svn_string_create("text/plain", pool),
+                                   FALSE, mtcc, pool),
       SVN_ERR_ILLEGAL_TARGET);
 
   SVN_TEST_ASSERT_ERROR(
-      svn_client_mtcc_add_propset("iota", SVN_PROP_IGNORE,
-                                  svn_string_create("iota", pool),
-                                  FALSE, mtcc, pool),
+      svn_client__mtcc_add_propset("iota", SVN_PROP_IGNORE,
+                                   svn_string_create("iota", pool),
+                                   FALSE, mtcc, pool),
       SVN_ERR_ILLEGAL_TARGET);
 
-  SVN_ERR(svn_client_mtcc_add_propset("iota", SVN_PROP_EOL_STYLE,
-                                      svn_string_create("LF", pool),
-                                      FALSE, mtcc, pool));
-
-  SVN_ERR(svn_client_mtcc_add_add_file("ok", cstr_stream("line\nline\n", pool),
-                                       NULL, mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_add_file("bad", cstr_stream("line\nno\r\n", pool),
-                                       NULL, mtcc, pool));
-
-  SVN_ERR(svn_client_mtcc_add_propset("ok", SVN_PROP_EOL_STYLE,
-                                      svn_string_create("LF", pool),
-                                      FALSE, mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_propset("iota", SVN_PROP_EOL_STYLE,
+                                       svn_string_create("LF", pool),
+                                       FALSE, mtcc, pool));
+
+  SVN_ERR(svn_client__mtcc_add_add_file("ok", cstr_stream("line\nline\n", pool),
+                                        NULL, mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_add_file("bad", cstr_stream("line\nno\r\n", pool),
+                                        NULL, mtcc, pool));
+
+  SVN_ERR(svn_client__mtcc_add_propset("ok", SVN_PROP_EOL_STYLE,
+                                       svn_string_create("LF", pool),
+                                       FALSE, mtcc, pool));
 
   SVN_TEST_ASSERT_ERROR(
-          svn_client_mtcc_add_propset("bad", SVN_PROP_EOL_STYLE,
-                                      svn_string_create("LF", pool),
-                                      FALSE, mtcc, pool),
+          svn_client__mtcc_add_propset("bad", SVN_PROP_EOL_STYLE,
+                                       svn_string_create("LF", pool),
+                                       FALSE, mtcc, pool),
           SVN_ERR_ILLEGAL_TARGET);
 
   SVN_ERR(verify_mtcc_commit(mtcc, 3, pool));
@@ -279,7 +279,7 @@ static svn_error_t *
 test_update_files(const svn_test_opts_t *opts,
              apr_pool_t *pool)
 {
-  svn_client_mtcc_t *mtcc;
+  svn_client__mtcc_t *mtcc;
   svn_client_ctx_t *ctx;
   const char *repos_abspath;
   const char *repos_url;
@@ -293,33 +293,33 @@ test_update_files(const svn_test_opts_t 
   SVN_ERR(make_greek_tree(repos_url, pool));
 
   SVN_ERR(svn_client_create_context2(&ctx, NULL, pool));
-  SVN_ERR(svn_client_mtcc_create(&mtcc, repos_url, 1, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc, repos_url, 1, ctx, pool, pool));
 
   /* Update iota with knowledge of the old data */
-  SVN_ERR(svn_client_mtcc_add_update_file(svn_test__greek_tree_nodes[0].path,
-                                          cstr_stream("new-iota", pool),
-                                          NULL,
-                                          cstr_stream(
-                                            svn_test__greek_tree_nodes[0]
-                                                        .contents,
-                                            pool),
-                                          NULL,
-                                          mtcc, pool));
-
-  SVN_ERR(svn_client_mtcc_add_update_file("A/mu",
-                                          cstr_stream("new-MU", pool),
-                                          NULL,
-                                          NULL, NULL,
-                                          mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_update_file(svn_test__greek_tree_nodes[0].path,
+                                           cstr_stream("new-iota", pool),
+                                           NULL,
+                                           cstr_stream(
+                                             svn_test__greek_tree_nodes[0]
+                                                         .contents,
+                                             pool),
+                                           NULL,
+                                           mtcc, pool));
+
+  SVN_ERR(svn_client__mtcc_add_update_file("A/mu",
+                                           cstr_stream("new-MU", pool),
+                                           NULL,
+                                           NULL, NULL,
+                                           mtcc, pool));
 
   /* Set a property on the same node */
-  SVN_ERR(svn_client_mtcc_add_propset("A/mu", "mu-key",
-                                      svn_string_create("mu-A", pool), FALSE,
-                                      mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_propset("A/mu", "mu-key",
+                                       svn_string_create("mu-A", pool), FALSE,
+                                       mtcc, pool));
   /* And some other node */
-  SVN_ERR(svn_client_mtcc_add_propset("A/B", "B-key",
-                                      svn_string_create("val-B", pool), FALSE,
-                                      mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_propset("A/B", "B-key",
+                                       svn_string_create("val-B", pool), FALSE,
+                                       mtcc, pool));
 
   SVN_ERR(verify_mtcc_commit(mtcc, 2, pool));
   return SVN_NO_ERROR;
@@ -329,7 +329,7 @@ static svn_error_t *
 test_overwrite(const svn_test_opts_t *opts,
                apr_pool_t *pool)
 {
-  svn_client_mtcc_t *mtcc;
+  svn_client__mtcc_t *mtcc;
   svn_client_ctx_t *ctx;
   const char *repos_abspath;
   const char *repos_url;
@@ -343,17 +343,17 @@ test_overwrite(const svn_test_opts_t *op
   SVN_ERR(make_greek_tree(repos_url, pool));
 
   SVN_ERR(svn_client_create_context2(&ctx, NULL, pool));
-  SVN_ERR(svn_client_mtcc_create(&mtcc, repos_url, 1, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc, repos_url, 1, ctx, pool, pool));
 
-  SVN_ERR(svn_client_mtcc_add_copy("A", 1, "AA", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_copy("A", 1, "AA", mtcc, pool));
 
-  SVN_TEST_ASSERT_ERROR(svn_client_mtcc_add_mkdir("AA/B", mtcc, pool),
+  SVN_TEST_ASSERT_ERROR(svn_client__mtcc_add_mkdir("AA/B", mtcc, pool),
                         SVN_ERR_FS_ALREADY_EXISTS);
 
-  SVN_TEST_ASSERT_ERROR(svn_client_mtcc_add_mkdir("AA/D/H/chi", mtcc, pool),
+  SVN_TEST_ASSERT_ERROR(svn_client__mtcc_add_mkdir("AA/D/H/chi", mtcc, pool),
                         SVN_ERR_FS_ALREADY_EXISTS);
 
-  SVN_ERR(svn_client_mtcc_add_mkdir("AA/BB", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_mkdir("AA/BB", mtcc, pool));
 
   SVN_ERR(verify_mtcc_commit(mtcc, 2, pool));
   return SVN_NO_ERROR;
@@ -363,7 +363,7 @@ static svn_error_t *
 test_anchoring(const svn_test_opts_t *opts,
                apr_pool_t *pool)
 {
-  svn_client_mtcc_t *mtcc;
+  svn_client__mtcc_t *mtcc;
   svn_client_ctx_t *ctx;
   const char *repos_abspath;
   const char *repos_url;
@@ -379,70 +379,70 @@ test_anchoring(const svn_test_opts_t *op
   SVN_ERR(svn_client_create_context2(&ctx, NULL, pool));
 
   /* Update a file as root operation */
-  SVN_ERR(svn_client_mtcc_create(&mtcc,
-                                 svn_path_url_add_component2(repos_url, "iota",
-                                                             pool),
-                                 1, ctx, pool, pool));
-  SVN_ERR(svn_client_mtcc_add_update_file("",
-                                          cstr_stream("new-iota", pool),
-                                          NULL, NULL, NULL,
-                                          mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_propset("", "key",
-                                      svn_string_create("value", pool),
-                                      FALSE, mtcc, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc,
+                                  svn_path_url_add_component2(repos_url, "iota",
+                                                              pool),
+                                  1, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_add_update_file("",
+                                           cstr_stream("new-iota", pool),
+                                           NULL, NULL, NULL,
+                                           mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_propset("", "key",
+                                       svn_string_create("value", pool),
+                                       FALSE, mtcc, pool));
 
   SVN_ERR(verify_mtcc_commit(mtcc, 2, pool));
 
   /* Add a directory as root operation */
-  SVN_ERR(svn_client_mtcc_create(&mtcc,
-                                 svn_path_url_add_component2(repos_url, "BB",
-                                                             pool),
-                                 2, ctx, pool, pool));
-  SVN_ERR(svn_client_mtcc_add_mkdir("", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc,
+                                  svn_path_url_add_component2(repos_url, "BB",
+                                                              pool),
+                                  2, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_add_mkdir("", mtcc, pool));
   SVN_ERR(verify_mtcc_commit(mtcc, 3, pool));
 
   /* Add a file as root operation */
-  SVN_ERR(svn_client_mtcc_create(&mtcc,
-                                 svn_path_url_add_component2(repos_url, "new",
-                                                             pool),
-                                 3, ctx, pool, pool));
-  SVN_ERR(svn_client_mtcc_add_add_file("", cstr_stream("new", pool), NULL,
-                                       mtcc, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc,
+                                  svn_path_url_add_component2(repos_url, "new",
+                                                              pool),
+                                  3, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_add_add_file("", cstr_stream("new", pool), NULL,
+                                        mtcc, pool));
   SVN_ERR(verify_mtcc_commit(mtcc, 4, pool));
 
   /* Delete as root operation */
-  SVN_ERR(svn_client_mtcc_create(&mtcc,
-                                 svn_path_url_add_component2(repos_url, "new",
-                                                             pool),
-                                 4, ctx, pool, pool));
-  SVN_ERR(svn_client_mtcc_add_delete("", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc,
+                                  svn_path_url_add_component2(repos_url, "new",
+                                                              pool),
+                                  4, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_add_delete("", mtcc, pool));
   SVN_ERR(verify_mtcc_commit(mtcc, 5, pool));
 
   /* Propset file as root operation */
-  SVN_ERR(svn_client_mtcc_create(&mtcc,
-                                 svn_path_url_add_component2(repos_url, "A/mu",
-                                                             pool),
-                                 5, ctx, pool, pool));
-  SVN_ERR(svn_client_mtcc_add_propset("", "key",
-                                      svn_string_create("val", pool),
-                                      FALSE, mtcc, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc,
+                                  svn_path_url_add_component2(repos_url, "A/mu",
+                                                              pool),
+                                  5, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_add_propset("", "key",
+                                       svn_string_create("val", pool),
+                                       FALSE, mtcc, pool));
   SVN_ERR(verify_mtcc_commit(mtcc, 6, pool));
 
   /* Propset dir as root operation */
-  SVN_ERR(svn_client_mtcc_create(&mtcc,
-                                 svn_path_url_add_component2(repos_url, "A",
-                                                             pool),
-                                 6, ctx, pool, pool));
-  SVN_ERR(svn_client_mtcc_add_propset("", "key",
-                                      svn_string_create("val", pool),
-                                      FALSE, mtcc, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc,
+                                  svn_path_url_add_component2(repos_url, "A",
+                                                              pool),
+                                  6, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_add_propset("", "key",
+                                       svn_string_create("val", pool),
+                                       FALSE, mtcc, pool));
   SVN_ERR(verify_mtcc_commit(mtcc, 7, pool));
 
   /* Propset reposroot as root operation */
-  SVN_ERR(svn_client_mtcc_create(&mtcc, repos_url, 7, ctx, pool, pool));
-  SVN_ERR(svn_client_mtcc_add_propset("", "key",
-                                      svn_string_create("val", pool),
-                                      FALSE, mtcc, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc, repos_url, 7, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_add_propset("", "key",
+                                       svn_string_create("val", pool),
+                                       FALSE, mtcc, pool));
   SVN_ERR(verify_mtcc_commit(mtcc, 8, pool));
 
   return SVN_NO_ERROR;
@@ -452,7 +452,7 @@ static svn_error_t *
 test_replace_tree(const svn_test_opts_t *opts,
                   apr_pool_t *pool)
 {
-  svn_client_mtcc_t *mtcc;
+  svn_client__mtcc_t *mtcc;
   svn_client_ctx_t *ctx;
   const char *repos_abspath;
   const char *repos_url;
@@ -468,16 +468,16 @@ test_replace_tree(const svn_test_opts_t 
   SVN_ERR(svn_client_create_context2(&ctx, NULL, pool));
 
   /* Update a file as root operation */
-  SVN_ERR(svn_client_mtcc_create(&mtcc, repos_url, 1, ctx, pool, pool));
+  SVN_ERR(svn_client__mtcc_create(&mtcc, repos_url, 1, ctx, pool, pool));
 
-  SVN_ERR(svn_client_mtcc_add_delete("A", mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_delete("iota", mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_mkdir("A", mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_mkdir("A/B", mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_mkdir("A/B/C", mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_mkdir("M", mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_mkdir("M/N", mtcc, pool));
-  SVN_ERR(svn_client_mtcc_add_mkdir("M/N/O", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_delete("A", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_delete("iota", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_mkdir("A", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_mkdir("A/B", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_mkdir("A/B/C", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_mkdir("M", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_mkdir("M/N", mtcc, pool));
+  SVN_ERR(svn_client__mtcc_add_mkdir("M/N/O", mtcc, pool));
 
   SVN_ERR(verify_mtcc_commit(mtcc, 2, pool));
 



Mime
View raw message