You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2017/10/24 12:40:48 UTC

svn commit: r1813173 [1/6] - in /subversion/branches/addremove: ./ build/generator/ subversion/bindings/javahl/native/ subversion/bindings/swig/include/ subversion/include/ subversion/include/private/ subversion/libsvn_client/ subversion/libsvn_ra_serf...

Author: stsp
Date: Tue Oct 24 12:40:47 2017
New Revision: 1813173

URL: http://svn.apache.org/viewvc?rev=1813173&view=rev
Log:
On the addremove branch, merge outstanding changes from trunk.

Added:
    subversion/branches/addremove/subversion/libsvn_subr/utf8proc/LICENSE.md
      - copied unchanged from r1813172, subversion/trunk/subversion/libsvn_subr/utf8proc/LICENSE.md
    subversion/branches/addremove/subversion/libsvn_subr/utf8proc/NEWS.md
      - copied unchanged from r1813172, subversion/trunk/subversion/libsvn_subr/utf8proc/NEWS.md
    subversion/branches/addremove/subversion/libsvn_subr/utf8proc/README.md
      - copied unchanged from r1813172, subversion/trunk/subversion/libsvn_subr/utf8proc/README.md
    subversion/branches/addremove/subversion/libsvn_subr/utf8proc/lump.md
      - copied unchanged from r1813172, subversion/trunk/subversion/libsvn_subr/utf8proc/lump.md
Removed:
    subversion/branches/addremove/subversion/libsvn_subr/utf8proc/LICENSE
    subversion/branches/addremove/subversion/libsvn_subr/utf8proc/README
    subversion/branches/addremove/subversion/tests/cmdline/upgrade_tests_data/format_12a.tar.bz2
    subversion/branches/addremove/subversion/tests/cmdline/upgrade_tests_data/format_12b.tar.bz2
    subversion/branches/addremove/subversion/tests/cmdline/upgrade_tests_data/format_13.tar.bz2
    subversion/branches/addremove/subversion/tests/cmdline/upgrade_tests_data/format_14.tar.bz2
    subversion/branches/addremove/subversion/tests/cmdline/upgrade_tests_data/format_15.tar.bz2
    subversion/branches/addremove/subversion/tests/cmdline/upgrade_tests_data/format_16.tar.bz2
    subversion/branches/addremove/subversion/tests/cmdline/upgrade_tests_data/format_28.tar.bz2
    subversion/branches/addremove/subversion/tests/cmdline/upgrade_tests_data/upgrade_tc.tar.bz2
