You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2015/03/09 10:53:09 UTC

svn commit: r1665166 [1/5] - in /subversion/branches/move-tracking-2: ./ subversion/ subversion/bindings/javahl/native/ subversion/bindings/javahl/native/jniwrapper/ subversion/bindings/javahl/tests/org/apache/subversion/javahl/ subversion/bindings/swi...

Author: julianfoad
Date: Mon Mar  9 09:53:06 2015
New Revision: 1665166

URL: http://svn.apache.org/r1665166
Log:
On the 'move-tracking-2' branch: catch up with trunk@1665165.

Added:
    subversion/branches/move-tracking-2/subversion/bindings/javahl/tests/org/apache/subversion/javahl/ExceptionTests.java
      - copied unchanged from r1665165, subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/ExceptionTests.java
    subversion/branches/move-tracking-2/subversion/libsvn_subr/pools.h
      - copied unchanged from r1665165, subversion/trunk/subversion/libsvn_subr/pools.h
    subversion/branches/move-tracking-2/subversion/tests/cmdline/upgrade_tests_data/wc-without-stat1.tar.bz2
      - copied unchanged from r1665165, subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/wc-without-stat1.tar.bz2
Modified:
    subversion/branches/move-tracking-2/   (props changed)
    subversion/branches/move-tracking-2/CHANGES   (contents, props changed)
    subversion/branches/move-tracking-2/build.conf   (contents, props changed)
    subversion/branches/move-tracking-2/subversion/   (props changed)
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/BlameCallback.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/CommitCallback.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/CommitMessage.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/EditorProxy.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/InfoCallback.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/Iterator.h
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/JNIUtil.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/JNIUtil.h
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/ListCallback.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/LogMessageCallback.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/OperationContext.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/PatchCallback.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/ProplistCallback.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/ReposFreezeAction.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/StateReporter.h
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/StatusCallback.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/tests/org/apache/subversion/javahl/RunTests.java
    subversion/branches/move-tracking-2/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
    subversion/branches/move-tracking-2/subversion/include/private/svn_auth_private.h
    subversion/branches/move-tracking-2/subversion/include/private/svn_dep_compat.h
    subversion/branches/move-tracking-2/subversion/include/private/svn_sorts_private.h
    subversion/branches/move-tracking-2/subversion/include/svn_hash.h
    subversion/branches/move-tracking-2/subversion/include/svn_opt.h
    subversion/branches/move-tracking-2/subversion/libsvn_client/copy.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs/fs-loader.c
    subversion/branches/move-tracking-2/subversion/libsvn_fs/fs-loader.h
    subversion/branches/move-tracking-2/subversion/libsvn_fs_base/revs-txns.c
    subversion/branches/move-tracking-2/subversion/libsvn_ra/ra_loader.c
    subversion/branches/move-tracking-2/subversion/libsvn_ra/ra_loader.h
    subversion/branches/move-tracking-2/subversion/libsvn_ra/wrapper_template.h
    subversion/branches/move-tracking-2/subversion/libsvn_ra_local/ra_local.h
    subversion/branches/move-tracking-2/subversion/libsvn_ra_local/ra_plugin.c
    subversion/branches/move-tracking-2/subversion/libsvn_ra_serf/commit.c
    subversion/branches/move-tracking-2/subversion/libsvn_ra_serf/merge.c
    subversion/branches/move-tracking-2/subversion/libsvn_ra_serf/ra_serf.h
    subversion/branches/move-tracking-2/subversion/libsvn_ra_serf/serf.c
    subversion/branches/move-tracking-2/subversion/libsvn_ra_serf/util.c
    subversion/branches/move-tracking-2/subversion/libsvn_ra_svn/client.c
    subversion/branches/move-tracking-2/subversion/libsvn_ra_svn/cyrus_auth.c
    subversion/branches/move-tracking-2/subversion/libsvn_ra_svn/editorp.c
    subversion/branches/move-tracking-2/subversion/libsvn_ra_svn/internal_auth.c
    subversion/branches/move-tracking-2/subversion/libsvn_ra_svn/ra_svn.h
    subversion/branches/move-tracking-2/subversion/libsvn_repos/commit.c
    subversion/branches/move-tracking-2/subversion/libsvn_repos/rev_hunt.c
    subversion/branches/move-tracking-2/subversion/libsvn_subr/auth.c
    subversion/branches/move-tracking-2/subversion/libsvn_subr/config_win.c
    subversion/branches/move-tracking-2/subversion/libsvn_subr/error.c
    subversion/branches/move-tracking-2/subversion/libsvn_subr/hash.c
    subversion/branches/move-tracking-2/subversion/libsvn_subr/pool.c
    subversion/branches/move-tracking-2/subversion/libsvn_subr/sqlite.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/conflicts.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/externals.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/status.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/update_editor.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/wc-queries.sql
    subversion/branches/move-tracking-2/subversion/libsvn_wc/wc.h
    subversion/branches/move-tracking-2/subversion/libsvn_wc/wc_db.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/wc_db.h
    subversion/branches/move-tracking-2/subversion/libsvn_wc/wc_db_update_move.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/wc_db_wcroot.c
    subversion/branches/move-tracking-2/subversion/mod_dav_svn/repos.c
    subversion/branches/move-tracking-2/subversion/po/de.po
    subversion/branches/move-tracking-2/subversion/svn/info-cmd.c
    subversion/branches/move-tracking-2/subversion/svnrdump/load_editor.c
    subversion/branches/move-tracking-2/subversion/tests/cmdline/copy_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/entries-dump.c
    subversion/branches/move-tracking-2/subversion/tests/cmdline/externals_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/lock_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/stat_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/svnlook_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/svnsync_authz_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/svnsync_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/svntest/main.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/svntest/sandbox.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/svntest/wc.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/upgrade_tests.py
    subversion/branches/move-tracking-2/subversion/tests/libsvn_fs/fs-test.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_ra/ra-test.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_wc/conflict-data-test.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_wc/utils.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_wc/utils.h
    subversion/branches/move-tracking-2/subversion/tests/libsvn_wc/wc-queries-test.c
    subversion/branches/move-tracking-2/subversion/tests/svn_test_main.c
    subversion/branches/move-tracking-2/tools/   (props changed)
    subversion/branches/move-tracking-2/tools/dist/backport.pl
    subversion/branches/move-tracking-2/tools/dist/backport_branch_with_original_revision.dump

Propchange: subversion/branches/move-tracking-2/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Mar  9 09:53:06 2015
@@ -88,4 +88,4 @@
 /subversion/branches/verify-at-commit:1462039-1462408
 /subversion/branches/verify-keep-going:1439280-1546110
 /subversion/branches/wc-collate-path:1402685-1480384
-/subversion/trunk:1606692-1663280
+/subversion/trunk:1606692-1663280,1663281-1665165*

Modified: subversion/branches/move-tracking-2/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/CHANGES?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/CHANGES (original)
+++ subversion/branches/move-tracking-2/CHANGES Mon Mar  9 09:53:06 2015
@@ -8,27 +8,26 @@ http://svn.apache.org/repos/asf/subversi
     * flush stdout before exiting to avoid information being lost (r1543868)
 
   - Major new features:
-    * membuffer: virtually perfect short-term cache efficiency (r1476664 et at)
-    * membuffer: quadruple the maximum cacheable directory size (r1545948 et al)
+    * fsfs: new format 7 with more efficient on-disk layout (r1547045 et al)
     * resolve: improve interactive conflict resolution menus
     * blame: support showing prospective as well as previous changes
     * info: support printing of individual values with --show-item (r1662620)
     * svn auth: new subcommand to manage cached credentials and certs
+    * svnserve: cache config and authz to lower resource usage and be able to
+      serve large numbers of connections with a limited number of threads
+    * membuffer: quadruple the maximum cacheable directory size (r1545948 et al)
     * new experimental filesystem fsx (faster, smaller)
-    * svnserve: cache config, authz and repos to lower resource usage and
-      be able to serve large numbers of connections with a limited number
-      of threads.
-    * fsfs: new format 7 with more efficient logical addressing (r1547045 et al)
 
   - Minor new features and improvements:
-    * new 'diff-ignore-content-type' runtime configuration option.
-    * new option for 'svnadmin verify': --check-normalization.
-    * new option for 'svnadmin verify': --keep-going.
-    * svnadmin info: print info about a repository.
-    * print summary of conflicts before/after interactive conflict resolution.
-    * import: reduce number of connections to the server needed. (r1482962)
+    * new 'diff-ignore-content-type' runtime configuration option
+    * new option for 'svnadmin verify': --check-normalization
+    * new option for 'svnadmin verify': --keep-going
+    * svnadmin info: print info about a repository
+    * print summary of conflicts before/after interactive conflict resolution
+    * import: reduce number of connections to the server needed (r1482962)
+    * membuffer: rework cache eviction heuristics (r1476664 et at)
     * membuffer: improved cache usage statistics (r1489883)
