Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 1D0BB200BDA for ; Tue, 13 Dec 2016 13:37:02 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 1BB94160B39; Tue, 13 Dec 2016 12:37:02 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 5E100160B23 for ; Tue, 13 Dec 2016 13:37:00 +0100 (CET) Received: (qmail 46431 invoked by uid 500); 13 Dec 2016 12:36:59 -0000 Mailing-List: contact commits-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@subversion.apache.org Delivered-To: mailing list commits@subversion.apache.org Received: (qmail 46403 invoked by uid 99); 13 Dec 2016 12:36:59 -0000 Received: from Unknown (HELO svn01-us-west.apache.org) (209.188.14.144) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Dec 2016 12:36:59 +0000 Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id 6643F3A00B7 for ; Tue, 13 Dec 2016 12:36:58 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: 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... Date: Tue, 13 Dec 2016 12:36:57 -0000 To: commits@subversion.apache.org From: rhuijben@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20161213123658.6643F3A00B7@svn01-us-west.apache.org> archived-at: Tue, 13 Dec 2016 12:37:02 -0000 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 mbk Mark Benedetto King jaa Jani Averbach - julianfoad Julian Foad + julianfoad Julian Foad jszakmeister John Szakmeister ehu Erik Hülsmann breser Ben Reser maxb Max Bowsher dberlin Daniel Berlin danderson David Anderson - ivan Ivan Zhakov djames David James pburba Paul Burba glasser David Glasser @@ -78,6 +77,7 @@ Full committers who have asked to be lis malcolm Malcolm Rowe naked Nuutti Kotivuori ringstrom Tobias Ringström + ivan Ivan Zhakov 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 const char * 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 const char *. 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 const char *. 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,