Modified:
    subversion/branches/addremove/   (props changed)
    subversion/branches/addremove/CHANGES
    subversion/branches/addremove/COMMITTERS
    subversion/branches/addremove/build/generator/gen_win_dependencies.py
    subversion/branches/addremove/configure.ac
    subversion/branches/addremove/subversion/bindings/javahl/native/SVNRepos.cpp
    subversion/branches/addremove/subversion/bindings/swig/include/svn_types.swg
    subversion/branches/addremove/subversion/include/private/svn_repos_private.h
    subversion/branches/addremove/subversion/include/private/svn_subr_private.h
    subversion/branches/addremove/subversion/include/private/svn_utf_private.h
    subversion/branches/addremove/subversion/include/private/svn_wc_private.h
    subversion/branches/addremove/subversion/include/svn_delta.h
    subversion/branches/addremove/subversion/include/svn_error_codes.h
    subversion/branches/addremove/subversion/include/svn_repos.h
    subversion/branches/addremove/subversion/include/svn_string.h
    subversion/branches/addremove/subversion/libsvn_client/conflicts.c
    subversion/branches/addremove/subversion/libsvn_client/diff.c
    subversion/branches/addremove/subversion/libsvn_client/list.c
    subversion/branches/addremove/subversion/libsvn_ra_serf/merge.c
    subversion/branches/addremove/subversion/libsvn_repos/deprecated.c
    subversion/branches/addremove/subversion/libsvn_repos/dump.c
    subversion/branches/addremove/subversion/libsvn_repos/fs-wrap.c
    subversion/branches/addremove/subversion/libsvn_repos/hooks.c
    subversion/branches/addremove/subversion/libsvn_repos/list.c
    subversion/branches/addremove/subversion/libsvn_repos/load-fs-vtable.c
    subversion/branches/addremove/subversion/libsvn_subr/config_win.c
    subversion/branches/addremove/subversion/libsvn_subr/deprecated.c
    subversion/branches/addremove/subversion/libsvn_subr/io.c
    subversion/branches/addremove/subversion/libsvn_subr/lz4/lz4.c
    subversion/branches/addremove/subversion/libsvn_subr/mergeinfo.c
    subversion/branches/addremove/subversion/libsvn_subr/spillbuf.c
    subversion/branches/addremove/subversion/libsvn_subr/sqlite3wrapper.c
    subversion/branches/addremove/subversion/libsvn_subr/string.c
    subversion/branches/addremove/subversion/libsvn_subr/utf8proc/   (props changed)
    subversion/branches/addremove/subversion/libsvn_subr/utf8proc.c
    subversion/branches/addremove/subversion/libsvn_subr/utf8proc/utf8proc.c
    subversion/branches/addremove/subversion/libsvn_subr/utf8proc/utf8proc_data.c
    subversion/branches/addremove/subversion/libsvn_subr/utf8proc/utf8proc_internal.h
    subversion/branches/addremove/subversion/libsvn_subr/version.c
    subversion/branches/addremove/subversion/libsvn_subr/win32_crashrpt.c
    subversion/branches/addremove/subversion/libsvn_subr/win32_crypto.c
    subversion/branches/addremove/subversion/libsvn_subr/win32_xlate.c
    subversion/branches/addremove/subversion/libsvn_subr/x509parse.c
    subversion/branches/addremove/subversion/libsvn_wc/conflicts.c
    subversion/branches/addremove/subversion/libsvn_wc/upgrade.c
    subversion/branches/addremove/subversion/libsvn_wc/wc-metadata.sql
    subversion/branches/addremove/subversion/libsvn_wc/wc-queries.sql
    subversion/branches/addremove/subversion/libsvn_wc/wc_db.c
    subversion/branches/addremove/subversion/libsvn_wc/wc_db.h
    subversion/branches/addremove/subversion/mod_dav_svn/merge.c
    subversion/branches/addremove/subversion/mod_dav_svn/mod_dav_svn.c
    subversion/branches/addremove/subversion/svn/svn.c
    subversion/branches/addremove/subversion/svnadmin/svnadmin.c
    subversion/branches/addremove/subversion/svndumpfilter/svndumpfilter.c
    subversion/branches/addremove/subversion/svnrdump/load_editor.c
    subversion/branches/addremove/subversion/svnrdump/svnrdump.h
    subversion/branches/addremove/subversion/svnrdump/util.c
    subversion/branches/addremove/subversion/tests/cmdline/basic_tests.py
    subversion/branches/addremove/subversion/tests/cmdline/davautocheck.sh
    subversion/branches/addremove/subversion/tests/cmdline/diff_tests.py
    subversion/branches/addremove/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
    subversion/branches/addremove/subversion/tests/cmdline/svnadmin_tests.py
    subversion/branches/addremove/subversion/tests/cmdline/svntest/actions.py
    subversion/branches/addremove/subversion/tests/cmdline/svntest/verify.py
    subversion/branches/addremove/subversion/tests/cmdline/upgrade_tests.py
    subversion/branches/addremove/subversion/tests/libsvn_client/conflicts-test.c
    subversion/branches/addremove/subversion/tests/libsvn_repos/dump-load-test.c
    subversion/branches/addremove/subversion/tests/libsvn_subr/string-test.c
    subversion/branches/addremove/subversion/tests/libsvn_wc/utils.c
    subversion/branches/addremove/subversion/tests/libsvn_wc/wc-queries-test.c
    subversion/branches/addremove/tools/buildbot/slaves/svn-x64-macosx/mkramdisk.sh
    subversion/branches/addremove/tools/buildbot/slaves/svn-x64-macosx/setenv.sh
    subversion/branches/addremove/tools/buildbot/slaves/svn-x64-macosx/svncheck.sh
    subversion/branches/addremove/tools/client-side/bash_completion
    subversion/branches/addremove/tools/dev/svnmover/svnmover.c
    subversion/branches/addremove/tools/dist/templates/rc-release-ann.ezt

Propchange: subversion/branches/addremove/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 24 12:40:47 2017
@@ -97,4 +97,4 @@
 /subversion/branches/verify-at-commit:1462039-1462408
 /subversion/branches/verify-keep-going:1439280-1546110
 /subversion/branches/wc-collate-path:1402685-1480384
-/subversion/trunk:1802696-1805897
+/subversion/trunk:1802696-1813172

