You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2016/12/13 12:36:57 UTC

svn commit: r1773992 [1/8] - in /subversion/branches/ra-git: ./ build/ac-macros/ notes/ subversion/bindings/javahl/native/ subversion/bindings/swig/perl/libsvn_swig_perl/ subversion/bindings/swig/ruby/test/ subversion/include/ subversion/include/privat...

Author: rhuijben
Date: Tue Dec 13 12:36:55 2016
New Revision: 1773992

URL: http://svn.apache.org/viewvc?rev=1773992&view=rev
Log:
On the ra-git branch: Catch up with trunk @1773991.

Added:
    subversion/branches/ra-git/subversion/libsvn_repos/list.c
      - copied unchanged from r1773991, subversion/trunk/subversion/libsvn_repos/list.c
    subversion/branches/ra-git/subversion/tests/libsvn_subr/xml-test.c
      - copied unchanged from r1773991, subversion/trunk/subversion/tests/libsvn_subr/xml-test.c
Removed:
    subversion/branches/ra-git/TODO
    subversion/branches/ra-git/subversion/tests/cmdline/import_tests_data/
Modified:
    subversion/branches/ra-git/   (props changed)
    subversion/branches/ra-git/CHANGES
    subversion/branches/ra-git/COMMITTERS
    subversion/branches/ra-git/build.conf
    subversion/branches/ra-git/build/ac-macros/zlib.m4
    subversion/branches/ra-git/notes/diff-optimizations.txt
    subversion/branches/ra-git/subversion/bindings/javahl/native/Prompter.cpp
    subversion/branches/ra-git/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
    subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_core.rb
    subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_fs.rb
    subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_repos.rb
    subversion/branches/ra-git/subversion/include/private/svn_log.h
    subversion/branches/ra-git/subversion/include/private/svn_ra_svn_private.h
    subversion/branches/ra-git/subversion/include/private/svn_utf_private.h
    subversion/branches/ra-git/subversion/include/private/svn_wc_private.h
    subversion/branches/ra-git/subversion/include/svn_checksum.h
    subversion/branches/ra-git/subversion/include/svn_client.h
    subversion/branches/ra-git/subversion/include/svn_fs.h
    subversion/branches/ra-git/subversion/include/svn_ra.h
    subversion/branches/ra-git/subversion/include/svn_ra_svn.h
    subversion/branches/ra-git/subversion/include/svn_repos.h
    subversion/branches/ra-git/subversion/include/svn_wc.h
    subversion/branches/ra-git/subversion/include/svn_xml.h
    subversion/branches/ra-git/subversion/libsvn_client/conflicts.c
    subversion/branches/ra-git/subversion/libsvn_client/deprecated.c
    subversion/branches/ra-git/subversion/libsvn_client/list.c
    subversion/branches/ra-git/subversion/libsvn_client/merge.c
    subversion/branches/ra-git/subversion/libsvn_fs_fs/cached_data.c
    subversion/branches/ra-git/subversion/libsvn_fs_fs/caching.c
    subversion/branches/ra-git/subversion/libsvn_fs_fs/fs.h
    subversion/branches/ra-git/subversion/libsvn_fs_fs/pack.c
    subversion/branches/ra-git/subversion/libsvn_fs_fs/temp_serializer.h
    subversion/branches/ra-git/subversion/libsvn_fs_x/   (props changed)
    subversion/branches/ra-git/subversion/libsvn_fs_x/batch_fsync.c
    subversion/branches/ra-git/subversion/libsvn_fs_x/fs.h
    subversion/branches/ra-git/subversion/libsvn_fs_x/pack.c
    subversion/branches/ra-git/subversion/libsvn_ra/ra_loader.c
    subversion/branches/ra-git/subversion/libsvn_ra/ra_loader.h
    subversion/branches/ra-git/subversion/libsvn_ra_local/ra_plugin.c
    subversion/branches/ra-git/subversion/libsvn_ra_serf/ra_serf.h
    subversion/branches/ra-git/subversion/libsvn_ra_serf/serf.c
    subversion/branches/ra-git/subversion/libsvn_ra_serf/xml.c
    subversion/branches/ra-git/subversion/libsvn_ra_svn/client.c
    subversion/branches/ra-git/subversion/libsvn_ra_svn/marshal.c
    subversion/branches/ra-git/subversion/libsvn_ra_svn/protocol
    subversion/branches/ra-git/subversion/libsvn_repos/repos.c
    subversion/branches/ra-git/subversion/libsvn_subr/cache-membuffer.c
    subversion/branches/ra-git/subversion/libsvn_subr/gpg_agent.c
    subversion/branches/ra-git/subversion/libsvn_subr/io.c
    subversion/branches/ra-git/subversion/libsvn_subr/log.c
    subversion/branches/ra-git/subversion/libsvn_subr/prefix_string.c
    subversion/branches/ra-git/subversion/libsvn_subr/win32_crashrpt.c
    subversion/branches/ra-git/subversion/libsvn_subr/xml.c
    subversion/branches/ra-git/subversion/libsvn_wc/conflicts.c
    subversion/branches/ra-git/subversion/libsvn_wc/crop.c
    subversion/branches/ra-git/subversion/libsvn_wc/entries.c
    subversion/branches/ra-git/subversion/libsvn_wc/wc.h
    subversion/branches/ra-git/subversion/libsvn_wc/wc_db.h
    subversion/branches/ra-git/subversion/libsvn_wc/wc_db_update_move.c
    subversion/branches/ra-git/subversion/svn/cl.h
    subversion/branches/ra-git/subversion/svn/conflict-callbacks.c
    subversion/branches/ra-git/subversion/svn/info-cmd.c
    subversion/branches/ra-git/subversion/svn/list-cmd.c
    subversion/branches/ra-git/subversion/svn/merge-cmd.c
    subversion/branches/ra-git/subversion/svn/resolve-cmd.c
    subversion/branches/ra-git/subversion/svn/svn.c
    subversion/branches/ra-git/subversion/svn/switch-cmd.c
    subversion/branches/ra-git/subversion/svn/update-cmd.c
    subversion/branches/ra-git/subversion/svnbench/cl.h
    subversion/branches/ra-git/subversion/svnbench/null-list-cmd.c
    subversion/branches/ra-git/subversion/svnbench/svnbench.c
    subversion/branches/ra-git/subversion/svnmucc/svnmucc.c
    subversion/branches/ra-git/subversion/svnserve/serve.c
    subversion/branches/ra-git/subversion/tests/cmdline/autoprop_tests.py
    subversion/branches/ra-git/subversion/tests/cmdline/basic_tests.py
    subversion/branches/ra-git/subversion/tests/cmdline/depth_tests.py
    subversion/branches/ra-git/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
    subversion/branches/ra-git/subversion/tests/cmdline/import_tests.py
    subversion/branches/ra-git/subversion/tests/cmdline/info_tests.py
    subversion/branches/ra-git/subversion/tests/cmdline/merge_reintegrate_tests.py
    subversion/branches/ra-git/subversion/tests/cmdline/move_tests.py
    subversion/branches/ra-git/subversion/tests/cmdline/prop_tests.py
    subversion/branches/ra-git/subversion/tests/cmdline/resolve_tests.py
    subversion/branches/ra-git/subversion/tests/cmdline/stat_tests.py
    subversion/branches/ra-git/subversion/tests/cmdline/svntest/sandbox.py
    subversion/branches/ra-git/subversion/tests/libsvn_client/conflicts-test.c
    subversion/branches/ra-git/subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
    subversion/branches/ra-git/subversion/tests/libsvn_repos/repos-test.c
    subversion/branches/ra-git/subversion/tests/libsvn_subr/   (props changed)
    subversion/branches/ra-git/tools/client-side/svn-mergeinfo-normalizer/wc_mergeinfo.c
    subversion/branches/ra-git/tools/dev/fsfs-access-map.c
    subversion/branches/ra-git/tools/dev/svnmover/linenoise/linenoise.c
    subversion/branches/ra-git/tools/dev/unix-build/Makefile.svn
    subversion/branches/ra-git/tools/dist/advisory.py
    subversion/branches/ra-git/tools/dist/backport/merger.py
    subversion/branches/ra-git/tools/dist/detect-conflicting-backports.py
    subversion/branches/ra-git/tools/dist/merge-approved-backports.py
    subversion/branches/ra-git/tools/server-side/mod_dontdothat/mod_dontdothat.c