-    * mergeinfo: New '--log' option (r1492168)
+    * mergeinfo: new '--log' option (r1492168)
     * svnadmin upgrade: progress and cancellation support (r1495545, r1495566)
     * cleanup: add '--remove-unversioned' and '--remove-ignore' (issue #3549)
     * cleanup: add '--include-externals' option (issue #2325)
@@ -40,33 +39,30 @@ http://svn.apache.org/repos/asf/subversi
     * svnadmin verify: speed up for repos with large directories (r1520419)
     * merge: interactive conflict merge option tries external tools (r1524145)
     * minor speed up in string to time conversion (r1533387)
-    * list: remove some unnecessary work from implementation (r1533392)
     * windows: speed up console output (r1533994)
-    * update: optimize wc db usage (r1537065 et al)
+    * update: optimize wc db usage when obtaining children (r1537065 et al)
     * decreased overhead for case-sensitive configuration access (r1538068)
     * avoid re-opening repo for in-repo authz if already open (r1538120)
-    * only use revprop caching if supported efficiently (r1543593)
     * svnserve: output errors in a more standard way (r1544250)
     * faster parsing of config file comments (r1544716)
     * avoid trying to open the hooks-env file when it doesn't exist (r1544721)
     * svnserve: provide the same logging detail in "run once" mode as provided
       in the log file (r1544731)
     * svnserve: reduce connection latency (r1544732)
-    * wc: optimize SQLite queries against wc db (r154511)
     * wc: reduce the number of locks and transactions required (r1545127 et al)
     * cat: add '--ignore-keywords' option (r1547517)
     * merge and mergeinfo: use fewer ra sessions (r1552265)
     * fsfs: limit delta chains from crossing too many shards (r1554942)
     * fsfs: option to configure compression level in deltas (r1559748)
-    * fsfs: enable dir and prop deltas and compressed revprops by default for
-      fsfs formats that support it (r1555286)
+    * fsfs: enable dir and prop deltas by default for formats that support
+      it (r1555286)
     * fsfs: avoid out of date errors from files in a directory changing when
       you change a property on the directory (r1558224)
     * fsfs: temporary transaction properties are preserved when commit is
       interrupted (r1549907 et al)
-    * fsfs: don't try to read revprops for a new transaction (r1544719)
-    * fsfs: avoid trying to open digest files that don't exist (r1544721)
-    * fsfs: Use sorted array instead of hash for directory representation
+    * fsfs: speed up transaction creation (r1544719)
+    * fsfs: avoid trying to open lock digest files that don't exist (r1544721)
+    * fsfs: use sorted array instead of hash for directory representation
       internally, this minimizes some overhead (r1554711)
     * fsfs: skip decoding txdelta windows that are already cached (r1555284)
     * fsfs: avoid constructing fulltext when delta we need is stored (r1555297)
@@ -90,27 +86,26 @@ http://svn.apache.org/repos/asf/subversi
     * ra_serf: pipeline lock/unlock requests (r1551918, r1551993, r1552008)
     * ra_serf: pipeline requests for inherited properties against old servers
       that don't support the faster REPORT (r1552455, r1552475)
-    * ra_serf: allow reuse of sessions after a timeout (r1557686)
+    * ra_serf: allow reuse of sessions after a canceled request (r1557686)
     * ra_serf: reduce memory usage when retrieving revision props (r1557689)
-    * svnrdump dump: reduce memory footprint (r1557736)
     * mod_dav_svn: make out of date error message consistent with generic repos
       logic (r1558247)
-    * wc: allow SQLite to optimize functions that are deterministic (r1559352)
+    * allow SQLite to optimize functions that are deterministic (r1559352)
     * speed up delta calculations on non-deltifyable sections (r1559767)
     * ra_serf: improve memory usage in commit processing (r1520028)
     * report progress as cumulative across all sessions (issue #3260)
     * ra_serf: don't send DAV headers with GET requests (r1517472)
     * mod_dav_svn: SVNCacheTextDeltas defaults to on (r1517479)
-    * fs: improve scability of fs_open and similar functions (r1523450 et al)
-    * svnserve: improve performance and scability (r1523465 et al)
+    * fs: improve scalability of fs_open and similar functions (r1523450 et al)
+    * svnserve: improve performance and scalability (r1523465 et al)
     * svnadmin verify: output progress messages to stdout (r1471095)
     * svnadmin crashtest: make output less misleading (r1486046) 
     * mod_dav_svn: discover copy to src earlier in some cases (r1537440)
     * speed up mergeinfo parsing (r1483292, r1483309 et al)
-    * optimize hash lookups used throughout subversion (r1483434 et al)
+    * optimize hash lookups used in mergeinfo and caching (r1483434 et al)
     * log: optimize string handling in repos layer (r1483570, r1483572)
-    * ask hardware to sync instead of only syncing to hardware buffers when
-      OS supports it (r1484439, r1484445)
+    * ask disk hardware to sync instead of only syncing to hardware buffers
+      when OS supports it (r1484439, r1484445)
     * optimize diff code to avoid unneeded comparisons (r1485488)
     * optimize check if relpaths are canonical (r1485496, r1489828)
     * ra_svn: reduce protocol implementation overhead (r1485499, r1485504 et al)
@@ -120,12 +115,10 @@ http://svn.apache.org/repos/asf/subversi
     * use a cheaper ra operation for common client calculation (r1496468 et al)
     * ra_svn: avoid unnecessary work when doing a blame (r1503046)
     * optimize reading files into memory if size is known (r1505068)
-    * mod_authz_svn: log access denied messages as warnings (r1562417)
     * copy: do not error on properties when doing a foreign copy (r1563361)
     * membuffer: reduce memory usage by using shorter lived pools (r1564217)
     * svnadmin load: add '--ignore-dates' option (r1564789)
     * update: reduce sessions used with '--parents' option (r1565920)
-    * fix L1->L2 promotion/eviction heuristics for high hit counts (r1568599)
     * diff: report properties on deleted nodes (r1569320, r1570055)
     * diff: switch to diff processor APIs instead of old style callbacks, step
       towards resolving long standing bugs and feature requests (r1569551 et al)
@@ -135,11 +128,67 @@ http://svn.apache.org/repos/asf/subversi
     * svn --version: list available authentication credential caches (r1572106)
     * improved detection of changes between two nodes, this should reduce the
       number of out of date errors clients see (r1572336)
-    * alow the use of libmagic to be configured via subversion configuration
+    * allow the use of libmagic to be configured via subversion configuration
       file or SVN_CONFIG_OPTION_ENABLE_MAGIC_FILE env variable (r1572916)
-    * store human readable info about SSL certs in auth store (r1573625)
     * new '--pin-externals' option for svn copy (issue #1258)
     * the '--strict' option was replaced by '--no-newline' (r1662224)
+    * merge/update: switch to three-way text conflict markers
+      (r1591951, r1595522)
+    * patch: handle renames in git formatted patches (r1594636)
+    * svnfsfs: new expert tool (r1594860)
+    * mod_dav_svn: allow server admin to GET the FSFS global cache stats
+      (r1595160)
+    * patch: support of svn:mergeinfo (issue #3747)
+    * diff: support git-like binary file diffs with '--git' (r1599552)
+    * diff: support arbitrary context size for internal diff tool with
+      '-U' option (r1603847, 1603871)
+    * commit: print progress notification between client finishing
+      transmitting text deltas and asking server to commit (r1604179)
+    * fsfs: optimize log commands for repos on Windows by not
+      using a locale specific function to parse ids (r1605123)
+    * fsfs: reduce memory usage of reading/writing changed paths caches
+      (r1605188 et al)
+    * mod_dav_svn: log post-commit errors to httpd error log as well
+      as returning them to client (r1606004)
+    * make server config groups work with svn:// URLs (issue #4512)
+    * svnadmin hotcopy: report progress when copying revisions and packed
+      shards for FSFS repositories (r1613339)
+    * info: show revisions for missing tree conflicts (r1617932)
+    * fsfs: avoid shared data clashes due to multiple distinct repositories
+      having identical UUIDs (r1618138 et al)
+    * status: ignore thumbs.db files by default (r1620955)
+    * fsfs: harden parsers against data corruption
+      (r1622931, r1622937, r1622942)
+    * diff: translate files when doing arbitrary diffs (r1623820)
+    * ra_serf: reduce size of XML generated for reports (r1627333)
+    * replace generic --trust-server-cert with more specific options to
+      override specific certificate failures (r1630117 et al)
+    * commit: improve speed of commits with many files (r1630312 et al)
+    * svnadmin setrevprop: add '--transaction' option (r1631435)
+    * svnadmin delrevprop: add '--transaction' option (r1631435)
+    * svnadmin verify: validate the index data against checksums (r1631598)
+    * cp: improve performance of local copies (r1632284, et al)
+    * fsfs: speed up operations that use revision properties
+      (r1634875, r1634879)
+    * checkout/update: use fewer ra sessions (r1635753 et al)
+    * log: do less work when '--with-no-revprops' is used (r1642231)
+    * patch: improve command to be more capable as compared to GNU patch
+      (issue #4533)
+    * limit server caches to avoid running out of memory if server admin
+      configured caches largely then they can possibly be on the platform
+      (r1645572)
+    * mod_authz_svn: log implicit read access failures with INFO log level
+      Explicit read access failures are still logged with ERROR log level
+      (r1653032)
+    * ra_serf: reduce memory usage by removing some extra intermediary state
+      (r1654681, r1654690)
+    * revert: improve performance on large working copies without changes
+      (r1657083)
+    * ra_svn: improve efficiency of editor processing (r1658194 et al)
+    * merge: provide different conflict reasons for local additions and 
+      unversioned obstructions (r1659381)
+    * windows: improve checkout performance on windows by using sqlite truncate
+      journal mode rather than delete (r1659426)
 
   - Client-side bugfixes:
     * export: fix problem exporting symlinks on windows (r1476093)
@@ -159,7 +208,6 @@ http://svn.apache.org/repos/asf/subversi
     * mergeinfo: allow to work on a moved target (issue #4301)
     * windows: avoid delay when no homedir is available (r1546814)
     * status: report externals in a deterministic way (r1550200)
-    * verify requested cached credentials match realm requested (r1550691 et al)
     * copy: avoid an unneeded extra ra session for wc to repo case (r1551564)
     * ra_serf: show pre-revprop-change failure on revprop delete (issue #3086)
     * svnsync: avoid extra request at end of every revision sync (r1553370)
@@ -174,10 +222,8 @@ http://svn.apache.org/repos/asf/subversi
     * log: reduce performance penalties of using -g (r1559912)
     * blame: reduce performance penalties of using -g (r1560112)
     * ra_local: set svn:txn-user-agent for consistency (r1498608)
-    * ra_svn: use the stream api properly for communications (r1562072)
+    * ra_svn: use the stream API properly for communications (r1562072)
     * update: provide error when none of targets are wcs (r1565388)
-    * ra_serf: follow RFC 2818, ignore common name when subjectAltNames are
-      present (r1565531)
     * wc: reduce dependence on unspecified SQLite behavior (r1567080 et al)
     * diff: fix diff of directory failing without permissions to read ancester
       directory on server (r1569265, 1569290)
@@ -185,6 +231,72 @@ http://svn.apache.org/repos/asf/subversi
     * diff: fix bug in calculating header paths (r1570584)
     * ra_serf: add SSL certificate issuers common name to output (r1573728)
     * updates keywords in files not modified during 'svn switch' (issue #1975)
+    * svnmucc: Normalize line endings with '-F' and '-m' options
+      (r1592148, r1592150)
+    * fix problems with read-only authentication caches (issue #4504)
+    * commit: don't bump just locked files (r1603617)
+    * log: reduce memory with '-v' (r1604569 et al)
+    * diff: fix issuing diffing locally deleted nodes under copied directories
+      (r1605832)
+    * diff: fix missing node error when diffing a replaced node (r1605866)
+    * propget: forbid using 'show-inherited-properties' with 'strict' (r1611698)
+    * windows: avoid delay when user profile isn't writable (r1617926)
+    * merge: display the correct node kinds for tree conflicts
+      (r1618024, r1619418, r1619717)
+    * diff: show properties of a copied dir as diffs against copy not adds
+      (r1619380)
+    * diff: show the correct revisions in the header (r1619452)
+    * diff: fix missing header for files with only property changes (r1619476)
+    * update: raise a tree conflict rather than an obstruction when an
+      incoming server-excluded node conflicts with a locally added node
+      (r1619495)
+    * update: improve tree conflict reason and action descriptions (r1619777)
+    * ra_serf: fix stalls during checkout/update over http(s) (r1621596)
+    * svnmucc: don't crash when '--version' is used with other arguments
+      (r1625496)
+    * checkout: report external failures via the exit code as other commands
+      already do (r1628398)
+    * use the right error code when fputs() fails (r1630369)
+    * export: reject peg specifiers on local destination path (r1635085)
+    * don't reject command-line arguments in the form of ".@abc", where
+      "abc" is a peg specifier that may be empty (r1635118)
+    * fix directory externals not following history (issue #4529)
+    * remove 'df' and 'm' options from the interactive conflict resolver for
+      binary files (r1645578)
+    * when parsing mergeinfo allow source path to be empty (issue #4537)
+    * mkdir: when using '--parents' don't add entire contents recursively if
+      target already exists (r1649951)
+    * resolve errors with move of a nested delete (r1651980, r1651997)
+    * update: prevent breaking a working copy when a directory is replaced
+      with an external to a foreign repository (issue #4550)
+    * update: prevent an invalid wc state when applying a move (r1652184 et al)
+    * resolve: fix a segfault when breaking a move inside a delete
+      (issue #4491)
+    * ra_serf: don't handle a commit that didn't produce a new revision as
+      a successful commit (r1653532)
+    * export: fix the lack of notifications when starting to handle externals
+      (issue #4527)
+    * update: fix a case where we reported an error rather than a tree conflict
+      (r1655017)
+    * info: Use local platform style paths in all cases (r1659283)
+    * ra_serf: don't abort commits that have already succeeded in some corner
+      cases (r1659867)
+    * delete conflict markers of a moved file in the right location (r1660220)
+    * fix cases where we don't handle the lack of a configuration file
+      properly (r1660369)
+    * wc: don't believe there is a copy when doing a foreign repos copy
+      (r1660593)
+    * upgrade: fix corner cases found in wc upgrades (r1660646 et al)
+    * update: resolve issues with tree conflicts caused by an incoming
+      delete removing a mixed revision tree (r1660742)
+    * don't hold onto locks of deleted paths in the client on commit (r1661363)
+    * info: fix url calculation for a few statuses (r1661476)
+    * update: when using '--set-depth' avoid removing local changes (r1661585)
+    * update: fix tree conflict detection on unversioned nodes that exist where
+      there used to be a deleted node (r1661664)
+    * status: display tree conflicts even if the node with the tree conflict is
+      shadowed by a file (r1662331)
+    * entries compatibility: fix with obstructed working copies (r1662412)
 
   - Server-side bugfixes:
     * svnserve: don't ignore socket initialization errors (r1544253)
@@ -209,18 +321,72 @@ http://svn.apache.org/repos/asf/subversi
     * mod_dav_svn: avoid setting option headers multiple times (r1557103)
     * fsfs: prevent some commits that could cause future corruption (r1560673)
     * fsfs: fix a problem verifying pre-1.4 repos used with 1.8 (r1561419)
-    * fsfs: don't write uniquifiers for old repo formats (r1561426)
     * fsfs: fix hotcopy for pre-1.4 repositories (r1561427)
     * fix 64-bit underflows in update hit counters (r1567996 et al)
     * svnserve: fix potential integer overflow in Cyrus SASL support (r1570434)
     * bdb: fix potential integer overflow and underflow (r1570701)
     * bdb: prevent silent propogation of some corruption (r1570778)
+    * svnadmin delrevprop: new command (1592723)
+    * svnadmin verify: new option '--metadata-only' (r1593753)
+    * svnadmin hotcopy: do not corrupt db/current contents when copying old
+      FSFS repos (r1603485)
+    * svnadmin hotcopy: don't produce broken copies when a concurrent pack
+      happens (r1605633)
+    * log: reduce memory consumption of '-v' on the server (r1605195)
+    * mod_dav_svn: fix performance issue on Windows with named atomics
+      (r1611379)
+    * log: fix a SEGFAULT in handling changed paths (r1615364)
+    * mod_dav_svn: Properly forward post lock/unlock failures (r1622235)
+    * diff: fix handling of depth empty in added directories (r1622024)
+    * fix a segfault with corrupted changed path lists that try to add root
+      nodes (r1622944)
+    * svnadmin verify: report errors nicely rather than possibly aborting
+      (r1622955)
+    * svnlook pget: report transaction name rather than revision number in
+      errors if run with '-t' option (r1623317)
+    * svnadmin verify: prevent stack overflow conditions in corrupted
+      repositories (r1623398)
+    * svnadmin upgrade: fix an issue that could block an upgraded fsfs format
+      1 or 2 repository from being able to be committed to (r1624011)
+    * fix memory lifetime issue in fs backends (r1632646)
+    * bdb: output correct checksum in error message about corruption (r1640707)
+    * fsfs: fix a pool lifetime error related to transaction local caches
+      (r1643139, 1643233)
+    * fsfs: avoid "random DAG walks" during checkout over ra_serf (r1645567)
+    * fsfs/bdb: reduce memory use during tree deletions (r1647820, r1655022)
+    * mod_authz_svn: fix unbounded memory use when SVNPathAuthz short_circuit
+      is used (r1647887)
+    * fsfs: reduce memory use when walking back in history (r1648230)
+    * dump: remove incorrect kind header on replaced nodes (issue #4553)
+    * dump: remove duplicate headers for replace-with-copy (issue #4552)
+    * mod_dav_svn: don't send non-XML safe characters in svn:author
+      (issue #4415)
+    * dump: don't write broken dump files in some ambiguously encoded fsfs
+      repositories (issue #4554)
+    * mod_dav_svn: provide a more intuitive error message to the client when
+      trying to create a directory that already exists (issue #2295)
+    * fsfs: fix uninitialized memory use in lock/unlock code (r1657525)
+    * fix a segfault when executing a pre-commit hook (r1657893)
+    * mod_dav_svn: do not ignore errors parsing skels (r1658168)
+    * resolve: allow directly resolving tree conflicts (r1658435)
+    * fsfs: fix multiple reporting of the same lock (r1658482)
+    * fsfs: fix pool lifetime issue in lock handling (r1659314)
+    * mod_dav_svn: properly log assertions and malfuctions (r1660480)
+    * svnadmin load/dump: preserve deletion of svn:date from r0 (issue #4563)
+    * copy: when copying from a wc to a url show all the changes (r1655729)
+    * info: provide results in a stable order (r1662030)
+    * revert: allow depth limited reverts of nodes that only have not-present
+      and/or excluded child nodes (r1662091)
 
   - Client-side and server-side bugfixes:
     * use less memory when retrieving extension from filename (r1548480)
     * use more optimal code path with old txdelta v1 data (r1485480)
     * windows: allow opening SQLite databases on long paths (r1564338)
     * fix an out-of-bounds read in the delta combiner (r1569415)
+    * fix a number of cases of undefined behavior when passing invalid
+      arguments to memcpy() (r1632530, et al)
+    * windows: avoid a 12 second delay due to a retry loop in some error
+      conditions when opening a file (r1657583)
 
   - Other tool improvements and bugfixes:
     * windows: add build-svn-deps-win.pl tool to build dependencies (r1467715)
@@ -228,22 +394,41 @@ http://svn.apache.org/repos/asf/subversi
     * svnpubsub: do not pass svn commands through shell (r148466, r1486467)
     * svnpubsub: hooks exit with an error if they fail (r1486500, r1486597)
     * svnpubsub: hooks use "--" to signal end of arguments (r1486513)
-    * mailer: Properly encode mail headers per RFC2047 (r1487532)
+    * mailer: properly encode mail headers per RFC2047 (r1487532)
     * svnwcsub: add a pre-update hook, which can deny update (r1494542 et al)
     * fsfs-stats: count file nodes that are added without history (r1519283)
+    * fsfs-stats: replaced by 'svnfsfs stats' (r1594860)
     * fsfs-access-map: count empty reads and unnecessary seeks (r1523441)
     * fsfs-access-map: generate scaled/rectangular heatmaps (r1505065)
     * fsfs-access-map: deal with strace format issues (r1505065)
     * fsfs-access-map: update to know about index files (r1505065)
-    * svn-bench: add null-info command (r1532196)
+    * svnbench: renamed from svn-bench (r1659226)
+    * svnbench: add null-info command (r1532196)
     * svnlook.py: made usable as a library by adding getter methods (r1541558)
-    * svn-bench, svnraisetreeconflict, svnauthz, svn-rep-sharing-stats: More
+    * svnbench, svnraisetreeconflict, svnauthz, svn-rep-sharing-stats: More
       consistent error reporting, following pattern of core command-line
       programs (r1544194)
-    * bash_completion: support for youngest command (r1546975)
     * which-error.py: allow which-error.py to be run from symlink (r1547977)
-    * bash-completion: add svnlook filesize command and options to svn cat,
+    * bash_completion: add svnlook filesize command and options to svn cat,
       info, and mergeinfo commands (r1569021)
+    * new '--conflict-style' option to standalone diff3 tool (r1591750)
+    * update standalone diff3 tool so it can be used with --diff-cmd
+      directly (r1591871, 1591876)
+    * bash_completion: support for auth command (r1596841)
+    * diff: support '-U' option (r1618618)
+    * svn-rep-sharing-stats: replaced by 'svnfsfs stats' (r1618861)
+    * add svn-vendor.py as an alternative to svn_load_dirs.pl that can
+      auto-detect renames and copies (r1623660)
+    * svnpredumpfilter.py: fix a scalability problem that made run time
+      increase greatly on large repositories (r1625674 et al)
+    * svnpredumpfilter.py: detect copies of copies and handle properly
+      (r1626182)
+    * bash_completion: add svnadmin delrevprop (r1631473)
+    * showchange.pl: removed, obsoleted by 'svn log --diff' (r1631686)
+    * bash_completion: add new trust options (r1660373)
+    * bash_completion: add '--pin-externals' (r1662250)
+    * bash_completion: stop offering deprecated options (r1662291)
+    * bash_completion: add '--show-item' and '--no-newline' (r1662622)
 
  Developer-visible changes:
   - General:
@@ -276,14 +461,11 @@ http://svn.apache.org/repos/asf/subversi
     * use --bin path for svnrdump when running Python tests (r1548706)
     * remove unused --with-openssl option from configure (r1548714)
     * tests: stop rewriting shared authz file for every sandbox (r1552064 et al)
-    * get-deps.sh: Use a stable URL for zlib download (r1552957 et al)
     * fix unnecessary aborts in maintainer mode on sqlite errors (r1536325)
     * new --sqlite-logging option for C tests (r1560409)
     * allow building with APR-2 (r1560586)
     * remove support for ASM Zlib from Windows build system (r1560864)
     * gen-make.py: new -D option (r1567046)
-    * svn-populate-node-origins-index: fix build with Visual Studio
-      (r1568180 et al)
     * improve how we fetch the version of Windows (r1568798, 1568806)
     * move common code in python tests to library files to avoid side effects of
       having tests depending on each other (r1570654)
@@ -303,83 +485,146 @@ http://svn.apache.org/repos/asf/subversi
     * binaries built on Mac OS X 10.6+ will not run on older versions (r1651549)
     * fix random failure of Makefile-based parallel builds on Unix
       when the amalgamated SQLite is being used (r1658357)
+    * C tests only run with ra_local to avoid duplicate testing (r1609477)
+    * allow skipping the C tests for any RA method (r1609489)
+    * new tools for benchmarking on Windows (r1610264)
+    * svnbench: no longer part of tools but main subversion (r1618860)
+    * improve detection for libtool (r1627276)
+    * check the runtime version of the fs_util library in the fs backends
+      (r1651567)
+    * properly initialize the src_kind value to avoid problems for other API
+      users during a copy (r1655723)
+    * try to improve reliability of applications that do not call
+      svn_dso_initialize2() right after apr_initialize() (r1659604)
+    * add svn-wc-db-tester tool for testing working copies (r1660874)
+    * fix bugs and performance issues using svn_wc_walk_entries3() (r1661110)
+    * support using Python 3 for building (r1661247)
+    * don't add -lstdc++ on FreeBSD 10 (r1662329)
 
   - API changes:
-    * New RA callbacks for managing ra_svn tunnels:
+    * new RA callbacks for managing ra_svn tunnels:
       svn_ra_callbacks2_t::check_tunnel_func,
       svn_ra_callbacks2_t::open_tunnel_func and
-      svn_ra_callbacks2_t::close_tunnel_func.
-    * New api for retrieving info about a file system: svn_fs_info()
-    * New api svn_io_file_flush() that wraps apr_file_flush().
-    * New api svn_io_write_atomic(), that writes, sync and renames a file.
-    * New api svn_compat_log_revprops_out_string().
-    * Deprecate unused datatype svn_ra_get_latest_revnum_func_t.
-    * New struct svn_wc_conflict_description3_t (r1494990)
-    * New api svn_client_cleanup2() (r1496954 et al)
-    * New api svn_stringbuf_create_wrap() (r1502248)
-    * New api svn_io_file_aligned_seek() (r1502539)
+      svn_ra_callbacks2_t::close_tunnel_func
+    * new API for retrieving info about a file system: svn_fs_info()
+    * new API svn_io_file_flush() that wraps apr_file_flush()
+    * new API svn_io_write_atomic(), that writes, sync and renames a file
+    * new API svn_compat_log_revprops_out_string()
+    * deprecate unused datatype svn_ra_get_latest_revnum_func_t
+    * new API svn_client_cleanup2() (r1496954 et al)
+    * new API svn_stringbuf_create_wrap() (r1502248)
+    * new API svn_io_file_aligned_seek() (r1502539)
     * ra_svn: fix svn_ra_get_log*() to apply limit when server can't (r1503043)
     * svn_client_commit6: notify which path prevents a mv commit (r1503662)
-    * New apis svn_io_file_create_empty() and svn_io_file_create_bytes()
+    * new APIs svn_io_file_create_empty() and svn_io_file_create_bytes()
       (r1505006)
-    * New api svn_ver_check_list2() (r1502267)
-    * svn_fs_paths_changed() gains support for moves (r1525448)
-    * New api svn_repos_get_logs5() adds support for moves (r1525453)
-    * New api svn_ra_get_log3() adds support for moves (r1525460)
-    * New api svn_client_log6() adds support for moves (r1525463)
-    * New api svn_stringbuf_from_stream() (r1532193)
+    * new API svn_ver_check_list2() (r1502267)
+    * new API svn_stringbuf_from_stream() (r1532193)
     * svn_auth_get_platform_specific_client_providers() now includes ssl
       providers (r1534153)
     * dav_svn_split_uri() repos_path is a fspath with a leading slash (r1537812)
-    * New api svn_repos_fs_type() returns filesystem type (r1538585)
+    * new API svn_repos_fs_type() returns filesystem type (r1538585)
     * svn_client__get_inheritable_props() clears wcroot_iprops when revision is
       not valid (r1538602)
     * SVN_VA_NULL: New macro which is null-pointer constant (r1536307)
     * SVN_NEEDS_SENTINEL_NULL: New macro to mark functions that require final
-      NULL sentinel value, so compilers can warn when missing. (r1543394)
+      NULL sentinel value, so compilers can warn when missing (r1543394)
     * platform specific svn_auth_get_* functions are deprecated, use the
       svn_auth_get_platform_specific_provider() function instead (r1543992)
     * SVN_INT_ERR macro is deprecated use svn_handle_error2() or
       svn_cmdline_handle_exit_error() instead (r1544142)
-    * New api svn_client_cat3() allow disabling keyword expansion and retrieving
-      props. (r1544182)
+    * new API svn_client_cat3() allow disabling keyword expansion and retrieving
+      props (r1544182)
     * svn_auth_first_credentials(): provides an error rather than crashing if
       auth_baton is NULL (r1544320)
     * svn_auth_set_parameter(): Do nothing if auth_baton is NULL (r1544320)
-    * New api svn_relpath_limit which returns a relpath with a maximum number
+    * new api svn_relpath_limit which returns a relpath with a maximum number
       of path components (r1545123)
     * svn_fs_initialize() is now threadsafe (r1546409)
     * svn_checksum_kind_t has two new FNV-1a checksums (r1546699)
     * svn_fs_lock: control characters are not allowed in lock tokens (r1547445)
-    * New api svn_wc_cleanup4() makes some functionality optional and adds
+    * new API svn_wc_cleanup4() makes some functionality optional and adds
       notifications (r1548075 et al)
-    * New api svn_client_info4() supports walking externals (r1550206 et al)
-    * New flag for svn_fs_begin_txn2() SVN_FS_TXN_CLIENT_DATE to allow client
+    * new API svn_client_info4() supports walking externals (r1550206 et al)
+    * new flag for svn_fs_begin_txn2() SVN_FS_TXN_CLIENT_DATE to allow client
       to set the final svn:date (r1550228)
-    * New apis for easier RA commits svn_client_mtcc_* (r1550758 et al)
-    * New api svn_ra_session_dup() (r1552324 et al)
+    * new APIs for easier RA commits svn_client_mtcc_* (r1550758 et al)
+    * new API svn_ra_session_dup() (r1552324 et al)
     * svn_ra_stat() now handles compatibility with 1.0-1.1 svnserve (r1552441)
-    * New error code SVN_ERR_COMPOSED_ERROR added to allow detection of
+    * new error code SVN_ERR_COMPOSED_ERROR added to allow detection of
       composed errors by API consumers (r1553266)
-    * New error code SVN_ERR_RA_DAV_PRECONDITION_FAILED (r1553668)
-    * New error code SVN_ERR_RA_CANNOT_CREATE_SESSION (r1554027)
-    * New api svn_fs_node_relation() (r1554800)
+    * new error code SVN_ERR_RA_DAV_PRECONDITION_FAILED (r1553668)
+    * new error code SVN_ERR_RA_CANNOT_CREATE_SESSION (r1554027)
+    * new API svn_fs_node_relation() (r1554800)
     * SVN_EXPERIMENTAL to mark functions that might change in future (r1526012)
     * fix bug in svn_client_get_merging_summary() with some params (r1532396)
-    * New error code SVN_ERR_XML_UNEXPECTED_ELEMENT (r1498938)
-    * Extend stream API to also support incomplete reads (r1561688 et al)
-    * New api svn_wc_add_from_disk3() (r1563361)
-    * New api svn_client_revert3() to allow clearing changelists (r1568635)
+    * new error code SVN_ERR_XML_UNEXPECTED_ELEMENT (r1498938)
+    * extend stream API to also support incomplete reads (r1561688 et al)
+    * new API svn_wc_add_from_disk3() (r1563361)
+    * new API svn_client_revert3() to allow clearing changelists and to have
+      a metadata_only flag (r1568635, r1657026)
     * svn_rangelist_inheritable2(): don't change inheritabilty of remaining
       ranges (r1569731)
     * svn_rangelist_inheritable2() and svn_mergeinfo_inheritable2(): fix a
       pool lifetime issue (r1569764)
-    * New apis to support cancelation during unified diff output (r1570149)
+    * new APIs to support cancelation during unified diff output and
+      allow the context size to be specified (r1570149 et al)
     * APIs related to retrieving logs are now documented to be unlimited when
       a negative value is passed for the limit (r1570330, 1570335)
-    * New apis: svn_fs_props_different() and svn_fs_contents_different()
+    * new APIs: svn_fs_props_different() and svn_fs_contents_different()
       (r1572363, r1573111)
-    * Expose SVN_CONFIG_AUTHN_* macros in public API (r1572640)
+    * expose SVN_CONFIG_AUTHN_* macros in public API (r1572640)
+    * add SVN_CONFIG_OPTION_SQLITE_TIMEOUT to allow SQLite busy timeout
+      to be configured by clients (r1592093)
+    * add new notification between transmitting deltas and finalizing
+      commit as svn_wc_notify_commit_finalizing (r1603388)
+    * svn_client_cat3() API no longer returns entry or WC props (r1603501)
+    * properly handle canonical paths in svn_io_start_cmd3() (r1604761)
+    * add SVN_FS_CONFIG_FSFS_BLOCK_READ to control FSFS format 7 block
+      read feature (r1604933)
+    * new API svn_cstring_skip_prefix() (r1612823)
+    * new API svn_diff_mem_string_output_merge3() (r1618599)
+    * extend svn_wc_info_t with conflicts2 (r1618643)
+    * new API svn_diff_mem_string_output_unified3() (r1618839)
+    * new API svn_diff_file_output_merge3() (r1618857)
+    * svn_fs_props_changed() and svn_fs_contents_changed() no longer return
+      false positives (r1618880)
+    * new API svn_wc_conflict_description2_dup() (r1618883)
+    * extend svn_wc_conflict_description2_t with prop_reject_abspath field
+      (r1619096)
+    * extend svn_wc_conflict_description2_t with property values as
+      svn_string_t's (r1619122)
+    * fix svn_client_import5() to use absolute paths (r1623974)
+    * fix a few cases of invalid filling of svn_client_commit_item3_t (r1623981)
+    * add SVN_FS_CONFIG_FSFS_SHARD_SIZE to allow creation of repositories with
+      a custom shard size (r1624512)
+    * new API svn_cmdline_create_auth_baton2 (r1630117)
+    * make svn_string_*() and svn_stringbuf_*() functions handle C strings
+      of NULL with 0 length (r1632530, et al)
+    * fix svn_stream_compressed() for streams without partial read support
+      (r1639626)
+    * do not segfault on svn_stream_read_full() or svn_stream_skip() are called
+      for a no-op stream created via svn_stream_create() (r1639637)
+    * add SVN_FS_CONFIG_FSFS_LOG_ADDRESSING to control logical addressing
+      feature of fsfs format 7 (r1640915)
+    * rename the 'parent_directory' parameter of
+      svn_wc_parse_externals_description3() to 'defining_directory' and improve
+      the documentation (r1642690)
+    * new API svn_repos_get_fs_build_parser5() (r1647563)
+    * SVN_VERSION_BODY changed so that it is embedded into libraries, ultimately
+      allowing SVN_VER_TAG constant to be modified by patches (r1651565)
+    * rename repos_url to repos_url_deocded argument to
+      svn_repos_get_commit_editor5() to clairfy usage (r1653609)
+    * make svn_io_set_file_read_only() and svn_io_remove_dir2() ignore
+      ENOTDIR when ignore_enoent argument is set so the behavior is consistent
+      across platforms (r1653680)
+    * make svn_ra_open_session4() return the documented error when a repository
+      should be opened in a different location (r1655648)
+    * no longer return an error when using svn_ra_get_lock() and the path does
+      not exist (r1656875)
+    * svn_string_dup() will accept a NULL pointer and return a NULL (r1657254)
+    * svn_ra_get_file_revs2() now handles SVN_INVALID_REVNUM as HEAD (r1660463)
+    * new API svn_error_quick_wrapf() (r1662668)
 
   - Bindings:
     * javahl: add support for the RA layer (r1494650 et al)
@@ -391,12 +636,12 @@ http://svn.apache.org/repos/asf/subversi
     * javahl: add inheritance info to JavaHL's RevisionRange type (r1499308)
     * swig-rb: fixes to building on Windows (1505406 et al)
     * libsvn_swig_*libraries now work as proper shared librares (r1506520 et al)
-    * swig-py: import libsvn_subr pub symbols from svn.core * (r1507860) 
+    * swig-py: import libsvn_subr pub symbols from svn.core * (r1507860)
     * javahl: expose the svn_rangelist operations (r1509025)
     * javahl: new utility class SVNUtil (r1512354)
     * javahl: serialize init of native library (r1519803)
     * javahl: fix value truncation checks (r1519913)
-    * javahl: Add ISVNClient.info which exposes svn_client_info4 (r1603481)
+    * javahl: add ISVNClient.info which exposes svn_client_info4 (r1603481)
     * javahl: include name of exception class in error messages (r1532117)
     * javahl: simplify JNI environment handling (r1533804)
     * javahl: Revsion.UNSPECIFIED added as alias to Revision.START (r1533928)
@@ -407,7 +652,7 @@ http://svn.apache.org/repos/asf/subversi
     * javahl: new utility API to parse/unparse svn:externals (r1539130 et al)
     * javahl: allow tests to be run from a RAM disk (r1539215 et al)
     * javahl: expose and use the url member of svn_wc_notify_t (r1539601)
-    * javahl: expose a utility api to resolve relative externals (r1540921)
+    * javahl: expose a utility API to resolve relative externals (r1540921)
     * javahl: new utility API for file content translation (r1542401)
     * javahl: throw NullPointerException when sources is empty (r1543328)
     * swig-pl: fix compilation against perl 5.18 on Windows (r1543980)
@@ -415,7 +660,7 @@ http://svn.apache.org/repos/asf/subversi
     * javahl: enable warnings with javac (r1544163, r1544169)
     * javahl: cleanup warnings (r1544578 et al)
     * javahl: add common utilities for new-style map iterations (r1545925)
-    * javahl: add an api to get runtime version of native libs (r1545945)
+    * javahl: add an API to get runtime version of native libs (r1545945)
     * javahl: use default cache size instead of no cache (r1547248)
     * swig-py: add typemap for hunks field of svn_patch_t (r1548379)
     * javahl: don't ignore difference between NULL and empty changelist in
@@ -429,11 +674,69 @@ http://svn.apache.org/repos/asf/subversi
     * javahl: expose --alow-mixed-revisions merge option (r1567602)
     * javahl: support incomplete reads from streams (r1569631)
     * javahl: allow revert API to take a set of paths (r1571461)
+    * javahl: improve authentication callback (r1597758 et al)
+    * javahl: load (most) classes on demand (r1602822)
+    * javahl: expose confg file keys in JavaHL (r1604448)
+    * javahl: update ISVNClient.info, ISVnClient.cleanup and add
+      ISvnClient.vacuum (r1604449)
+    * javahl: update ISVNRepos.hotcopy (r1618894)
+    * swig-py: Add close to the core.Stream class (r1619077)
+    * javahl: add example clients that use the authn API (r1640533)
+    * swig-py: implement dump stream parser (r1642813)
+    * swig-pl: remove some unneded cleanup code that triggered a cleanup
+      failure on windows (r1643072)
+    * swig-pl: make cancel_func, cancel_baton parameter pairs work (r1648852)
+    * javahl: expose whitespace diff parameters to blame method (issue #4475)
+    * javahl: update ConflictDescriptor (r1655842)
+    * javahl: update FileRevision to provide textDelta (r1656911)
+    * swig: partial fix for complication problems wigh SWIG 3.0.x (r1658347)
+    * swig-pl: install into prefix (r1658459)
+    * javahl: expose the metadataOnly option to copy support (r1661451)
+    * swig-py: add support for svn_fs_lock_many(), svn_fs_unlock_many(),
+      svn_repos_fs_lock_many() and svn_repos_fs_unlock_many() (r1662867)
+    * swig-py: fix support for svn_ra_lock() and svn_ra_unlock() (r1662891)
+
+
+Version 1.8.12
+(?? ?? 2015, from /branches/1.8.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.8.12
+
+ User-visible changes:
+  - Client-side bugfixes:
+    * ra_serf: support case-insensitivity in HTTP headers (r1650481, r1650489)
+    * better error message if an external is shadowed (r1655712, r1655738)
+    * ra_svn: fix reporting of directory read errors (r1656713)
+    * fix a redirect handling bug in 'svn log' over HTTP (r1650531)
+    * properly copy tree conflict information (r1658115, r1659553, r1659554)
+    * fix 'svn patch' output for reordered hunks (issue #4533)
+    * svnrdump load: don't load wrong props with no-deltas dump (issue #4551)
+    * fix working copy corruption with relative file external (issue #4411)
+    * don't crash if config file is unreadable (r1590751, r1660350)
+    * svn resolve: don't ask a question with only one answer (r1658417)
+
+  - Server-side bugfixes:
+    * svnadmin freeze: fix memory allocation error (r1653039)
+    * svnadmin load: tolerate invalid mergeinfo at r0 (r1643074, issue #4476)  
+    * svnadmin load: strip references to r1 from mergeinfo (issue #4538)
+    * svnsync: strip any r0 references from mergeinfo (issue #4476)
+
+  - Client-side and server-side bugfixes:
+    * fix undefined behaviour in string buffer routines (r1650834)
+    * fix consistency issues with APR r/w locks on Windows (r1611380 et al)
+    * fix occasional SEGV if threads load DSOs in parallel (r1659013, r1659315)
+    * properly duplicate svn error objects (r1651759)
+    * fix use-after-free in config parser (1646785, r1646786, r1646797)
+
+ Developer-visible changes:
+  * add lock file config for testing against HTTPD 2.4+ (r1544302, r1544303)
+  * make sqlite amalgamated build work with sqlite 3.8.x+ (r1659399)
+  * fix build with Ruby 2 (r1596882)
+  * process 'svnadmin dump' output as binary in the test suite (r1592987)
 
 
 Version 1.8.11
 (15 Dec 2014, from /branches/1.8.x)
-http://svn.apache.org/repos/asf/subversion/tags/1.8.10
+http://svn.apache.org/repos/asf/subversion/tags/1.8.11
 
  User-visible changes:
   - Client-side bugfixes:
@@ -1207,6 +1510,18 @@ http://svn.apache.org/repos/asf/subversi
     * fix some reference counting bugs in swig-py bindings (r1464899, r1466524)
 
 
+Version 1.7.20
+(?? ??? 2015, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.19
+
+ User-visible changes:
+  - Client-side and server-side bugfixes:
+    * properly duplicate svn error objects (r1651759)
+
+ Developer-visible changes:
+  * add lock file config for testing against HTTPD 2.4+ (r1544302, r1544303)
+
+
 Version 1.7.19
 (15 Dec 2014, from /branches/1.7.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.7.19

Propchange: subversion/branches/move-tracking-2/CHANGES
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Mar  9 09:53:06 2015
@@ -86,4 +86,4 @@
 /subversion/branches/verify-at-commit/CHANGES:1462039-1462408
 /subversion/branches/verify-keep-going/CHANGES:1439280-1546110
 /subversion/branches/wc-collate-path/CHANGES:1402685-1480384
-/subversion/trunk/CHANGES:1606692-1663280
+/subversion/trunk/CHANGES:1606692-1665165

Modified: subversion/branches/move-tracking-2/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/build.conf?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/build.conf (original)
+++ subversion/branches/move-tracking-2/build.conf Mon Mar  9 09:53:06 2015
@@ -1602,6 +1602,7 @@ install = tools
 libs = libsvn_diff libsvn_subr apriconv apr
 
 [svnbench]
+description = Benchmarking and diagnostics tool for the network layer
 type = exe
 path = subversion/svnbench
 install = tools

Propchange: subversion/branches/move-tracking-2/build.conf
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Mar  9 09:53:06 2015
@@ -82,4 +82,4 @@
 /subversion/branches/verify-at-commit/build.conf:1462039-1462408
 /subversion/branches/verify-keep-going/build.conf:1439280-1546110
 /subversion/branches/wc-collate-path/build.conf:1402685-1480384
-/subversion/trunk/build.conf:1606692-1661488
+/subversion/trunk/build.conf:1606692-1665165

Propchange: subversion/branches/move-tracking-2/subversion/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Mar  9 09:53:06 2015
@@ -82,4 +82,4 @@
 /subversion/branches/verify-at-commit/subversion:1462039-1462408
 /subversion/branches/verify-keep-going/subversion:1439280-1546110
 /subversion/branches/wc-collate-path/subversion:1402685-1480384
-/subversion/trunk/subversion:1606692-1663280
+/subversion/trunk/subversion:1606692-1665165

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/BlameCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/BlameCallback.cpp?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/BlameCallback.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/BlameCallback.cpp Mon Mar  9 09:53:06 2015
@@ -128,8 +128,6 @@ BlameCallback::singleLine(svn_revnum_t s
   env->CallVoidMethod(m_callback, mid, (jlong)line_no, (jlong)revision,
                       jrevProps, (jlong)mergedRevision, jmergedRevProps,
                       jmergedPath, jline, (jboolean)localChange);
-  // No need to check for an exception here, because we return anyway.
 
-  env->PopLocalFrame(NULL);
-  return SVN_NO_ERROR;
+  POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
 }

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/CommitCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/CommitCallback.cpp?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/CommitCallback.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/CommitCallback.cpp Mon Mar  9 09:53:06 2015
@@ -96,10 +96,8 @@ CommitCallback::commitInfo(const svn_com
     POP_AND_RETURN(SVN_NO_ERROR);
 
   env->CallVoidMethod(m_callback, sm_mid, jcommitInfo);
-  // No need to check for an exception here, because we return anyway.
 
-  env->PopLocalFrame(NULL);
-  return SVN_NO_ERROR;
+  POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
 }
 
 

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/CommitMessage.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/CommitMessage.cpp?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/CommitMessage.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/CommitMessage.cpp Mon Mar  9 09:53:06 2015
@@ -106,7 +106,7 @@ CommitMessage::getCommitMessage(const ch
                                                     midCallback,
                                                     CreateJ::Set(jitems));
   if (JNIUtil::isJavaExceptionThrown())
-    POP_AND_RETURN(SVN_NO_ERROR);
+    POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
 
   if (jmessage != NULL)
     {

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/DiffSummaryReceiver.cpp Mon Mar  9 09:53:06 2015
@@ -117,8 +117,5 @@ DiffSummaryReceiver::onSummary(const svn
 
   // Invoke the Java DiffSummaryReceiver callback.
   env->CallVoidMethod(m_receiver, callback, jDiffSummary);
-  // We return whether an exception was thrown or not.
-
-  env->PopLocalFrame(NULL);
-  return SVN_NO_ERROR;
+  POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
 }

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/EditorProxy.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/EditorProxy.cpp?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/EditorProxy.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/EditorProxy.cpp Mon Mar  9 09:53:06 2015
@@ -20,7 +20,7 @@
  * ====================================================================
  * @endcopyright
  *
- * @file EditorProxy.h
+ * @file EditorProxy.cpp
  * @brief Interface of all editor proxy classes
  */
 #include <apr_pools.h>

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/InfoCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/InfoCallback.cpp?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/InfoCallback.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/InfoCallback.cpp Mon Mar  9 09:53:06 2015
@@ -95,8 +95,6 @@ InfoCallback::singleInfo(const char *pat
     POP_AND_RETURN(SVN_NO_ERROR);
 
   env->CallVoidMethod(m_callback, mid, jinfo2);
-  // Return SVN_NO_ERROR here regardless of an exception or not.
 
-  env->PopLocalFrame(NULL);
-  return SVN_NO_ERROR;
+  POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
 }

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/Iterator.h
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/Iterator.h?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/Iterator.h (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/Iterator.h Mon Mar  9 09:53:06 2015
@@ -20,7 +20,7 @@
  * ====================================================================
  * @endcopyright
  *
- * @file Iterator.cpp
+ * @file Iterator.h
  * @brief Interface of the class Iterator
  */
 

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/JNIUtil.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/JNIUtil.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/JNIUtil.cpp Mon Mar  9 09:53:06 2015
@@ -77,6 +77,11 @@ bool JNIUtil::g_initException;
 int JNIUtil::g_logLevel = JNIUtil::noLog;
 std::ofstream JNIUtil::g_logStream;
 
+/* The error code we will use to signal a Java exception */
+static const apr_status_t
+SVN_ERR_JAVAHL_WRAPPED = SVN_ERR_MALFUNC_CATEGORY_START
+                         + SVN_ERR_CATEGORY_SIZE - 10;
+
 /**
  * Return the JNI environment to use
  * @return the JNI environment
@@ -446,7 +451,8 @@ ErrorMessageStack assemble_error_message
     {
       /* When we're recursing, don't repeat the top-level message if its
        * the same as before. */
-      if (depth == 0 || err->apr_err != parent_apr_err)
+      if ((depth == 0 || err->apr_err != parent_apr_err)
+          && err->apr_err != SVN_ERR_JAVAHL_WRAPPED)
         {
           const char *message;
           /* Is this a Subversion-specific error code? */
@@ -586,6 +592,9 @@ void JNIUtil::wrappedHandleSVNError(svn_
 #endif
 #endif
 
+  if (!jcause)
+    jcause = JNIUtil::unwrapJavaException(err);
+
   // Much of the following is stolen from throwNativeException().  As much as
   // we'd like to call that function, we need to do some manual stack
   // unrolling, so it isn't feasible.
@@ -804,6 +813,25 @@ JNIUtil::checkJavaException(apr_status_t
     err->message = apr_psprintf(err->pool, _("Java exception: %s"), msg);
   else
     err->message = _("Java exception");
+
+  
+  /* ### TODO: Use apr_pool_userdata_set() on the pool we just created
+               for the error chain to keep track of the actual Java
+               exception while the error is inside Subversion.
+
+               Once the error chain re-enters JavaHL we can check
+               if there is a true exception that we can add to the chain.
+
+               If the error is cleared in Subversion (which may happen
+               during composing error chains, etc.) the cleanup handler
+               handles properly releasing the exception.
+
+    apr_status_t
+    apr_pool_userdata_set(const void *data,
+                          const char *key,
+                          apr_status_t (*cleanup)(void *),
+                          apr_pool_t *pool)
+   */
   return err;
 }
 
@@ -1043,3 +1071,91 @@ svn_error_t *JNIUtil::preprocessPath(con
 
   return NULL;
 }
+
+/* Tag to use on the apr_pool_t to store a WrappedException reference */
+static const char *WrapExceptionTag = "org.apache.subversion.JavaHL.svnerror";
+
+class WrappedException
+{
+  JNIEnv *m_env;
+  jthrowable m_exception;
+#ifdef SVN_DEBUG
+  bool m_fetched;
+#endif
+public:
+  WrappedException(JNIEnv *env)
+  {
+    m_env = env;
+
+    // Fetch exception inside local frame
+    jthrowable exceptionObj = env->ExceptionOccurred();
+
+    // Now clear exception status
+    env->ExceptionClear();
+
+    // As adding a reference in exception state fails
+    m_exception = static_cast<jthrowable>(env->NewGlobalRef(exceptionObj));
+
+#ifdef SVN_DEBUG
+    m_fetched = false;
+#endif
+  }
+
+  static jthrowable get_exception(apr_pool_t *pool)
+  {
+      void *data;
+      if (! apr_pool_userdata_get(&data, WrapExceptionTag, pool))
+      {
+          WrappedException *we = reinterpret_cast<WrappedException *>(data);
+
+          if (we)
+          {
+#ifdef SVN_DEBUG
+              we->m_fetched = TRUE;
+#endif
+              // Create reference in local frame, as the pool will be cleared
+              return static_cast<jthrowable>(
+                            we->m_env->NewLocalRef(we->m_exception));
+          }
+      }
+      return NULL;
+  }
+
+private:
+  ~WrappedException()
+  {
+#ifdef SVN_DEBUG
+      if (!m_fetched)
+          SVN_DBG(("Cleared svn_error_t * before Java exception was fetched"));
+#endif
+      m_env->DeleteGlobalRef(m_exception);
+  }
+public:
+  static apr_status_t cleanup(void *data)
+  {
+    WrappedException *we = reinterpret_cast<WrappedException *>(data);
+
+    delete we;
+    return APR_SUCCESS;
+  }
+};
+
+svn_error_t* JNIUtil::wrapJavaException()
+{
+  if (!isExceptionThrown())
+    return SVN_NO_ERROR;
+
+  svn_error_t *err = svn_error_create(SVN_ERR_JAVAHL_WRAPPED, NULL,
+                                      "Wrapped Java Exception");
+  apr_pool_userdata_set(new WrappedException(getEnv()), WrapExceptionTag,
+                        WrappedException::cleanup, err->pool);
+  return err;
+}
+
+jthrowable JNIUtil::unwrapJavaException(const svn_error_t *err)
+{
+    if (!err)
+        return NULL;
+    return
+        WrappedException::get_exception(err->pool);
+}

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/JNIUtil.h
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/JNIUtil.h?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/JNIUtil.h (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/JNIUtil.h Mon Mar  9 09:53:06 2015
@@ -86,6 +86,9 @@ class JNIUtil
       return getEnv()->ExceptionCheck();
     }
 
+  static svn_error_t *wrapJavaException();
+  static jthrowable unwrapJavaException(const svn_error_t *err);
+
   static void handleAPRError(int error, const char *op);
 
   /**
@@ -265,6 +268,16 @@ class JNIUtil
     }                                   \
   while (0)
 
+#define POP_AND_RETURN_EXCEPTION_AS_SVNERROR()                            \
+  do                                                                      \
+    {                                                                     \
+      svn_error_t *svn__err_for_exception = JNIUtil::wrapJavaException(); \
+                                                                          \
+      env->PopLocalFrame(NULL);                                           \
+      return svn__err_for_exception;                                      \
+    }                                                                     \
+  while (0)
+
 
 /**
  * A useful macro.

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/ListCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/ListCallback.cpp?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/ListCallback.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/ListCallback.cpp Mon Mar  9 09:53:06 2015
@@ -113,10 +113,8 @@ ListCallback::doList(const char *path,
 
   // call the Java method
   env->CallVoidMethod(m_callback, mid, jdirentry, jlock);
-  // No need to check for exception here, because we'll just return anyway
 
-  env->PopLocalFrame(NULL);
-  return SVN_NO_ERROR;
+  POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
 }
 
 /**

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/LogMessageCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/LogMessageCallback.cpp?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/LogMessageCallback.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/LogMessageCallback.cpp Mon Mar  9 09:53:06 2015
@@ -125,8 +125,6 @@ LogMessageCallback::singleMessage(svn_lo
                       (jlong)log_entry->revision,
                       jrevprops,
                       (jboolean)log_entry->has_children);
-  // No need to check for an exception here, because we return anyway.
 
-  env->PopLocalFrame(NULL);
-  return SVN_NO_ERROR;
+  POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
 }

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/OperationContext.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/OperationContext.cpp?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/OperationContext.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/OperationContext.cpp Mon Mar  9 09:53:06 2015
@@ -358,6 +358,9 @@ OperationContext::checkCancel(void *canc
   OperationContext *that = static_cast<OperationContext *>(cancelBaton);
   if (that->isCancelledOperation())
     return svn_error_create(SVN_ERR_CANCELLED, NULL, _("Operation cancelled"));
+  else if (JNIUtil::isJavaExceptionThrown())
+    return svn_error_create(SVN_ERR_CANCELLED, JNIUtil::wrapJavaException(),
+                            _("Operation cancelled"));
   else
     return SVN_NO_ERROR;
 }

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/PatchCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/PatchCallback.cpp?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/PatchCallback.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/PatchCallback.cpp Mon Mar  9 09:53:06 2015
@@ -106,7 +106,7 @@ PatchCallback::singlePatch(svn_boolean_t
   jboolean jfiltered = env->CallBooleanMethod(m_callback, mid, jcanonPath,
                                               jpatchAbsPath, jrejectAbsPath);
   if (JNIUtil::isJavaExceptionThrown())
-    POP_AND_RETURN(SVN_NO_ERROR);
+    POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
 
   *filtered = (jfiltered ? TRUE : FALSE);
 

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/ProplistCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/ProplistCallback.cpp?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/ProplistCallback.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/ProplistCallback.cpp Mon Mar  9 09:53:06 2015
@@ -112,9 +112,7 @@ svn_error_t *ProplistCallback::singlePat
   env->CallVoidMethod(m_callback, mid, jpath, jmap);
   // We return whether an exception was thrown or not.
 
-  env->PopLocalFrame(NULL);
-
-  return SVN_NO_ERROR;
+  POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
 }
 
 

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/ReposFreezeAction.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/ReposFreezeAction.cpp?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/ReposFreezeAction.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/ReposFreezeAction.cpp Mon Mar  9 09:53:06 2015
@@ -20,7 +20,7 @@
  * ====================================================================
  * @endcopyright
  *
- * @file ReposFreezeAction.h
+ * @file ReposFreezeAction.cpp
  * @brief Native mirror of the ReposFreezeAction callback interface
  */
 

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/StateReporter.h
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/StateReporter.h?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/StateReporter.h (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/StateReporter.h Mon Mar  9 09:53:06 2015
@@ -20,7 +20,7 @@
  * ====================================================================
  * @endcopyright
  *
- * @file UpdateReporter.h
+ * @file StateReporter.h
  * @brief Interface of the class UpdateReporter
  */
 

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/StatusCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/StatusCallback.cpp?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/StatusCallback.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/StatusCallback.cpp Mon Mar  9 09:53:06 2015
@@ -101,11 +101,8 @@ StatusCallback::doStatus(const char *loc
     POP_AND_RETURN(SVN_NO_ERROR);
 
   env->CallVoidMethod(m_callback, mid, jPath, jStatus);
-  // We return here regardless of whether an exception is thrown or not,
-  // so we do not need to explicitly check for one.
 
-  env->PopLocalFrame(NULL);
-  return SVN_NO_ERROR;
+  POP_AND_RETURN_EXCEPTION_AS_SVNERROR();
 }
 
 void

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/jniwrapper/jni_base.cpp Mon Mar  9 09:53:06 2015
@@ -375,7 +375,8 @@ const char* unknown_cxx_exception_messag
 
 svn_error_t* caught_java_exception_error(apr_status_t status) throw()
 {
-  return svn_error_create(status, NULL, _("Java exception"));
+  return svn_error_create(status, JNIUtil::wrapJavaException(),
+                          _("Java exception"));
 }
 
 } // namespace Java

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/tests/org/apache/subversion/javahl/RunTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/tests/org/apache/subversion/javahl/RunTests.java?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/tests/org/apache/subversion/javahl/RunTests.java (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/tests/org/apache/subversion/javahl/RunTests.java Mon Mar  9 09:53:06 2015
@@ -95,6 +95,7 @@ public class RunTests
                 suite.addTestSuite(UtilTests.class);
                 suite.addTestSuite(SVNRemoteTests.class);
                 suite.addTestSuite(SVNReposTests.class);
+                suite.addTestSuite(ExceptionTests.class);
             }
             else
             {

Modified: subversion/branches/move-tracking-2/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c Mon Mar  9 09:53:06 2015
@@ -464,7 +464,7 @@ static PyObject *make_ob_error(svn_error
   if (err)
     return svn_swig_NewPointerObjString(err, "svn_error_t *", NULL);
   else
-    return Py_None;
+    Py_RETURN_NONE;
 }
 
 

Modified: subversion/branches/move-tracking-2/subversion/include/private/svn_auth_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/private/svn_auth_private.h?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/include/private/svn_auth_private.h (original)
+++ subversion/branches/move-tracking-2/subversion/include/private/svn_auth_private.h Mon Mar  9 09:53:06 2015
@@ -234,10 +234,12 @@ svn_auth__ssl_client_cert_pw_set(svn_boo
 /* Apply the specified configuration for connecting with SERVER_NAME
    to the auth baton */
 svn_error_t *
-svn_auth__apply_config_for_server(svn_auth_baton_t *ab,
-                                  apr_hash_t *config,
-                                  const char *server_name,
-                                  apr_pool_t *scratch_pool);
+svn_auth__make_session_auth(svn_auth_baton_t **session_auth_baton,
+                            const svn_auth_baton_t *auth_baton,
+                            apr_hash_t *config,
+                            const char *server_name,
+                            apr_pool_t *result_pool,
+                            apr_pool_t *scratch_pool);
 
 #if (defined(WIN32) && !defined(__MINGW32__)) || defined(DOXYGEN)
 /**

Modified: subversion/branches/move-tracking-2/subversion/include/private/svn_dep_compat.h
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/private/svn_dep_compat.h?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/include/private/svn_dep_compat.h (original)
+++ subversion/branches/move-tracking-2/subversion/include/private/svn_dep_compat.h Mon Mar  9 09:53:06 2015
@@ -20,7 +20,7 @@
  * ====================================================================
  * @endcopyright
  *
- * @file svn_compat.h
+ * @file svn_dep_compat.h
  * @brief Compatibility macros and functions.
  * @since New in 1.5.0.
  */

Modified: subversion/branches/move-tracking-2/subversion/include/private/svn_sorts_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/private/svn_sorts_private.h?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/include/private/svn_sorts_private.h (original)
+++ subversion/branches/move-tracking-2/subversion/include/private/svn_sorts_private.h Mon Mar  9 09:53:06 2015
@@ -20,7 +20,7 @@
  * ====================================================================
  * @endcopyright
  *
- * @file svn_sorts.h
+ * @file svn_sorts_private.h
  * @brief all sorts of sorts.
  */
 

Modified: subversion/branches/move-tracking-2/subversion/include/svn_hash.h
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/svn_hash.h?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/include/svn_hash.h (original)
+++ subversion/branches/move-tracking-2/subversion/include/svn_hash.h Mon Mar  9 09:53:06 2015
@@ -239,19 +239,44 @@ svn_hash_from_cstring_keys(apr_hash_t **
                            const apr_array_header_t *keys,
                            apr_pool_t *pool);
 
+/* For the Subversion developers, this #define makes the svn_hash_gets and
+ * svn_hash_sets macros forward their parameters through functions in order to
+ * gain type checking for the 'key' parameter which the basic apr_hash_* APIs
+ * declare only as 'void *'.
+ */
+#ifdef SVN_DEBUG
+#define SVN_HASH__GETS_SETS
+#endif
+
+#ifdef SVN_HASH__GETS_SETS
+void *
+svn_hash__gets(apr_hash_t *ht, const char *key);
+
+#define svn_hash_gets(ht, key) \
+            svn_hash__gets(ht, key)
+#else
 /** Shortcut for apr_hash_get() with a const char * key.
  *
  * @since New in 1.8.
  */
 #define svn_hash_gets(ht, key) \
             apr_hash_get(ht, key, APR_HASH_KEY_STRING)
+#endif
+
+#ifdef SVN_HASH__GETS_SETS
+void
+svn_hash__sets(apr_hash_t *ht, const char *key, const void *value);
 
+#define svn_hash_sets(ht, key, val) \
+            svn_hash__sets(ht, key, val)
+#else
 /** Shortcut for apr_hash_set() with a const char * key.
  *
  * @since New in 1.8.
  */
 #define svn_hash_sets(ht, key, val) \
             apr_hash_set(ht, key, APR_HASH_KEY_STRING, val)
+#endif
 
 /** @} */
 

Modified: subversion/branches/move-tracking-2/subversion/include/svn_opt.h
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/svn_opt.h?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/include/svn_opt.h (original)
+++ subversion/branches/move-tracking-2/subversion/include/svn_opt.h Mon Mar  9 09:53:06 2015
@@ -24,8 +24,8 @@
  * @brief Option and argument parsing for Subversion command lines
  */
 
-#ifndef SVN_OPTS_H
-#define SVN_OPTS_H
+#ifndef SVN_OPT_H
+#define SVN_OPT_H
 
 #include <apr.h>
 #include <apr_pools.h>
@@ -780,4 +780,4 @@ svn_opt_print_help(apr_getopt_t *os,
 }
 #endif /* __cplusplus */
 
-#endif /* SVN_OPTS_H */
+#endif /* SVN_OPT_H */

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/copy.c
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/copy.c?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/copy.c (original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/copy.c Mon Mar  9 09:53:06 2015
@@ -1668,13 +1668,9 @@ repos_to_repos_copy(const apr_array_head
       SVN_ERR(svn_ra_check_path(ra_session, dst_rel, SVN_INVALID_REVNUM,
                                 &dst_kind, pool));
       if (dst_kind != svn_node_none)
-        {
-          const char *path = svn_uri_skip_ancestor(repos_root,
-                                                   pair->dst_abspath_or_url,
-                                                   pool);
-          return svn_error_createf(SVN_ERR_FS_ALREADY_EXISTS, NULL,
-                                   _("Path '/%s' already exists"), path);
-        }
+        return svn_error_createf(SVN_ERR_FS_ALREADY_EXISTS, NULL,
+                                 _("Path '%s' already exists"),
+                                 pair->dst_abspath_or_url);
 
       /* More info for our INFO structure.  */
       info->src_path = src_rel; /* May be NULL, if outside RA session scope */
@@ -1920,6 +1916,9 @@ queue_prop_change_commit_items(const cha
       item->url = commit_url;
       item->kind = svn_node_dir;
       item->state_flags = SVN_CLIENT_COMMIT_ITEM_PROP_MODS;
+
+      item->incoming_prop_changes = apr_array_make(result_pool, 1,
+                                                   sizeof(svn_prop_t *));
       APR_ARRAY_PUSH(commit_items, svn_client_commit_item3_t *) = item;
     }
   else

Modified: subversion/branches/move-tracking-2/subversion/libsvn_fs/fs-loader.c
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_fs/fs-loader.c?rev=1665166&r1=1665165&r2=1665166&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_fs/fs-loader.c (original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_fs/fs-loader.c Mon Mar  9 09:53:06 2015
@@ -916,26 +916,48 @@ svn_fs_list_transactions(apr_array_heade
   return svn_error_trace(fs->vtable->list_transactions(names_p, fs, pool));
 }
 
+static svn_boolean_t
+is_internal_txn_prop(const char *name)
+{
+  return strcmp(name, SVN_FS__PROP_TXN_CHECK_LOCKS) == 0 ||
+         strcmp(name, SVN_FS__PROP_TXN_CHECK_OOD) == 0 ||
+         strcmp(name, SVN_FS__PROP_TXN_CLIENT_DATE) == 0;
+}
+
 svn_error_t *
 svn_fs_txn_prop(svn_string_t **value_p, svn_fs_txn_t *txn,
                 const char *propname, apr_pool_t *pool)
 {
+  if (is_internal_txn_prop(propname))
+    {
+      *value_p = NULL;
+      return SVN_NO_ERROR;
+    }
+
   return svn_error_trace(txn->vtable->get_prop(value_p, txn, propname, pool));
 }
 
 svn_error_t *
 svn_fs_txn_proplist(apr_hash_t **table_p, svn_fs_txn_t *txn, apr_pool_t *pool)
 {
-  return svn_error_trace(txn->vtable->get_proplist(table_p, txn, pool));
+  SVN_ERR(txn->vtable->get_proplist(table_p, txn, pool));
+
+  /* Don't give away internal transaction properties. */
+  svn_hash_sets(*table_p, SVN_FS__PROP_TXN_CHECK_LOCKS, NULL);
+  svn_hash_sets(*table_p, SVN_FS__PROP_TXN_CHECK_OOD, NULL);
+  svn_hash_sets(*table_p, SVN_FS__PROP_TXN_CLIENT_DATE, NULL);
+
+  return SVN_NO_ERROR;
 }
 
 svn_error_t *
 svn_fs_change_txn_prop(svn_fs_txn_t *txn, const char *name,
                        const svn_string_t *value, apr_pool_t *pool)
 {
-  /* Silently drop attempts to modify the internal property. */
-  if (!strcmp(name, SVN_FS__PROP_TXN_CLIENT_DATE))
-    return SVN_NO_ERROR;
+  if (is_internal_txn_prop(name))
+    return svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
+                             _("Attempt to modify internal transaction "
+                               "property '%s'"), name);
 
   return svn_error_trace(txn->vtable->change_prop(txn, name, value, pool));
 }
@@ -946,25 +968,14 @@ svn_fs_change_txn_props(svn_fs_txn_t *tx
 {
   int i;
 
-  /* Silently drop attempts to modify the internal property. */
   for (i = 0; i < props->nelts; ++i)
     {
       svn_prop_t *prop = &APR_ARRAY_IDX(props, i, svn_prop_t);
 
-      if (!strcmp(prop->name, SVN_FS__PROP_TXN_CLIENT_DATE))
-        {
-          apr_array_header_t *reduced_props
-            = apr_array_make(pool, props->nelts - 1, sizeof(svn_prop_t));
-
-          for (i = 0; i < props->nelts; ++i)
-            {
-              prop = &APR_ARRAY_IDX(props, i, svn_prop_t);
-              if (strcmp(prop->name, SVN_FS__PROP_TXN_CLIENT_DATE))
-                APR_ARRAY_PUSH(reduced_props, svn_prop_t) = *prop;
-            }
-          props = reduced_props;
-          break;
-        }
+      if (is_internal_txn_prop(prop->name))
+        return svn_error_createf(SVN_ERR_INCORRECT_PARAMS, NULL,
+                                 _("Attempt to modify internal transaction "
+                                   "property '%s'"), prop->name);
     }
 
   return svn_error_trace(txn->vtable->change_props(txn, props, pool));