Modified: subversion/branches/addremove/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/addremove/CHANGES?rev=1813173&r1=1813172&r2=1813173&view=diff
==============================================================================
--- subversion/branches/addremove/CHANGES (original)
+++ subversion/branches/addremove/CHANGES Tue Oct 24 12:40:47 2017
@@ -13,6 +13,7 @@ the 1.9 release:  https://subversion.apa
     * svnbench: Show wall-clock time when done (r1703383)
     * svnbench: Show number of bytes transferred across the network (r1710586)
     * svnbench: Actually evaluate the '--with-no-revprops' option (r1709593)
+    * New 'svnadmin dump' options to include/exclude paths (r1811992)
     * New 'svnadmin load-revprops' subcommand (r1694191)
     * New 'svnadmin dump-revprops' subcommand (r1694225)
     * New '--no-flush-to-disk' option for 'svnadmin load' (r1736357, -7357)
@@ -20,6 +21,7 @@ the 1.9 release:  https://subversion.apa
     * New '--max-request-size' option for svnserve (r1714330)
     * New '--max-response-size' option for svnserve (r1714333)
     * New '-rN' option for 'svnadmin lstxns' (r1703699)
+    * New '--search' option for fast 'svn ls' searches (r1767186 et al)
     * Add '--search' option support to 'svnbench null-list' (r1767202)
     * New '-M' option for 'svnlook tree' (r1708222)
     * New '--skip-unchanged' option for 'svnsync copy-revprops' (r1692655)

Modified: subversion/branches/addremove/COMMITTERS
URL: http://svn.apache.org/viewvc/subversion/branches/addremove/COMMITTERS?rev=1813173&r1=1813172&r2=1813173&view=diff
==============================================================================
--- subversion/branches/addremove/COMMITTERS [UTF-8] (original)
+++ subversion/branches/addremove/COMMITTERS [UTF-8] Tue Oct 24 12:40:47 2017
@@ -103,6 +103,7 @@ Commit access for specific areas:
        rschupp   Roderich Schupp <ro...@gmail.com> (Swig bindings)
         stilor   Alexey Neyman <st...@att.net>              (Python bindings,
                                                              svn-vendor.py)
+  troycurtisjr   Troy Curtis, Jr <tr...@gmail.com>    (Swig bindings)
 
   Packages:
 