Propchange: subversion/branches/ra-git/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Dec 13 12:36:55 2016
@@ -71,6 +71,7 @@
 /subversion/branches/ra_serf-digest-authn:875693-876404
 /subversion/branches/reintegrate-improvements:873853-874164
 /subversion/branches/remote-only-status:1581845-1586090
+/subversion/branches/resolve-incoming-add:1762797-1764284
 /subversion/branches/revprop-cache:1298521-1326293
 /subversion/branches/revprop-caching-ng:1620597,1620599
 /subversion/branches/revprop-packing:1143907,1143971,1143997,1144017,1144499,1144568,1146145
@@ -96,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:1583624-1764213
+/subversion/trunk:1583624-1773991

Modified: subversion/branches/ra-git/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/CHANGES?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/CHANGES (original)
+++ subversion/branches/ra-git/CHANGES Tue Dec 13 12:36:55 2016
@@ -1,3 +1,54 @@
+Version 1.9.5
+(29 Nov 2016, from /branches/1.9.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.9.5
+
+ User-visible changes:
+  - Client-side bugfixes:
+    * fix accessing non-existent paths during reintegrate merge (r1766699 et al)
+    * fix handling of newly secured subdirectories in working copy (r1724448)
+    * info: remove trailing whitespace in --show-item=revision (issue #4660)
+    * fix recording wrong revisions for tree conflicts (r1734106)
+    * gpg-agent: improve discovery of gpg-agent sockets (r1766327)
+    * gpg-agent: fix file descriptor leak (r1766323)
+    * resolve: fix --accept=mine-full for binary files (issue #4647)
+    * merge: fix possible crash (issue #4652)
+    * resolve: fix possible crash (r1748514)
+    * fix potential crash in Win32 crash reporter (r1663253 et al)
+
+  - Server-side bugfixes:
+    * fsfs: fix "offset too large" error during pack (issue #4657)
+    * svnserve: enable hook script environments (r1769152)
+    * fsfs: fix possible data reconstruction error (issue #4658)
+    * fix source of spurious 'incoming edit' tree conflicts (r1760570)
+    * fsfs: improve caching for large directories (r1721285)
+    * fsfs: fix crash when encountering all-zero checksums (r1759686)
+    * fsfs: fix potential source of repository corruptions (r1756266)
+    * mod_dav_svn: fix excessive memory usage with mod_headers/mod_deflate
+      (issue #3084)
+    * mod_dav_svn: reduce memory usage during GET requests (r1757529 et al)
+    * fsfs: fix unexpected "database is locked" errors (r1741096 et al)
+    * fsfs: fix opening old repositories without db/format files (r1720015)
+
+  - Client-side and server-side bugfixes:
+    * fix possible crash when reading invalid configuration files (r1715777)
+
+  - Bindings bugfixes:
+    * swig-pl: do not corrupt "{DATE}" revision variable (r1767768)
+    * javahl: fix temporarily accepting SSL server certificates (r1764851)
+    * swig-pl: fix possible stack corruption (r1683266, r1683267)
+
+ Developer-visible changes:
+  - General:
+    * add zlib discovery through pkg-config (issue #4655)
+    * fix potential build issue with invalid SVN_LOCALE_DIR (issue #4653)
+    * ruby: fix test failures with ruby >= 2.2 (r1766240)
+    * fix link error with --disable-keychain on OS X (r1761755)
+    * swig: enable building with SWIG >= 3.0.6 (r1721488 et al)
+    * swig: fix building with -Wdate-time in $CPPFLAGS (r1722164)
+    * update serf download URI in build scripts (r1700130 et al)
+    * raise minimal httpd version from 2.0 to 2.2 (r1754190)
+
+
 Version 1.9.4
 (28 Apr 2016, from /branches/1.9.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.9.4
@@ -14,6 +65,8 @@ http://svn.apache.org/repos/asf/subversi
     * ra_serf: fix deleting directories with many files (issue #4557)
 
   - Server-side bugfixes:
+    * mod_authz_svn: fix crash in COPY/MOVE authorization check (CVE-2016-2168)
+    * svnserve/sasl: fix authenticating users with wrong realm (CVE-2016-2167)
     * improve documentation for AuthzSVNGroupsFile and groups-db (r1730856)
     * fsfs: reduce peak memory usage when listing large directories (r1725180)
     * fsfs: fix a rare source of incomplete dump files and reports (r1717876)
@@ -31,8 +84,7 @@ http://svn.apache.org/repos/asf/subversi
     * fix ruby test suite to work with test-unit gem (r1714790)
     * allow building against KDE4 without conflict with KDE5 (r1734926)
     * fix update_tests.py#76 with SVNPathAuthz short_circuit (r1736432)
-    * build system tweaks:
-    * tweak how symbolic error names in maintainer mode (r1735179)
+    * tweak getting symbolic error names in maintainer mode (r1735179)
     * fix inconsistent behavior of inherited property API (r1717874 et al)
 
   - API changes:
@@ -53,7 +105,6 @@ http://svn.apache.org/repos/asf/subversi
     * svn: report lock/unlock errors as failures (r1701598 et al)
     * svn: cleanup user deleted external registrations (r1705843, r1710558)
     * svn: allow simple resolving of binary file text conflicts (r1703581)
-    * svnlook: properly remove tempfiles on diff errors (r1711346)
     * ra_serf: report built- and run-time versions of libserf (r1704847)
     * ra_serf: set Content-Type header in outgoing requests (r1715224 et al)
     * svn: fix merging deletes of svn:eol-style CRLF/CR files (r1703689 et al)
@@ -66,6 +117,7 @@ http://svn.apache.org/repos/asf/subversi
     * mod_dav_svn: use LimitXMLRequestBody for skel-encoded requests (r1687812)
     * svnadmin dump: preserve no-op changes (r1709388 et al, issue #4598)
     * fsfs: avoid unneeded I/O when opening transactions (r1715793)
+    * svnlook: properly remove tempfiles on diff errors (r1711346)
 
   - Client-side and server-side bugfixes:
     * fix heap overflow in svn:// protocol parser (CVE-2015-5259)
@@ -882,12 +934,44 @@ http://svn.apache.org/repos/asf/subversi
     * javahl: allow compiling with a C++11 compiler (r1684412)
 
 
+Version 1.8.17
+(29 Nov 2016, from /branches/1.8.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.8.17
+
+ User-visible changes:
+  - Client-side bugfixes:
+    * fix handling of newly secured subdirectories in working copy (r1724448)
+    * ra_serf: fix deleting directories with many files (issue #4557)
+    * gpg-agent: properly handle passwords with percent characters (issue #4611)
+    * merge: fix crash when merging to a local add (r1702299 et al)
+
+  - Server-side bugfixes:
+    * fsfs: fix possible data reconstruction error (issue #4658)
+    * svnlook: properly remove tempfiles on diff errors (r1711346)
+
+  - Client-side and server-side bugfixes:
+    * fix potential memory access bugs (r1722860 et al)
+
+  - Bindings bugfixes:
+    * javahl: fix temporarily accepting SSL server certificates (r1764851)
+    * swig-pl: do not corrupt "{DATE}" revision variable (r1767768)
+    * swig-pl: fix possible stack corruption (r1683266)
+
+ Developer-visible changes:
+  - General:
+    * fix inconsistent behavior of inherited property API (r1717875, r1717878)
+    * fix patch filter invocation in svn_client_patch() (r1706783)
+    * fix potential build issue with invalid SVN_LOCALE_DIR (issue #4653)
+
+
 Version 1.8.16
 (28 Apr 2016, from /branches/1.8.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.8.16
 
  User-visible changes:
   - Server-side bugfixes:
+    * mod_authz_svn: fix crash in COPY/MOVE authorization check (CVE-2016-2168)
+    * svnserve/sasl: fix authenticating users with wrong realm (CVE-2016-2167)
     * mod_authz_svn: fix authz with mod_auth_kerb/mod_auth_ntlm (issue #4602)
     * dump: don't write broken dump files in some ambiguously encoded fsfs
       repositories (issue #4554)

Modified: subversion/branches/ra-git/COMMITTERS
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/COMMITTERS?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/COMMITTERS [UTF-8] (original)
+++ subversion/branches/ra-git/COMMITTERS [UTF-8] Tue Dec 13 12:36:55 2016
@@ -27,14 +27,13 @@ Blanket commit access:
            dlr   Daniel Rall <dl...@finemaltcoding.com>
            mbk   Mark Benedetto King <mb...@lowlatency.com>
            jaa   Jani Averbach <ja...@iki.fi>
-    julianfoad   Julian Foad <ju...@wandisco.com>
+    julianfoad   Julian Foad <ju...@foad.me.uk>
   jszakmeister   John Szakmeister <jo...@szakmeister.net>
            ehu   Erik H�lsmann <eh...@gmail.com>
         breser   Ben Reser <be...@reser.org>
           maxb   Max Bowsher <ma...@ukf.net>
        dberlin   Daniel Berlin <db...@dberlin.org>
      danderson   David Anderson <da...@natulte.net>
-          ivan   Ivan Zhakov <ch...@gmail.com>
         djames   David James <ja...@cs.toronto.edu>
         pburba   Paul Burba <pb...@collab.net>
        glasser   David Glasser <gl...@davidglasser.net>
@@ -78,6 +77,7 @@ Full committers who have asked to be lis
        malcolm   Malcolm Rowe <ma...@farside.org.uk>
          naked   Nuutti Kotivuori <na...@iki.fi>
      ringstrom   Tobias Ringstr�m <to...@ringstrom.mine.nu>
+          ivan   Ivan Zhakov <ch...@gmail.com>
 
 
 Partial committers who have asked to be listed as dormant:

Modified: subversion/branches/ra-git/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/build.conf?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/build.conf (original)
+++ subversion/branches/ra-git/build.conf Tue Dec 13 12:36:55 2016
@@ -344,7 +344,7 @@ description = Subversion HTTP/WebDAV Pro
 type = ra-module
 path = subversion/libsvn_ra_serf
 install = serf-lib
-libs = libsvn_delta libsvn_subr aprutil apriconv apr serf xml zlib
+libs = libsvn_delta libsvn_subr aprutil apriconv apr serf zlib
 msvc-static = yes
 
 # Accessing repositories via SVN
@@ -446,7 +446,7 @@ when = INSTALL_APACHE_MODS
 type = apache-mod
 path = tools/server-side/mod_dontdothat
 nonlibs = mod_dav_svn apr aprutil
-libs = libsvn_subr xml libhttpd
+libs = libsvn_subr libhttpd
 install = tools
 
 # The Subversion FSFS repository manipulation tool
@@ -1187,6 +1187,13 @@ sources = x509-test.c
 install = test
 libs = libsvn_test libsvn_subr apriconv apr
 
+[xml-test]
+description = Test XML parser in libsvn_subr
+type = exe
+path = subversion/tests/libsvn_subr
+sources = xml-test.c
+install = test
+libs = libsvn_test libsvn_subr apriconv apr
 
 # ----------------------------------------------------------------------------
 # Tests for libsvn_delta
@@ -1498,7 +1505,7 @@ external-lib = $(SVN_APR_MEMCACHE_LIBS)
 [serf]
 type = lib
 external-lib = $(SVN_SERF_LIBS)
-libs = apr aprutil openssl xml zlib
+libs = apr aprutil openssl zlib
 msvc-libs = secur32.lib
 pkg-config = serf-1
 pkg-config-private = yes
@@ -1592,7 +1599,7 @@ libs = __ALL__
        conflict-data-test db-test pristine-store-test entries-compat-test
        op-depth-test dirent_uri-test wc-queries-test wc-test
        auth-test
-       parse-diff-test x509-test
+       parse-diff-test x509-test xml-test
 
 [__MORE__]
 type = project

Modified: subversion/branches/ra-git/build/ac-macros/zlib.m4
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/build/ac-macros/zlib.m4?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/build/ac-macros/zlib.m4 (original)
+++ subversion/branches/ra-git/build/ac-macros/zlib.m4 Tue Dec 13 12:36:55 2016
@@ -94,6 +94,7 @@ AC_DEFUN(SVN_ZLIB_PKG_CONFIG,
       zlib_found=yes
       SVN_ZLIB_INCLUDES=`$PKG_CONFIG zlib --cflags`
       SVN_ZLIB_LIBS=`$PKG_CONFIG zlib --libs`
+      SVN_ZLIB_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($SVN_ZLIB_LIBS)`"
     else
       AC_MSG_RESULT([no])
     fi

Modified: subversion/branches/ra-git/notes/diff-optimizations.txt
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/notes/diff-optimizations.txt?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/notes/diff-optimizations.txt (original)
+++ subversion/branches/ra-git/notes/diff-optimizations.txt Tue Dec 13 12:36:55 2016
@@ -42,62 +42,20 @@ I. Speeding up "minimal" diff (no heuris
   - This approach probably conflicts with the "Merge hash calculation with 
     EOL scanning" suggestion.
 
-5) Discarding non-matching lines before running the LCS (Longest Common
-   Subsequence) algorithm.
-
-  - Can make a *huge* impact on files which have a lot of different/unique
-    lines.
-    (for instance, an example script from the users list [1], which
-    generates two files with random lines, 3/4th of which are
-    non-matching: diff goes from several hours to a couple of seconds;
-    another example is a big file of which indentation style was changed
-    from tabs to spaces, and diffing without an ignore-whitespace option).
-
-  - GNU diff does this as well, but strangely, it does it only as part
-    of a heuristic (which also discards other "confusing lines"). If run
-    with --minimal, these lines are not discarded (though, AFAICS, there
-    should be no problem discarding the non-matching lines even when going
-    for a minimal diff).
-
-  - From mailthread [2]:
-    The core algorithm for calculating a (minimal) diff is to first find
-    the Longest Common Subsequence (the longest sequence of lines which
-    appear both in A and in B (not necessarily as contiguous lines, there
-    can be gaps)). The actual diff can be derived from this very quickly.
-
-    But lines which only appear in A, or only in B, can never be part of
-    the LCS, because they are not common lines to begin with.
-
-    So we can just as well calculate the LCS of A' and B' (A and B
-    without their "definitely non-matching" lines). This will also be an
-    LCS of A and B, because there are no common lines added which can make
-    it even longer.
-
-    The only thing I'm not 100% sure of is if it would yield the same LCS
-    (there can be many LCS's, all equally long, hence the different
-    possible diff-representations which are sometimes not nice for human
-    readers). However, gut feeling tells me it will be the same. I can't
-    prove this though, so feel free to come up with a counter example :-).
-    (although having a different LCS would not be a disaster: it would
-    still be a minimal diff, but a different one).
-
-    The practical difficulty is to map line numbers from lines in A and B
-    to their corresponding lines in A' and B', and back again.
-
 
 II. Going for a non-minimal diff (i.e. heuristics)
 --------------------------------------------------
 
 In some cases, heuristics can make a big difference (while not guaranteeing
 that you'll get a minimal diff).
-See also issue #1966 (libsvn_diff needs 'non-minimal-diff' mode) [3].
+See also issue #1966 (libsvn_diff needs 'non-minimal-diff' mode) [1].
 
 1) Make prefix/suffix scanning able to skip 1 or a couple of 
    non-matching lines, if it is able to find strictly more matching lines
    after that, to keep the prefix/suffix scanning going.
 
    This will usually work well, but can sometimes lead to missynchronization
-   (see [4]):
+   (see [2]):
 
      bxxaxxbxx
       || ||
@@ -111,7 +69,7 @@ See also issue #1966 (libsvn_diff needs
 
 2) Add some heuristics-based shortcuts in the LCS algorithm.
       
-3) Implement another diff algorithm, such as "Patience Diff" [5], which is
+3) Implement another diff algorithm, such as "Patience Diff" [3], which is
    already implemented in several other (D)VCS's. It has the potential to
    be much faster (reducing the problem to calculating several, much
    smaller LCS's), and has the added advantage of often producing "nicer"
@@ -122,12 +80,8 @@ See also issue #1966 (libsvn_diff needs
 References
 ----------
 
-[1] http://svn.haxx.se/users/archive-2011-01/0319.shtml
-[2] http://svn.haxx.se/dev/archive-2011-02/0772.shtml
-[3] http://subversion.tigris.org/issues/show_bug.cgi?id=1966 (libsvn_diff
+[1] http://subversion.tigris.org/issues/show_bug.cgi?id=1966 (libsvn_diff
 needs 'non-minimal-diff' mode)
-[4] Miller, W., and Myers, E.W. "A File Comparison Program.", Software -
+[2] Miller, W., and Myers, E.W. "A File Comparison Program.", Software -
     Practice & Experience 15 (1985), pp. 1025-1040.
-[5] http://bramcohen.livejournal.com/73318.html
-[6] Mailthread with an earlier version of these notes, and some additional
-    discussion: http://svn.haxx.se/dev/archive-2011-02/0490.shtml
\ No newline at end of file
+[3] http://bramcohen.livejournal.com/73318.html

Modified: subversion/branches/ra-git/subversion/bindings/javahl/native/Prompter.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/javahl/native/Prompter.cpp?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/javahl/native/Prompter.cpp (original)
+++ subversion/branches/ra-git/subversion/bindings/javahl/native/Prompter.cpp Tue Dec 13 12:36:55 2016
@@ -597,6 +597,7 @@ CompatPrompter::dispatch_ssl_server_trus
     {
     case org_apache_subversion_javahl_callback_UserPasswordCallback_AcceptTemporary:
       cred->may_save = FALSE;
+      cred->accepted_failures = failures;
       *cred_p = cred;
       break;
     case org_apache_subversion_javahl_callback_UserPasswordCallback_AcceptPermanently:

Modified: subversion/branches/ra-git/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c (original)
+++ subversion/branches/ra-git/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c Tue Dec 13 12:36:55 2016
@@ -467,20 +467,23 @@ svn_opt_revision_t *svn_swig_pl_set_revi
             svn_error_t *err;
 
             char *end = strchr(input,'}');
+            char saved_end;
             if (!end)
                 maybe_croak(("unknown opt_revision_t string \"%s\": "
                              "missing closing brace for \"{DATE}\"", input));
+            saved_end = *end;
             *end = '\0';
             err = svn_parse_date (&matched, &tm,
                                   input + 1, apr_time_now(), pool);
+            *end = saved_end;
             if (err) {
                 svn_error_clear (err);
-                maybe_croak(("unknown opt_revision_t string \"{%s}\": "
-                             "internal svn_parse_date error", input + 1));
+                maybe_croak(("unknown opt_revision_t string \"%s\": "
+                             "internal svn_parse_date error", input));
             }
             if (!matched)
-                maybe_croak(("unknown opt_revision_t string \"{%s}\": "
-                             "svn_parse_date failed to parse it", input + 1));
+                maybe_croak(("unknown opt_revision_t string \"%s\": "
+                             "svn_parse_date failed to parse it", input));
 
             rev->kind = svn_opt_revision_date;
             rev->value.date = tm;

Modified: subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_core.rb
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_core.rb?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_core.rb (original)
+++ subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_core.rb Tue Dec 13 12:36:55 2016
@@ -472,9 +472,19 @@ EOS
     latest.close
 
     expected = <<-EOD
+<<<<<<< #{modified.path}
+a
+ b
 
-  b
+||||||| #{original.path}
+a
+ b
+c
+=======
 
+  b
+c
+>>>>>>> #{latest.path}
 d
  e
 EOD

Modified: subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_fs.rb
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_fs.rb?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_fs.rb (original)
+++ subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_fs.rb Tue Dec 13 12:36:55 2016
@@ -358,7 +358,7 @@ class SvnFsTest < Test::Unit::TestCase
     src = "a\nb\nc\nd\ne\n"
     modified = "A\nb\nc\nd\nE\n"
     result = "a\n\n\n\ne\n"
-    expected = "A\n\n\n\nE\n"
+    expected = "<<<<<<< .mine\nA\nb\nc\nd\n||||||| .r1\na\nb\nc\nd\n=======\na\n\n\n\n>>>>>>> .r2\nE\n"
     path_in_repos = "/#{file}"
     path = File.join(@wc_path, file)
 
@@ -378,6 +378,10 @@ class SvnFsTest < Test::Unit::TestCase
       ctx.up(@wc_path)
       assert_equal(expected, File.open(path){|f| f.read})
 
+      ctx.resolve(:path=>@wc_path,
+                  :conflict_choice=>Svn::Wc::CONFLICT_CHOOSE_THEIRS_CONFLICT)
+      expected = "a\n\n\n\nE\n"
+
       rev2 = ctx.ci(@wc_path).revision
       if use_deprecated_api
         stream = @fs.root(rev2).file_delta_stream(@fs.root(rev1),

Modified: subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_repos.rb
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_repos.rb?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_repos.rb (original)
+++ subversion/branches/ra-git/subversion/bindings/swig/ruby/test/test_repos.rb Tue Dec 13 12:36:55 2016
@@ -679,7 +679,7 @@ class SvnReposTest < Test::Unit::TestCas
       dest_path = File.join(@tmp_path, "dest")
       Svn::Repos.create(dest_path) do |repos|
         assert_raises(NoMethodError) do
-          repos.load_fs(nil)
+          repos.load_fs(Object.new)
         end
       end
 

Modified: subversion/branches/ra-git/subversion/include/private/svn_log.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/private/svn_log.h?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/private/svn_log.h (original)
+++ subversion/branches/ra-git/subversion/include/private/svn_log.h Tue Dec 13 12:36:55 2016
@@ -253,6 +253,17 @@ const char *
 svn_log__get_inherited_props(const char *path,
                              svn_revnum_t rev,
                              apr_pool_t *pool);
+
+/**
+ * Return a log string for a list action.
+ *
+ * @since New in 1.10.
+ */
+const char *
+svn_log__list(const char *path, svn_revnum_t revision,
+              apr_array_header_t *patterns, svn_depth_t depth,
+              apr_uint64_t dirent_fields, apr_pool_t *pool);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/branches/ra-git/subversion/include/private/svn_ra_svn_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/private/svn_ra_svn_private.h?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/private/svn_ra_svn_private.h (original)
+++ subversion/branches/ra-git/subversion/include/private/svn_ra_svn_private.h Tue Dec 13 12:36:55 2016
@@ -254,10 +254,10 @@ svn_ra_svn__flush(svn_ra_svn_conn_t *con
  * to transmit an array or other unusual data.  For example, to write
  * a tuple containing a revision, an array of words, and a boolean:
  * @code
-     SVN_ERR(svn_ra_svn_write_tuple(conn, pool, "r(!", rev));
+     SVN_ERR(svn_ra_svn__write_tuple(conn, pool, "r(!", rev));
      for (i = 0; i < n; i++)
-       SVN_ERR(svn_ra_svn_write_word(conn, pool, words[i]));
-     SVN_ERR(svn_ra_svn_write_tuple(conn, pool, "!)b", flag)); @endcode
+       SVN_ERR(svn_ra_svn__write_word(conn, pool, words[i]));
+     SVN_ERR(svn_ra_svn__write_tuple(conn, pool, "!)b", flag)); @endcode
  */
 svn_error_t *
 svn_ra_svn__write_tuple(svn_ra_svn_conn_t *conn,
@@ -314,9 +314,9 @@ svn_ra_svn__skip_leading_garbage(svn_ra_
  *
  * If an optional part of a tuple contains no data, 'r' values will be
  * set to @c SVN_INVALID_REVNUM; 'n' and 'B' values will be set to
- * #SVN_RA_SVN_UNSPECIFIED_NUMBER; 's', 'c', 'w', and 'l' values
- * will be set to @c NULL; and '3' values will be set to #svn_tristate_unknown
- * 'b' may not appear inside an optional tuple specification; use '3' instead.
+ * #SVN_RA_SVN_UNSPECIFIED_NUMBER; 's', 'c', 'w', and 'l' values will
+ * be set to @c NULL; '3' values will be set to #svn_tristate_unknown;
+ * and 'b' values will be set to @c FALSE.
  */
 svn_error_t *
 svn_ra_svn__parse_tuple(const svn_ra_svn__list_t *list,
@@ -1008,6 +1008,19 @@ svn_ra_svn__write_data_log_entry(svn_ra_
                                  svn_boolean_t invalid_revnum,
                                  unsigned revprop_count);
 
+/** Send a directory entry @a dirent for @a path over connection @a conn.
+ * Use @a pool for allocations.
+ *
+ * Depending on the flags in @a dirent_fields, only selected elements will
+ * be transmitted.
+ */
+svn_error_t *
+svn_ra_svn__write_dirent(svn_ra_svn_conn_t *conn,
+                         apr_pool_t *pool,
+                         const char *path,
+                         svn_dirent_t *dirent,
+                         apr_uint64_t dirent_fields);
+
 /**
  * @}
  */

Modified: subversion/branches/ra-git/subversion/include/private/svn_utf_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/private/svn_utf_private.h?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/private/svn_utf_private.h (original)
+++ subversion/branches/ra-git/subversion/include/private/svn_utf_private.h Tue Dec 13 12:36:55 2016
@@ -198,7 +198,7 @@ svn_utf__encode_ucs4_string(svn_membuf_t
                             apr_size_t length,
                             apr_size_t *result_length);
 
-/* Pattern matching similar to the the SQLite LIKE and GLOB
+/* Pattern matching similar to the SQLite LIKE and GLOB
  * operators. PATTERN, KEY and ESCAPE must all point to UTF-8
  * strings. Furthermore, ESCAPE, if provided, must be a character from
  * the ASCII subset.

Modified: subversion/branches/ra-git/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/private/svn_wc_private.h?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/ra-git/subversion/include/private/svn_wc_private.h Tue Dec 13 12:36:55 2016
@@ -1894,22 +1894,22 @@ svn_wc__conflict_tree_update_moved_away_
                                              apr_pool_t *scratch_pool);
 
 /* Merge local changes from a tree conflict victim of an incoming deletion
- * to the specified DEST_ABSPATH. Both LOCAL_ABSPATH and DEST_ABSPATH must
- * be directories.
+ * to the specified DEST_ABSPATH added during an update. Both LOCAL_ABSPATH
+ * and DEST_ABSPATH must be directories.
  *
- * Assuming DEST_ABSPATH is the correct destination, this function allows
- * local changes to "follow" incoming moves.
+ * Assuming DEST_ABSPATH is the correct move destination, this function
+ * allows local changes to "follow" incoming moves during updates.
  *
  * @since New in 1.10. */
 svn_error_t *
-svn_wc__conflict_tree_merge_local_changes(svn_wc_context_t *wc_ctx,
-                                          const char *local_abspath,
-                                          const char *dest_abspath,
-                                          svn_cancel_func_t cancel_func,
-                                          void *cancel_baton,
-                                          svn_wc_notify_func2_t notify_func,
-                                          void *notify_baton,
-                                          apr_pool_t *scratch_pool);
+svn_wc__conflict_tree_update_incoming_move(svn_wc_context_t *wc_ctx,
+                                           const char *local_abspath,
+                                           const char *dest_abspath,
+                                           svn_cancel_func_t cancel_func,
+                                           void *cancel_baton,
+                                           svn_wc_notify_func2_t notify_func,
+                                           void *notify_baton,
+                                           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.

Modified: subversion/branches/ra-git/subversion/include/svn_checksum.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/svn_checksum.h?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/svn_checksum.h (original)
+++ subversion/branches/ra-git/subversion/include/svn_checksum.h Tue Dec 13 12:36:55 2016
@@ -177,6 +177,10 @@ svn_checksum_deserialize(const svn_check
  *
  * @since New in 1.6.
  */
+/* ### TODO: When revving this, make it set @a *checksum to a non-NULL struct
+ * ###       when @a hex is the all-zeroes checksum.  See
+ * ### http://mail-archives.apache.org/mod_mbox/subversion-dev/201609.mbox/%3c00cd26ab-bdb3-67b4-ca6b-063266493874%40apache.org%3e
+ */
 svn_error_t *
 svn_checksum_parse_hex(svn_checksum_t **checksum,
                        svn_checksum_kind_t kind,

Modified: subversion/branches/ra-git/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/svn_client.h?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/svn_client.h (original)
+++ subversion/branches/ra-git/subversion/include/svn_client.h Tue Dec 13 12:36:55 2016
@@ -4411,7 +4411,6 @@ typedef enum svn_client_conflict_option_
 
   /* Options for incoming file add vs local file add or obstruction. */
   svn_client_conflict_option_incoming_added_file_text_merge,
-  svn_client_conflict_option_incoming_added_file_replace,
   svn_client_conflict_option_incoming_added_file_replace_and_merge,
 
   /* Options for incoming dir add vs local dir add or obstruction. */
@@ -4427,6 +4426,8 @@ typedef enum svn_client_conflict_option_
   svn_client_conflict_option_incoming_move_file_text_merge,
   svn_client_conflict_option_incoming_move_dir_merge,
 
+  /* Options for local move vs incoming edit on merge. */
+  svn_client_conflict_option_local_move_file_text_merge
 } svn_client_conflict_option_id_t;
 
 /**
@@ -4719,6 +4720,20 @@ svn_client_conflict_option_id_t
 svn_client_conflict_option_get_id(svn_client_conflict_option_t *option);
 
 /**
+ * Return a textual human-readable label of @a option, allocated in
+ * @a result_pool. The label is encoded in UTF-8 and usually
+ * contains up to three words.
+ *
+ * Additionally, the label may be localized to the language used
+ * by the current locale.
+ *
+ * @since New in 1.10.
+ */
+const char *
+svn_client_conflict_option_get_label(svn_client_conflict_option_t *option,
+                                     apr_pool_t *result_pool);
+
+/**
  * Return a textual human-readable description of @a option, allocated in
  * @a result_pool. The description is encoded in UTF-8 and may contain
  * multiple lines separated by @c APR_EOL_STR.
@@ -4728,11 +4743,9 @@ svn_client_conflict_option_get_id(svn_cl
  *
  * @since New in 1.10.
  */
-svn_error_t *
-svn_client_conflict_option_describe(const char **description,
-                                    svn_client_conflict_option_t *option,
-                                    apr_pool_t *result_pool,
-                                    apr_pool_t *scratch_pool);
+const char *
+svn_client_conflict_option_get_description(svn_client_conflict_option_t *option,
+                                           apr_pool_t *result_pool);
 
 /**
  * Return the absolute path to the conflicted working copy node described
@@ -6389,13 +6402,18 @@ typedef svn_error_t *(*svn_client_list_f
  * its children.  If @a path_or_url is non-existent, return
  * #SVN_ERR_FS_NOT_FOUND.
  *
+ * If the @a pattern array of <tt>const char *</tt> is not @c NULL, only
+ * report paths whose last segment matches one of the specified glob
+ * patterns.  This does not affect the size of the tree nor the number of
+ * externals being covered.
+ *
  * If @a fetch_locks is TRUE, include locks when reporting directory entries.
  *
  * If @a include_externals is TRUE, also list all external items
  * reached by recursion. @a depth value passed to the original list target
  * applies for the externals also.
  *
- * Use @a pool for temporary allocations.
+ * Use @a scratch_pool for temporary allocations.
  *
  * Use authentication baton cached in @a ctx to authenticate against the
  * repository.
@@ -6411,8 +6429,29 @@ typedef svn_error_t *(*svn_client_list_f
  * otherwise simply bitwise OR together the combination of @c SVN_DIRENT_
  * fields you care about.
  *
+ * @since New in 1.10.
+ */
+svn_error_t *
+svn_client_list4(const char *path_or_url,
+                 const svn_opt_revision_t *peg_revision,
+                 const svn_opt_revision_t *revision,
+                 apr_array_header_t *patterns,
+                 svn_depth_t depth,
+                 apr_uint32_t dirent_fields,
+                 svn_boolean_t fetch_locks,
+                 svn_boolean_t include_externals,
+                 svn_client_list_func2_t list_func,
+                 void *baton,
+                 svn_client_ctx_t *ctx,
+                 apr_pool_t *scratch_pool);
+
+/** Similar to svn_client_list4(), but with @a patterm set to @c NULL.
+ *
  * @since New in 1.8.
+ *
+ * @deprecated Provided for backwards compatibility with the 1.9 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_client_list3(const char *path_or_url,
                  const svn_opt_revision_t *peg_revision,
@@ -6430,9 +6469,9 @@ svn_client_list3(const char *path_or_url
 /** Similar to svn_client_list3(), but with @a include_externals set
  * to FALSE, and using a #svn_client_list_func_t as callback.
  *
- * @deprecated Provided for backwards compatibility with the 1.7 API.
- *
  * @since New in 1.5.
+ *
+ * @deprecated Provided for backwards compatibility with the 1.7 API.
  */
 SVN_DEPRECATED
 svn_error_t *

Modified: subversion/branches/ra-git/subversion/include/svn_fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/svn_fs.h?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/svn_fs.h (original)
+++ subversion/branches/ra-git/subversion/include/svn_fs.h Tue Dec 13 12:36:55 2016
@@ -2743,7 +2743,7 @@ svn_fs_deltify_revision(svn_fs_t *fs,
  * as old as the last barrier.
  *
  * The intended use of this is implementing efficient queries in upper layers
- * where the result only needs to include all changes up the the start of
+ * where the result only needs to include all changes up to the start of
  * that query but does not need to pick up on changes while the query is
  * running:
  *

Modified: subversion/branches/ra-git/subversion/include/svn_ra.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/svn_ra.h?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/svn_ra.h (original)
+++ subversion/branches/ra-git/subversion/include/svn_ra.h Tue Dec 13 12:36:55 2016
@@ -1153,6 +1153,70 @@ svn_ra_get_dir(svn_ra_session_t *session
                apr_pool_t *pool);
 
 /**
+ * Callback type to be used with @c svn_repos_list.  It will be invoked for
+ * every directory entry found.
+ *
+ * The full path of the entry is given in @a path and @a dirent contains
+ * various additional information.  If @c svn_repos_list has been called
+ * with @a path_info_only set, only the @a kind element of this struct
+ * will be valid.
+ *
+ * @a baton is the user-provided receiver baton.  @a scratch_pool may be
+ * used for temporary allocations.
+ *
+ * @since New in 1.10.
+ */
+typedef svn_error_t *(* svn_ra_dirent_receiver_t)(const char *rel_path,
+                                                  svn_dirent_t *dirent,
+                                                  void *baton,
+                                                  apr_pool_t *scratch_pool);
+
+/**
+ * Efficiently list everything within a sub-tree.  Specify a glob pattern
+ * to search for specific files and folders.
+ *
+ * Walk the sub-tree starting at @a path under @a root up to the given
+ * @a depth.  For each directory entry found, @a receiver will be called
+ * with @a receiver_baton.  The starting @a path will be reported as well.
+ * Because retrieving all elements of a @c svn_dirent_t can be expensive,
+ * you may set @a path_info_only to receive only the path name and the node
+ * kind.
+ *
+ * @a patterns is an optional array of <tt>const char *</tt>.  If it is
+ * not @c NULL, only those directory entries will be reported whose last
+ * path segment matches at least one of these patterns.  This feature uses
+ * @c apr_fnmatch for glob matching and requiring '.' to matched by dots
+ * in the path.
+ *
+ * If @a authz_read_func is not @c NULL, this function will neither report
+ * entries nor recurse into directories that the user has no access to.
+ *
+ * Cancellation support is provided in the usual way through the optional
+ * @a cancel_func and @a cancel_baton.
+ *
+ * @a path must point to a directory and @a depth must be at least
+ * @c svn_depth_empty.
+ *
+ * If the server doesn't support the 'list' command, return
+ * @c SVN_ERR_UNSUPPORTED_FEATURE in preference to any other error that
+ * might otherwise be returned.
+ *
+ * Use @a scratch_pool for temporary memory allocation.
+ *
+ * @since New in 1.10.
+ */
+svn_error_t *
+svn_ra_list(svn_ra_session_t *session,
+            const char *path,
+            svn_revnum_t revision,
+            apr_array_header_t *patterns,
+            svn_depth_t depth,
+            apr_uint32_t dirent_fields,
+            svn_ra_dirent_receiver_t receiver,
+            void *receiver_baton,
+            apr_pool_t *scratch_pool);
+
+/**
  * Set @a *catalog to a mergeinfo catalog for the paths in @a paths.
  * If no mergeinfo is available, set @a *catalog to @c NULL.  The
  * requested mergeinfo hashes are for @a paths (which are relative to
@@ -2198,6 +2262,13 @@ svn_ra_has_capability(svn_ra_session_t *
  */
 #define SVN_RA_CAPABILITY_GET_FILE_REVS_REVERSE "get-file-revs-reversed"
 
+/**
+ * The capability of a server to understand the list command.
+ *
+ * @since New in 1.10.
+ */
+#define SVN_RA_CAPABILITY_LIST "list"
+
 
 /*       *** PLEASE READ THIS IF YOU ADD A NEW CAPABILITY ***
  *

Modified: subversion/branches/ra-git/subversion/include/svn_ra_svn.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/svn_ra_svn.h?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/svn_ra_svn.h (original)
+++ subversion/branches/ra-git/subversion/include/svn_ra_svn.h Tue Dec 13 12:36:55 2016
@@ -68,6 +68,8 @@ extern "C" {
 #define SVN_RA_SVN_CAP_EPHEMERAL_TXNPROPS "ephemeral-txnprops"
 /* maps to SVN_RA_CAPABILITY_GET_FILE_REVS_REVERSE */
 #define SVN_RA_SVN_CAP_GET_FILE_REVS_REVERSE "file-revs-reverse"
+/* maps to SVN_RA_CAPABILITY_LIST */
+#define SVN_RA_SVN_CAP_LIST "list"
 
 
 /** ra_svn passes @c svn_dirent_t fields over the wire as a list of

Modified: subversion/branches/ra-git/subversion/include/svn_repos.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/svn_repos.h?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/svn_repos.h (original)
+++ subversion/branches/ra-git/subversion/include/svn_repos.h Tue Dec 13 12:36:55 2016
@@ -1707,6 +1707,68 @@ svn_repos_stat(svn_dirent_t **dirent,
                const char *path,
                apr_pool_t *pool);
 
+/**
+ * Callback type to be used with @c svn_repos_list.  It will be invoked for
+ * every directory entry found.
+ *
+ * The full path of the entry is given in @a path and @a dirent contains
+ * various additional information.  If @c svn_repos_list has been called
+ * with @a path_info_only set, only the @a kind element of this struct
+ * will be valid.
+ *
+ * @a baton is the user-provided receiver baton.  @a scratch_pool may be
+ * used for temporary allocations.
+ *
+ * @since New in 1.10.
+ */
+typedef svn_error_t *(* svn_repos_dirent_receiver_t)(const char *path,
+                                                     svn_dirent_t *dirent,
+                                                     void *baton,
+                                                     apr_pool_t *scratch_pool);
+
+/**
+ * Efficiently list everything within a sub-tree.  Specify glob patterns
+ * to search for specific files and folders.
+ *
+ * Walk the sub-tree starting at @a path under @a root up to the given
+ * @a depth.  For each directory entry found, @a receiver will be called
+ * with @a receiver_baton.  The starting @a path will be reported as well.
+ * Because retrieving all elements of a @c svn_dirent_t can be expensive,
+ * you may set @a path_info_only to receive only the path name and the node
+ * kind.  The entries will be reported ordered by their path.
+ *
+ * @a patterns is an optional array of <tt>const char *</tt>.  If it is
+ * not @c NULL, only those directory entries will be reported whose last
+ * path segment matches at least one of these patterns.  This feature uses
+ * @c apr_fnmatch for glob matching and requiring '.' to matched by dots
+ * in the path.
+ *
+ * If @a authz_read_func is not @c NULL, this function will neither report
+ * entries nor recurse into directories that the user has no access to.
+ *
+ * Cancellation support is provided in the usual way through the optional
+ * @a cancel_func and @a cancel_baton.
+ *
+ * @a path must point to a directory and @a depth must be at least
+ * @c svn_depth_empty.
+ *
+ * Use @a scratch_pool for temporary memory allocation.
+ *
+ * @since New in 1.10.
+ */
+svn_error_t *
+svn_repos_list(svn_fs_root_t *root,
+               const char *path,
+               apr_array_header_t *patterns,
+               svn_depth_t depth,
+               svn_boolean_t path_info_only,
+               svn_repos_authz_func_t authz_read_func,
+               void *authz_read_baton,
+               svn_repos_dirent_receiver_t receiver,
+               void *receiver_baton,
+               svn_cancel_func_t cancel_func,
+               void *cancel_baton,
+               apr_pool_t *scratch_pool);
 
 /**
  * Given @a path which exists at revision @a start in @a fs, set

Modified: subversion/branches/ra-git/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/svn_wc.h?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/svn_wc.h (original)
+++ subversion/branches/ra-git/subversion/include/svn_wc.h Tue Dec 13 12:36:55 2016
@@ -1303,7 +1303,7 @@ typedef enum svn_wc_notify_action_t
 
   /** Done searching the repository for details about a conflict.
    * @since New in 1.10. */
-  svn_wc_notify_end_search_tree_conflict_details,
+  svn_wc_notify_end_search_tree_conflict_details
 
 } svn_wc_notify_action_t;
 
@@ -4578,7 +4578,7 @@ svn_wc_move(svn_wc_context_t *wc_ctx,
  * and everything below @a local_abspath.
  *
  * If @a keep_local is FALSE, this function immediately deletes all files,
- * modified and unmodified, versioned and of @a delete_unversioned is TRUE,
+ * modified and unmodified, versioned and if @a delete_unversioned is TRUE,
  * unversioned from the working copy.
  * It also immediately deletes unversioned directories and directories that
  * are scheduled to be added below @a local_abspath.  Only versioned may

Modified: subversion/branches/ra-git/subversion/include/svn_xml.h
URL: http://svn.apache.org/viewvc/subversion/branches/ra-git/subversion/include/svn_xml.h?rev=1773992&r1=1773991&r2=1773992&view=diff
==============================================================================
--- subversion/branches/ra-git/subversion/include/svn_xml.h (original)
+++ subversion/branches/ra-git/subversion/include/svn_xml.h Tue Dec 13 12:36:55 2016
@@ -169,7 +169,15 @@ typedef void (*svn_xml_char_data)(void *
                                   apr_size_t len);
 
 
-/** Create a general Subversion XML parser */
+/** Create a general Subversion XML parser.
+ *
+ * The @c svn_xml_parser_t object itself will be allocated from @a pool,
+ * but some internal structures may be allocated out of pool.  Use
+ * svn_xml_free_parser() to free all memory used by the parser.
+ *
+ * Since Subversion 1.10 parser will be freed automatically on pool
+ * cleanup or by svn_xml_free_parser() call.
+ */
 svn_xml_parser_t *
 svn_xml_make_parser(void *baton,
                     svn_xml_start_elem start_handler,