Modified: subversion/branches/addremove/build/generator/gen_win_dependencies.py
URL: http://svn.apache.org/viewvc/subversion/branches/addremove/build/generator/gen_win_dependencies.py?rev=1813173&r1=1813172&r2=1813173&view=diff
==============================================================================
--- subversion/branches/addremove/build/generator/gen_win_dependencies.py (original)
+++ subversion/branches/addremove/build/generator/gen_win_dependencies.py Tue Oct 24 12:40:47 2017
@@ -263,7 +263,7 @@ class GenDependenciesBase(gen_base.Gener
         elif val == '2017' or val == '15':
           self.vs_version = '2017'
           self.sln_version = '12.00'
-          self.vcproj_version = '15.0'
+          self.vcproj_version = '14.1'
           self.vcproj_extension = '.vcxproj'
         elif re.match('^20\d+$', val):
           print('WARNING: Unknown VS.NET version "%s",'

Modified: subversion/branches/addremove/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/addremove/configure.ac?rev=1813173&r1=1813172&r2=1813173&view=diff
==============================================================================
--- subversion/branches/addremove/configure.ac (original)
+++ subversion/branches/addremove/configure.ac Tue Oct 24 12:40:47 2017
@@ -1312,7 +1312,7 @@ AC_PATH_PROG(PERL, perl, none)
 if test -n "$RUBY"; then
   AC_PATH_PROG(RUBY, "$RUBY", none)
 else
-  AC_PATH_PROGS(RUBY, ruby ruby1.8 ruby18 ruby1.9 ruby1 ruby1.9.3 ruby193 ruby2.0 ruby2.1, none)
+  AC_PATH_PROGS(RUBY, ruby ruby1 ruby1.8 ruby18 ruby1.9 ruby19 ruby1.9.3 ruby193 ruby2 ruby2.0 ruby20 ruby2.1 ruby21 ruby2.2 ruby22 ruby2.3 ruby23 ruby2.4 ruby24, none)
 fi
 if test "$RUBY" != "none"; then
   AC_MSG_CHECKING([rb_hash_foreach])
@@ -1321,7 +1321,7 @@ if test "$RUBY" != "none"; then
     if test -n "$RDOC"; then
       AC_PATH_PROG(RDOC, "$RDOC", none)
     else
-      AC_PATH_PROGS(RDOC, rdoc rdoc1.8 rdoc18 rdoc1.9 rdoc19 rdoc1.9.3 rdoc193 rdoc2.0 rdoc2.1, none)
+      AC_PATH_PROGS(RUBY, rdoc rdoc1 rdoc1.8 rdoc18 rdoc1.9 rdoc19 rdoc1.9.3 rdoc193 rdoc2 rdoc2.0 rdoc20 rdoc2.1 rdoc21 rdoc2.2 rdoc22 rdoc2.3 rdoc23 rdoc2.4 rdoc24, none)
     fi
     AC_CACHE_CHECK([for Ruby major version], [svn_cv_ruby_major],[
     svn_cv_ruby_major="`$RUBY -rrbconfig -e 'print RbConfig::CONFIG.fetch(%q(MAJOR))'`"
@@ -1345,7 +1345,7 @@ if test "$RUBY" != "none"; then
       # Disallow Ruby between 1.8.7 and 1.9.3
       RUBY="none"
       AC_MSG_WARN([The detected Ruby is between 1.9 and 1.9.3])
-      AC_MSG_WARN([Only 1.8.x and 1.9.3 releases are supported at this time])
+      AC_MSG_WARN([Only 1.8.x and 1.9.3 or later are supported at this time])
     fi
   else
     AC_MSG_RESULT([no])

Modified: subversion/branches/addremove/subversion/bindings/javahl/native/SVNRepos.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/addremove/subversion/bindings/javahl/native/SVNRepos.cpp?rev=1813173&r1=1813172&r2=1813173&view=diff
==============================================================================
--- subversion/branches/addremove/subversion/bindings/javahl/native/SVNRepos.cpp (original)
+++ subversion/branches/addremove/subversion/bindings/javahl/native/SVNRepos.cpp Tue Oct 24 12:40:47 2017
@@ -247,6 +247,7 @@ void SVNRepos::dump(File &path, OutputSt
                                     ? ReposNotifyCallback::notify
                                     : NULL,
                                  notifyCallback,
+                                 NULL, NULL,
                                  checkCancel, this, requestPool.getPool()), );
 }
 

Modified: subversion/branches/addremove/subversion/bindings/swig/include/svn_types.swg
URL: http://svn.apache.org/viewvc/subversion/branches/addremove/subversion/bindings/swig/include/svn_types.swg?rev=1813173&r1=1813172&r2=1813173&view=diff
==============================================================================
--- subversion/branches/addremove/subversion/bindings/swig/include/svn_types.swg (original)
+++ subversion/branches/addremove/subversion/bindings/swig/include/svn_types.swg Tue Oct 24 12:40:47 2017
@@ -1107,7 +1107,7 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
 #ifdef SWIGRUBY
 %typemap(argout) unsigned char digest[ANY] {
   char *digest_string = (char *)svn_md5_digest_to_cstring($1, _global_pool);
-  %append_output(rb_str_new2(digest_string));
+  %append_output(rb_str_new2(digest_string ? digest_string : ""));
 }
 #endif
 

Modified: subversion/branches/addremove/subversion/include/private/svn_repos_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/addremove/subversion/include/private/svn_repos_private.h?rev=1813173&r1=1813172&r2=1813173&view=diff
==============================================================================
--- subversion/branches/addremove/subversion/include/private/svn_repos_private.h (original)
+++ subversion/branches/addremove/subversion/include/private/svn_repos_private.h Tue Oct 24 12:40:47 2017
@@ -75,6 +75,30 @@ svn_repos__validate_prop(const char *nam
                          const svn_string_t *value,
                          apr_pool_t *pool);
 
+/* Attempt to normalize a Subversion property if it "needs translation"
+ * (according to svn_prop_needs_translation(), currently all svn:* props).
+ *
+ * At this time, the only performed normalization is translation of
+ * the line endings of the property value so that it would only contain
+ * LF (\n) characters. "\r" characters found mid-line are replaced with "\n".
+ * "\r\n" sequences are replaced with "\n".
+ *
+ * NAME is used to check that VALUE should be normalized, and if this
+ * is the case, VALUE is then normalized, allocated from RESULT_POOL.
+ * If no normalization is required, VALUE will be copied to RESULT_POOL
+ * unchanged.  If NORMALIZED_P is not NULL, and the normalization
+ * happened, set *NORMALIZED_P to non-zero.  If the property is returned
+ * unchanged and NORMALIZED_P is not NULL, then *NORMALIZED_P will be
+ * set to zero.  SCRATCH_POOL will be used for temporary allocations.
+ */
+svn_error_t *
+svn_repos__normalize_prop(const svn_string_t **result_p,
+                          svn_boolean_t *normalized_p,
+                          const char *name,
+                          const svn_string_t *value,
+                          apr_pool_t *result_pool,
+                          apr_pool_t *scratch_pool);
+
 /**
  * Given the error @a err from svn_repos_fs_commit_txn(), return an
  * string containing either or both of the svn_fs_commit_txn() error

Modified: subversion/branches/addremove/subversion/include/private/svn_subr_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/addremove/subversion/include/private/svn_subr_private.h?rev=1813173&r1=1813172&r2=1813173&view=diff
==============================================================================
--- subversion/branches/addremove/subversion/include/private/svn_subr_private.h (original)
+++ subversion/branches/addremove/subversion/include/private/svn_subr_private.h Tue Oct 24 12:40:47 2017
@@ -112,12 +112,12 @@ svn_spillbuf__get_size(const svn_spillbu
 svn_filesize_t
 svn_spillbuf__get_memory_size(const svn_spillbuf_t *buf);
 
-/* Retrieve the name of the spill file. The returned value can be NULL
-   if the file has not been created yet. */
+/* Retrieve the name of the spill file. The returned value will be
+   NULL if the file has not been created yet. */
 const char *
 svn_spillbuf__get_filename(const svn_spillbuf_t *buf);
 
-/* Retrieve the handle of the spill file. The returned value can be
+/* Retrieve the handle of the spill file. The returned value will be
    NULL if the file has not been created yet. */
 apr_file_t *
 svn_spillbuf__get_file(const svn_spillbuf_t *buf);
@@ -133,8 +133,8 @@ svn_spillbuf__write(svn_spillbuf_t *buf,
 /* Read a block of memory from the spill buffer. @a *data will be set to
    NULL if no content remains. Otherwise, @a data and @a len will point to
    data that must be fully-consumed by the caller. This data will remain
-   valid until another call to svn_spillbuf_write(), svn_spillbuf_read(),
-   or svn_spillbuf_process(), or if the spill buffer's pool is cleared.  */
+   valid until another call to svn_spillbuf__write(), svn_spillbuf__read(),
+   or svn_spillbuf__process(), or if the spill buffer's pool is cleared.  */
 svn_error_t *
 svn_spillbuf__read(const char **data,
                    apr_size_t *len,
@@ -143,7 +143,7 @@ svn_spillbuf__read(const char **data,
 
 
 /* Callback for reading content out of the spill buffer. Set @a stop if
-   you want to stop the processing (and will call svn_spillbuf_process
+   you want to stop the processing (and will call svn_spillbuf__process
    again, at a later time).  */
 typedef svn_error_t * (*svn_spillbuf_read_t)(svn_boolean_t *stop,
                                              void *baton,
@@ -472,7 +472,7 @@ svn_version__parse_version_string(svn_ve
  * @since New in 1.8.
  */
 svn_boolean_t
-svn_version__at_least(svn_version_t *version,
+svn_version__at_least(const svn_version_t *version,
                       int major,
                       int minor,
                       int patch);

Modified: subversion/branches/addremove/subversion/include/private/svn_utf_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/addremove/subversion/include/private/svn_utf_private.h?rev=1813173&r1=1813172&r2=1813173&view=diff
==============================================================================
--- subversion/branches/addremove/subversion/include/private/svn_utf_private.h (original)
+++ subversion/branches/addremove/subversion/include/private/svn_utf_private.h Tue Oct 24 12:40:47 2017
@@ -172,6 +172,18 @@ svn_utf__xfrm(const char **result,
               svn_boolean_t accent_insensitive,
               svn_membuf_t *buf);
 
+/* Return TRUE if S matches any of the const char * glob patterns in
+ * PATTERNS.
+ *
+ * S will internally be normalized to lower-case and accents removed
+ * using svn_utf__xfrm.  To get a match, the PATTERNS must have been
+ * normalized accordingly before calling this function.
+ */
+svn_boolean_t
+svn_utf__fuzzy_glob_match(const char *str,
+                          const apr_array_header_t *patterns,
+                          svn_membuf_t *buf);
+
 /* Check if STRING is a valid, NFC-normalized UTF-8 string.  Note that
  * a FALSE return value may indicate that STRING is not valid UTF-8 at
  * all.

Modified: subversion/branches/addremove/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/addremove/subversion/include/private/svn_wc_private.h?rev=1813173&r1=1813172&r2=1813173&view=diff
==============================================================================
--- subversion/branches/addremove/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/addremove/subversion/include/private/svn_wc_private.h Tue Oct 24 12:40:47 2017
@@ -1925,7 +1925,7 @@ svn_wc__conflict_tree_update_local_add(s
                                        apr_pool_t *scratch_pool);
 
 /* Find nodes in the working copy which corresponds to the new location
- * MOVED_TO_REPOS_RELPATH@REV of the tree conflict victim at VICTIM_ABSPATH.
+ * MOVED_TO_REPOS_RELPATH of the tree conflict victim at VICTIM_ABSPATH.
  * The nodes must be of the same node kind as VICTIM_NODE_KIND.
  * If no such node can be found, set *POSSIBLE_TARGETS to an empty array.
  *
@@ -1935,10 +1935,10 @@ svn_wc__conflict_tree_update_local_add(s
  * to the implementation of this function.
  * Note that this function may not necessarily return a node which was
  * actually moved. The only hard guarantee is that the node corresponds to
- * the repository node MOVED_TO_REPOS_RELPATH@REV specified by the caller.
- * In many cases, this will be a moved node if the caller's parameters are
- * correct. Users should be able to perform a sanity check on the results
- * returned from this function.
+ * the repository relpath MOVED_TO_REPOS_RELPATH specified by the caller.
+ * Users should perform a sanity check on the results returned from this
+ * function, e.g. establish whether the MOVED_TO_REPOS_RELPATH at its
+ * current checked-out revision shares ancestry with the conflict victim.
  */
 svn_error_t *
 svn_wc__guess_incoming_move_target_nodes(apr_array_header_t **possible_targets,
@@ -1946,7 +1946,6 @@ svn_wc__guess_incoming_move_target_nodes
                                          const char *victim_abspath,
                                          svn_node_kind_t victim_node_kind,
                                          const char *moved_to_repos_relpath,
-                                         svn_revnum_t rev,
                                          apr_pool_t *result_pool,
                                          apr_pool_t *scratch_pool);
 

Modified: subversion/branches/addremove/subversion/include/svn_delta.h
URL: http://svn.apache.org/viewvc/subversion/branches/addremove/subversion/include/svn_delta.h?rev=1813173&r1=1813172&r2=1813173&view=diff
==============================================================================
--- subversion/branches/addremove/subversion/include/svn_delta.h (original)
+++ subversion/branches/addremove/subversion/include/svn_delta.h Tue Oct 24 12:40:47 2017
@@ -693,9 +693,12 @@ svn_txdelta_skip_svndiff_window(apr_file
 /** A structure full of callback functions the delta source will invoke
  * as it produces the delta.
  *
- * @note Don't try to allocate one of these yourself.  Instead, always
- * use svn_delta_default_editor() or some other constructor, to ensure
- * that unused slots are filled in with no-op functions.
+ * @note Fields may be added to the end of this structure in future
+ * versions.  Therefore, users shouldn't allocate structures of this
+ * type, to preserve binary compatibility.
+ *
+ * @note It is recommended to use svn_delta_default_editor() or some other
+ * constructor, to ensure that unused slots are filled in with no-op functions.
  *
  * <h3>Function Usage</h3>
  *
@@ -1157,7 +1160,7 @@ typedef struct svn_delta_editor_t
    * be ignored even if not NULL.  If it is not ignored, it must match
    * the checksum of the base text against which svndiff data is being
    * applied; if it does not, @c apply_textdelta_stream call which detects
-   * the mismatch will return the error SVN_ERR_CHECKSUM_MISMATCH
+   * the mismatch will return the error #SVN_ERR_CHECKSUM_MISMATCH
    * (if there is no base text, there may still be an error if
    * @a base_checksum is neither NULL nor the hex MD5 checksum of the
    * empty string).

Modified: subversion/branches/addremove/subversion/include/svn_error_codes.h
URL: http://svn.apache.org/viewvc/subversion/branches/addremove/subversion/include/svn_error_codes.h?rev=1813173&r1=1813172&r2=1813173&view=diff
==============================================================================
--- subversion/branches/addremove/subversion/include/svn_error_codes.h (original)
+++ subversion/branches/addremove/subversion/include/svn_error_codes.h Tue Oct 24 12:40:47 2017
@@ -240,6 +240,11 @@ SVN_ERROR_START
              SVN_ERR_BAD_CATEGORY_START + 16,
              "Invalid compression method")
 
+  /** @since New in 1.10. */
+  SVN_ERRDEF(SVN_ERR_BAD_PROPERTY_VALUE_EOL,
+             SVN_ERR_BAD_CATEGORY_START + 17,
+             "Unexpected line ending in the property value")
+
   /* xml errors */
 
   SVN_ERRDEF(SVN_ERR_XML_ATTRIB_NOT_FOUND,

Modified: subversion/branches/addremove/subversion/include/svn_repos.h
URL: http://svn.apache.org/viewvc/subversion/branches/addremove/subversion/include/svn_repos.h?rev=1813173&r1=1813172&r2=1813173&view=diff
==============================================================================
--- subversion/branches/addremove/subversion/include/svn_repos.h (original)
+++ subversion/branches/addremove/subversion/include/svn_repos.h Tue Oct 24 12:40:47 2017
@@ -375,6 +375,24 @@ typedef void (*svn_repos_notify_func_t)(
                                         const svn_repos_notify_t *notify,
                                         apr_pool_t *scratch_pool);
 
+/** Callback for filtering repository contents during dump.
+ *
+ * Set @a *include to TRUE to indicate that node, identified by path
+ * @a path in @a root should be included in dump, or set it to @c FALSE
+ * to indicate that node should be excluded (presumably according to state
+ * stored in @a baton).
+ *
+ * Do not assume @a scratch_pool has any lifetime beyond this call.
+ *
+ * @since New in 1.10.
+ */
+typedef svn_error_t * (*svn_repos_dump_filter_func_t)(
+  svn_boolean_t *include,
+  svn_fs_root_t *root,
+  const char *path,
+  void *baton,
+  apr_pool_t *scratch_pool);
+
 /**
  * Allocate an #svn_repos_notify_t structure in @a result_pool, initialize
  * and return it.
@@ -3310,6 +3328,9 @@ svn_repos_verify_fs(svn_repos_t *repos,
  *            reiterating the existence of previous warnings
  *        ### This is a presentation issue. Caller could do this itself.
  *
+ * If @a filter_func is not @c NULL, it is called for each node being
+ * dumped, allowing the caller to exclude it from dump.
+ *
  * If @a cancel_func is not @c NULL, it is called periodically with
  * @a cancel_baton as argument to see if the client wishes to cancel
  * the dump.
@@ -3329,13 +3350,16 @@ svn_repos_dump_fs4(svn_repos_t *repos,
                    svn_boolean_t include_changes,
                    svn_repos_notify_func_t notify_func,
                    void *notify_baton,
+                   svn_repos_dump_filter_func_t filter_func,
+                   void *filter_baton,
                    svn_cancel_func_t cancel_func,
                    void *cancel_baton,
                    apr_pool_t *pool);
 
 /**
  * Similar to svn_repos_dump_fs4(), but with @a include_revprops and 
- * @a include_changes both set to @c TRUE.
+ * @a include_changes both set to @c TRUE and @a filter_func and
+ * @a filter_baton set to @c NULL.
  *
  * @since New in 1.7.
  * @deprecated Provided for backward compatibility with the 1.9 API.
@@ -3436,6 +3460,15 @@ svn_repos_dump_fs(svn_repos_t *repos,
  * to be stamped as if they were newly created via the normal commit
  * process.
  *
+ * If @a normalize_props is set, attempt to normalize invalid Subversion
+ * revision and node properties (those in the svn: namespace) so that
+ * their values would follow the established rules for them.  For example,
+ * for such properties, typically the value must be in UTF-8 with LF
+ * line endings.
+ *
+ * @note The details or the performed normalizations are deliberately
+ * left unspecified and may change in the future.
+ *
  * If non-NULL, use @a notify_func and @a notify_baton to send notification
  * of events to the caller.
  *
@@ -3443,8 +3476,34 @@ svn_repos_dump_fs(svn_repos_t *repos,
  * @a cancel_baton as argument to see if the client wishes to cancel
  * the load.
  *
+ * @since New in 1.10.
+ */
+svn_error_t *
+svn_repos_load_fs6(svn_repos_t *repos,
+                   svn_stream_t *dumpstream,
+                   svn_revnum_t start_rev,
+                   svn_revnum_t end_rev,
+                   enum svn_repos_load_uuid uuid_action,
+                   const char *parent_dir,
+                   svn_boolean_t use_pre_commit_hook,
+                   svn_boolean_t use_post_commit_hook,
+                   svn_boolean_t validate_props,
+                   svn_boolean_t ignore_dates,
+                   svn_boolean_t normalize_props,
+                   svn_repos_notify_func_t notify_func,
+                   void *notify_baton,
+                   svn_cancel_func_t cancel_func,
+                   void *cancel_baton,
+                   apr_pool_t *pool);
+
+/**
+ * Similar to svn_repos_load_fs6(), but with the @a normalize_props
+ * parameter always set to @c FALSE.
+ *
  * @since New in 1.9.
+ * @deprecated Provided for backward compatibility with the 1.9 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_repos_load_fs5(svn_repos_t *repos,
                    svn_stream_t *dumpstream,
@@ -3567,6 +3626,15 @@ svn_repos_load_fs(svn_repos_t *repos,
  * @a dumpstream, keeping whatever timestamps the revisions currently
  * have.
  *
+ * If @a normalize_props is set, attempt to normalize invalid Subversion
+ * revision and node properties (those in the svn: namespace) so that
+ * their values would follow the established rules for them.  For example,
+ * for such properties, typically the value must be in UTF-8 with LF
+ * line endings.
+ *
+ * @note The details or the performed normalizations are deliberately
+ * left unspecified and may change in the future.
+ *
  * If non-NULL, use @a notify_func and @a notify_baton to send notification
  * of events to the caller.
  *
@@ -3585,6 +3653,7 @@ svn_repos_load_fs_revprops(svn_repos_t *
                            svn_revnum_t end_rev,
                            svn_boolean_t validate_props,
                            svn_boolean_t ignore_dates,
+                           svn_boolean_t normalize_props,
                            svn_repos_notify_func_t notify_func,
                            void *notify_baton,
                            svn_cancel_func_t cancel_func,
@@ -3788,12 +3857,47 @@ svn_repos_parse_dumpstream3(svn_stream_t
  * to be stamped as if they were newly created via the normal commit
  * process.
  *
+ * If @a normalize_props is set, attempt to normalize invalid Subversion
+ * revision and node properties (those in the svn: namespace) so that
+ * their values would follow the established rules for them.  For example,
+ * for such properties, typically the value must be in UTF-8 with LF
+ * line endings.
+ *
+ * @note The details or the performed normalizations are deliberately
+ * left unspecified and may change in the future.
+ *
  * If @a parent_dir is not NULL, then the parser will reparent all the
  * loaded nodes, from root to @a parent_dir.  The directory @a parent_dir
  * must be an existing directory in the repository.
  *
+ * @since New in 1.10.
+ */
+svn_error_t *
+svn_repos_get_fs_build_parser6(const svn_repos_parse_fns3_t **parser,
+                               void **parse_baton,
+                               svn_repos_t *repos,
+                               svn_revnum_t start_rev,
+                               svn_revnum_t end_rev,
+                               svn_boolean_t use_history,
+                               svn_boolean_t validate_props,
+                               enum svn_repos_load_uuid uuid_action,
+                               const char *parent_dir,
+                               svn_boolean_t use_pre_commit_hook,
+                               svn_boolean_t use_post_commit_hook,
+                               svn_boolean_t ignore_dates,
+                               svn_boolean_t normalize_props,
+                               svn_repos_notify_func_t notify_func,
+                               void *notify_baton,
+                               apr_pool_t *pool);
+
+/**
+ * Similar to svn_repos_get_fs_build_parser6(), but with the
+ * @a normalize_props parameter always set to @c FALSE.
+ *
  * @since New in 1.9.
+ * @deprecated Provided for backward compatibility with the 1.9 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_repos_get_fs_build_parser5(const svn_repos_parse_fns3_t **parser,
                                void **parse_baton,

Modified: subversion/branches/addremove/subversion/include/svn_string.h
URL: http://svn.apache.org/viewvc/subversion/branches/addremove/subversion/include/svn_string.h?rev=1813173&r1=1813172&r2=1813173&view=diff
==============================================================================
--- subversion/branches/addremove/subversion/include/svn_string.h (original)
+++ subversion/branches/addremove/subversion/include/svn_string.h Tue Oct 24 12:40:47 2017
@@ -533,9 +533,25 @@ svn_cstring_count_newlines(const char *m
  * of char *) each followed by @a separator (that is, @a separator
  * will also end the resulting string).  Allocate the result in @a pool.
  * If @a strings is empty, then return the empty string.
+ * If @a trailing_separator is non-zero, also append the separator
+ * after the last joined element.
+ *
+ * @since New in 1.10.
+ */
+char *
+svn_cstring_join2(const apr_array_header_t *strings,
+                  const char *separator,
+                  svn_boolean_t trailing_separator,
+                  apr_pool_t *pool);
+
+/**
+ * Similar to svn_cstring_join2(), but always includes the trailing
+ * separator.
  *
  * @since New in 1.2.
+ * @deprecated Provided for backwards compatibility with the 1.9 API.
  */
+SVN_DEPRECATED
 char *
 svn_cstring_join(const apr_array_header_t *strings,
                  const char *separator,