svn commit: r298845 - in head: contrib/subversion contrib/subversion/subversion/include contrib/subversion/subversion/libsvn_client contrib/subversion/subversion/libsvn_diff contrib/subversion/subv...

Dimitry Andric dim at FreeBSD.org
Sat Apr 30 10:35:46 UTC 2016


Author: dim
Date: Sat Apr 30 10:35:42 2016
New Revision: 298845
URL: https://svnweb.freebsd.org/changeset/base/298845

Log:
  Update from subversion 1.9.2 to 1.9.4.
  
  This contains only bug fixes, no new features.  The repository format is
  also unchanged from 1.9.2.  Full list of changes between 1.9.4 and
  earlier versions:
  
    https://svn.apache.org/repos/asf/subversion/tags/1.9.4/CHANGES
  
  Note that the two security issues fixed in 1.9.4 (CVE-2016-2167 and
  CVE-2016-2168) do not affect the version of Subversion in the FreeBSD
  base system, since neither SASL nor Apache modules are enabled.
  
  Relnotes:	yes
  MFC after:	2 weeks

Modified:
  head/contrib/subversion/CHANGES
  head/contrib/subversion/INSTALL
  head/contrib/subversion/Makefile.in
  head/contrib/subversion/NOTICE
  head/contrib/subversion/build-outputs.mk
  head/contrib/subversion/configure
  head/contrib/subversion/subversion/include/svn_client.h
  head/contrib/subversion/subversion/include/svn_config.h
  head/contrib/subversion/subversion/include/svn_fs.h
  head/contrib/subversion/subversion/include/svn_version.h
  head/contrib/subversion/subversion/libsvn_client/externals.c
  head/contrib/subversion/subversion/libsvn_client/merge.c
  head/contrib/subversion/subversion/libsvn_client/patch.c
  head/contrib/subversion/subversion/libsvn_diff/binary_diff.c
  head/contrib/subversion/subversion/libsvn_fs_base/dag.c
  head/contrib/subversion/subversion/libsvn_fs_base/fs.h
  head/contrib/subversion/subversion/libsvn_fs_fs/cached_data.c
  head/contrib/subversion/subversion/libsvn_fs_fs/dag.c
  head/contrib/subversion/subversion/libsvn_fs_fs/fs.h
  head/contrib/subversion/subversion/libsvn_fs_fs/fs_fs.c
  head/contrib/subversion/subversion/libsvn_fs_fs/fs_fs.h
  head/contrib/subversion/subversion/libsvn_fs_fs/rep-cache-db.h
  head/contrib/subversion/subversion/libsvn_fs_fs/transaction.c
  head/contrib/subversion/subversion/libsvn_fs_fs/tree.c
  head/contrib/subversion/subversion/libsvn_fs_x/rep-cache-db.h
  head/contrib/subversion/subversion/libsvn_ra_local/ra_plugin.c
  head/contrib/subversion/subversion/libsvn_ra_serf/commit.c
  head/contrib/subversion/subversion/libsvn_ra_serf/inherited_props.c
  head/contrib/subversion/subversion/libsvn_ra_serf/merge.c
  head/contrib/subversion/subversion/libsvn_ra_serf/multistatus.c
  head/contrib/subversion/subversion/libsvn_ra_serf/ra_serf.h
  head/contrib/subversion/subversion/libsvn_ra_serf/replay.c
  head/contrib/subversion/subversion/libsvn_ra_serf/serf.c
  head/contrib/subversion/subversion/libsvn_ra_serf/util.c
  head/contrib/subversion/subversion/libsvn_ra_svn/client.c
  head/contrib/subversion/subversion/libsvn_ra_svn/deprecated.c
  head/contrib/subversion/subversion/libsvn_ra_svn/marshal.c
  head/contrib/subversion/subversion/libsvn_repos/dump.c
  head/contrib/subversion/subversion/libsvn_repos/log.c
  head/contrib/subversion/subversion/libsvn_repos/repos.c
  head/contrib/subversion/subversion/libsvn_subr/auth.c
  head/contrib/subversion/subversion/libsvn_subr/cache-membuffer.c
  head/contrib/subversion/subversion/libsvn_subr/eol.c
  head/contrib/subversion/subversion/libsvn_subr/gpg_agent.c
  head/contrib/subversion/subversion/libsvn_subr/internal_statements.h
  head/contrib/subversion/subversion/libsvn_subr/prompt.c
  head/contrib/subversion/subversion/libsvn_subr/sqlite.c
  head/contrib/subversion/subversion/libsvn_subr/string.c
  head/contrib/subversion/subversion/libsvn_subr/utf_validate.c
  head/contrib/subversion/subversion/libsvn_subr/version.c
  head/contrib/subversion/subversion/libsvn_wc/deprecated.c
  head/contrib/subversion/subversion/libsvn_wc/wc-checks.h
  head/contrib/subversion/subversion/libsvn_wc/wc-metadata.h
  head/contrib/subversion/subversion/libsvn_wc/wc-queries.h
  head/contrib/subversion/subversion/libsvn_wc/wc-queries.sql
  head/contrib/subversion/subversion/libsvn_wc/wc_db_pristine.c
  head/contrib/subversion/subversion/svn/conflict-callbacks.c
  head/contrib/subversion/subversion/svn/diff-cmd.c
  head/contrib/subversion/subversion/svn/lock-cmd.c
  head/contrib/subversion/subversion/svn/unlock-cmd.c
  head/contrib/subversion/subversion/svnlook/svnlook.c
  head/contrib/subversion/subversion/svnserve/cyrus_auth.c
  head/contrib/subversion/win-tests.py
  head/usr.bin/svn/Makefile.inc
  head/usr.bin/svn/svn_private_config.h
Directory Properties:
  head/contrib/subversion/   (props changed)

Modified: head/contrib/subversion/CHANGES
==============================================================================
--- head/contrib/subversion/CHANGES	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/CHANGES	Sat Apr 30 10:35:42 2016	(r298845)
@@ -1,3 +1,91 @@
+Version 1.9.4
+(28 Apr 2016, from /branches/1.9.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.9.4
+
+ User-visible changes:
+  - Client-side bugfixes:
+    * diff: support '--summarize --ignore-properties' (part of issue #4567)
+    * checkout: fix performance regression on NFS (r1710167)
+    * gpg-agent: properly handle passwords with percent characters (issue #4611)
+    * svn-graph.pl: fix assertion about a non-canonical path (r1729060 et al)
+    * hot-backup.py: better input validation (r1721174, r1721175)
+    * commit: abort on Ctrl-C in plaintext password prompt (issue #4624)
+    * diff: produce proper forward binary diffs with --git (r1704292, r1704573)
+    * ra_serf: fix deleting directories with many files (issue #4557)
+
+  - Server-side bugfixes:
+    * 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)
+
+  - Client-side and server-side bugfixes:
+    * update INSTALL documentation file (r1703470 et al)
+    * fix potential memory access bugs (r1722860 et al)
+    * fix potential out of bounds read in svn_repos_get_logs5() (r1738259)
+
+  - Bindings bugfixes:
+    * ignore absent nodes in javahl version of svn status -u (r1720643)
+
+ Developer-visible changes:
+  - General:
+    * 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)
+    * fix inconsistent behavior of inherited property API (r1717874 et al)
+
+  - API changes:
+    * properly interpret parameters in svn_wc_get_diff_editor6() (r1728308)
+
+
+Version 1.9.3
+(15 Dec 2015, from /branches/1.9.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.9.3
+
+ User-visible changes:
+  - Client-side bugfixes:
+    * svn: fix possible crash in auth credentials cache (r1705328)
+    * cleanup: avoid unneeded memory growth during pristine cleanup (r1706241)
+    * diff: fix crash when repository is on server root (r1705060 et al)
+    * fix translations for commit notifications (r1709389, r1709562)
+    * ra_serf: fix crash in multistatus parser (r1706323, r1706324)
+    * 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)
+    * ra_local: disable zero-copy code path (r1718167)
+
+  - Server-side bugfixes:
+    * mod_dav_svn: fix heap overflow with skel-encoded requests (CVE-2015-5343)
+    * mod_authz_svn: fix authz with mod_auth_kerb/mod_auth_ntlm (issue #4602)
+    * mod_dav_svn: fix display of process ID in cache statistics (r1709553)
+    * 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)
+
+  - Client-side and server-side bugfixes:
+    * fix heap overflow in svn:// protocol parser (CVE-2015-5259)
+
+  - Bindings bugfixes:
+    * javahl: fix ABI incompatibilty with 1.8 (r1710104)
+    * javahl: allow non-absolute paths in SVNClient.vacuum (r1710215, r1710290)
+
+ Developer-visible changes:
+  - General:
+    * fix patch filter invocation in svn_client_patch() (r1706783)
+    * add @since information to config defines (r1706983, r1706999)
+    * fix running the tests in compatibility mode (r1706375)
+    * clarify documentation of svn_fs_node_created_rev() (r1717154)
+
+  - API changes:
+    * fix overflow detection in svn_stringbuf_remove and _replace (r1714358)
+    * don't ignore some of the parameters to svn_ra_svn_create_conn3 (r1714314)
+
+
 Version 1.9.2
 (30 Sep 2015, from /branches/1.9.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.9.2
@@ -118,7 +206,7 @@ http://svn.apache.org/repos/asf/subversi
     * 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)
+      you change a property on the directory (issue #2118)
     * fsfs: temporary transaction properties are preserved when commit is
       interrupted (r1549907 et al)
     * fsfs: speed up transaction creation (r1544719)
@@ -794,6 +882,51 @@ http://svn.apache.org/repos/asf/subversi
     * javahl: allow compiling with a C++11 compiler (r1684412)
 
 
+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 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)
+
+  - Client-side and server-side bugfixes:
+    * update INSTALL documentation file (r1703470, r1703475)
+
+ Developer-visible changes:
+  - General:
+    * fix javahl test suite to work on a symlinked RAM disk (r1539230)
+    * fix ruby test suite to work with test-unit gem (r1714790)
+
+
+Version 1.8.15
+(15 Dec 2015, from /branches/1.8.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.8.15
+
+ User-visible changes:
+  - Client-side bugfixes:
+    * gpg-agent: fix crash with non-canonical $HOME (r1691928, issue #4584)
+
+  - Client-side and server-side bugfixes:
+    * fix a segfault with old style text delta (r1618472 et al)
+
+  - Server-side bugfixes:
+    * mod_dav_svn: fix heap overflow with skel-encoded requests (CVE-2015-5343)
+    * fsfs: reduce memory allocation with Apache (r1591005 et al)
+    * mod_dav_svn: emit first log items as soon as possible (r1666965 et al)
+    * mod_dav_svn: use LimitXMLRequestBody for skel-encoded requests (r1687812)
+
+  - Bindings bugfixes:
+    * swig: fix memory corruption in svn_client_copy_source_t (r1694929)
+
+ Developer-visible changes:
+  - General:
+    * better configure-time detection of httpd authz fix (r1687304 et al)
+    * fix compilation with apr 1.2.x (r1701237)
+
+
 Version 1.8.14
 (5 Aug 2015, from /branches/1.8.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.8.14

Modified: head/contrib/subversion/INSTALL
==============================================================================
--- head/contrib/subversion/INSTALL	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/INSTALL	Sat Apr 30 10:35:42 2016	(r298845)
@@ -3,7 +3,7 @@
                           A Quick Guide
                ======================================
 
-$LastChangedDate: 2015-07-26 23:03:10 +0000 (Sun, 26 Jul 2015) $
+$LastChangedDate: 2015-12-12 04:00:43 +0000 (Sat, 12 Dec 2015) $
 
 
 Contents:
@@ -199,48 +199,6 @@ I.    INTRODUCTION
       Apache Portable Runtime (APR) and the APR Utility (APR-util)
       libraries.
 
-
-        ****************************************************************
-        **       IMPORTANT ISSUE ABOUT APR VERSIONS:  READ THIS       **
-        **       IF UPGRADING FROM MUCH OLDER SUBVERSION              **
-        ****************************************************************
-        |                                                              |
-        | APR 0.9.X and 1.X are binary-incompatible.                   |
-        |                                                              |
-        | This means:                                                  |
-        |                                                              |
-        |   - if you are already using Subversion with APR 0.9.X, and  |
-        |     then upgrade your libapr to 1.X without rebuilding       |
-        |     Subversion, things will break and segfault.              |
-        |                                                              |
-        |   - if your Subversion server libraries are linked to one    |
-        |     version of APR, but your Apache server is linked to a    |
-        |     different version, things will break and segfault.       |
-        |                                                              |
-        | Subversion distribution dependencies:                        |
-        | -------------------------------------                        |
-        |                                                              |
-        | For a long time, Subversion's main distribution contained    |
-        | APR and APR-UTIL (both 0.9.x), plus a few other things that  |
-        | we couldn't count on the installation system having.  But    |
-        | nowadays, Subversion's requirements are no longer exotic,    |
-        | and so our main distribution contains just the Subversion    |
-        | source code itself -- people compiling Subversion are        |
-        | expected to either have the APR libraries already installed  |
-        | on their system, or to be capable of fetching them easily.   |
-        |                                                              |
-        | Note that it's *perfectly* safe to use APR 1.X from the      |
-        | beginning.  In fact, we recommend it.  If you're building    |
-        | Subversion for the first time, there's no compatibility      |
-        | issue to worry about, so grab the latest version of APR.     |
-        |                                                              |
-        | If you already have a Subversion installation using APR      |
-        | 0.9.x, it's still possible to move to APR 1.X safely.  Just  |
-        | be sure to recompile Subversion (and Apache httpd if         |
-        | necessary) after upgrading APR!                              |
-        |______________________________________________________________|
-
-
       If you do not have a pre-installed APR and APR-util, you will need
       to get these yourself:
 
@@ -960,14 +918,6 @@ II.   INSTALLATION
 
       This step is only required for building the server dso modules.
 
-      The Subversion gen-make.py script must be run before building Apache or
-      Apache and Subversion will be running incompatible versions of apr.
-
-      C:>cd src-%DIR%
-      C:>python gen-make.py -t dsp --with-httpd=..\httpd-2.0.58
-         --with-berkeley-db=db4-win32 --with-openssl=..\openssl-0.9.7f
-         --with-zlib=..\zlib --with-libintl=..\svn-win32-libintl
-      C:>cd ..
       C:>set APACHEDIR=C:\Program Files\Apache Group\Apache2
       C:>msdev httpd-2.0.58\apache.dsw /MAKE "BuildBin - Win32 Release"
 
@@ -1042,7 +992,6 @@ II.   INSTALLATION
         The Apache/APR projects required by Subversion are:
         apr-util\libaprutil.dsp, apr\libapr.dsp,
         apr-iconv\libapriconv.dsp, apr-util\xml\expat\lib\xml.dsp,
-        apr-util\uri\gen_uri_delims.dsp (for APR 0.9.x),
         apr-iconv\ccs\libapriconv_ccs_modules.dsp, and
         apr-iconv\ces\libapriconv_ces_modules.dsp.
       * If the server dso modules are being built and tested Apache must not
@@ -1168,33 +1117,13 @@ III.  BUILDING A SUBVERSION SERVER
       1.  Obtaining and Installing Apache 2
 
       Subversion tries to compile against the latest released version
-      of Apache httpd 2.X.  The easiest thing for you to do is download
+      of Apache httpd 2.2+.  The easiest thing for you to do is download
       a source tarball of the latest release and unpack that.
 
-
-        ****************************************************************
-        **    IMPORTANT ISSUE ABOUT APACHE VERSIONS:  READ THIS.      **
-        **                                                            **
-        ****************************************************************
-        |                                                              |
-        | First, be sure to read the APR version warning box, back in  |
-        | section I.C.1, which explains that APR 0.9.x and 1.X are     |
-        | binary-incompatible.                                         |
-        |                                                              |
-        |    Apache HTTPD 2.0 uses APR 0.9.x.                          |
-        |    Apache HTTPD 2.2 uses APR 1.2.x.                          |
-        |                                                              |
-        | We recommend using the latest Apache.  However, whatever     |
-        | version you choose, you *must* ensure that Subversion        |
-        | and Apache are using the same version of APR.  If you don't, |
-        | things will segfault and break.                              |
-        |______________________________________________________________|
-
-
-      If you have questions about the Apache httpd 2.0 build, please consult
+      If you have questions about the Apache httpd 2.2 build, please consult
       the httpd install documentation:
 
-          http://httpd.apache.org/docs-2.0/install.html
+          http://httpd.apache.org/docs-2.2/install.html
 
       At the top of the httpd tree:
 
@@ -1240,7 +1169,7 @@ III.  BUILDING A SUBVERSION SERVER
       ---------------------------------------------------------
 
       Go back into your subversion working copy and run ./autogen.sh if
-      you need to.  Then, assuming Apache httpd 2.0 is installed in the
+      you need to.  Then, assuming Apache httpd 2.2 is installed in the
       standard location, run:
 
           $ ./configure
@@ -1250,7 +1179,7 @@ III.  BUILDING A SUBVERSION SERVER
       look for other libsvn_*.so libraries on your system.
 
       If you see a warning message that the build of mod_dav_svn is
-      being skipped, this may be because you have Apache httpd 2.X
+      being skipped, this may be because you have Apache httpd 2.x
       installed in a non-standard location.  You can use the
       "--with-apxs=" option to locate the apxs script:
 
@@ -1292,7 +1221,7 @@ III.  BUILDING A SUBVERSION SERVER
       /usr/local/apache2/conf/httpd.conf to reflect your setup.
       At a minimum you should look at the User, Group and ServerName
       directives.  Full details on setting up apache can be found at:
-      http://httpd.apache.org/docs-2.0/
+      http://httpd.apache.org/docs-2.2/
 
       First, your httpd.conf needs to load the mod_dav_svn module.
       If you pass --enable-mod-activation to Subversion's configure,
@@ -1346,6 +1275,7 @@ III.  BUILDING A SUBVERSION SERVER
                  Require group svn_readers
              </Limit>
 
+      ### FIXME Tutorials section refers to old 2.0 docs
       These are only a few simple examples.  For a complete tutorial
       on Apache access control, please consider taking a look at the
       tutorials found under "Security" on the following page:
@@ -1372,7 +1302,7 @@ III.  BUILDING A SUBVERSION SERVER
 
       NOTE: If you are unfamiliar with an Apache directive, or not exactly
       sure about what it does, don't hesitate to look it up in the
-      documentation: http://httpd.apache.org/docs-2.0/mod/directives.html.
+      documentation: http://httpd.apache.org/docs-2.2/mod/directives.html.
 
       NOTE: Make sure that the user 'nobody' (or whatever UID the
       httpd process runs as) has permission to read and write the

Modified: head/contrib/subversion/Makefile.in
==============================================================================
--- head/contrib/subversion/Makefile.in	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/Makefile.in	Sat Apr 30 10:35:42 2016	(r298845)
@@ -917,13 +917,15 @@ swig-rb: autogen-swig-rb
 check-swig-rb: swig-rb svnserve
 	$(TEST_SHLIB_VAR_SWIG_RB) \
 	cd $(SWIG_RB_DIR); \
-          if [ "$(RUBY_MAJOR)" -eq 1 -a "$(RUBY_MINOR)" -lt 9 ] ; then \
-            $(RUBY) -I $(SWIG_RB_SRC_DIR) \
-              $(SWIG_RB_SRC_DIR)/test/run-test.rb \
-	      --verbose=$(SWIG_RB_TEST_VERBOSE); \
-          else \
-	    $(RUBY) -I $(SWIG_RB_SRC_DIR) \
-	      $(SWIG_RB_SRC_DIR)/test/run-test.rb; \
+	  check_rb() { \
+	    $(RUBY) -I $(SWIG_RB_SRC_DIR) $(SWIG_RB_SRC_DIR)/test/run-test.rb "$$@"; \
+	  }; \
+	  if check_rb --help 2>&1 | grep -q -- --collector; then \
+	    check_rb --collector=dir --verbose=$(SWIG_RB_TEST_VERBOSE); \
+	  elif [ "$(RUBY_MAJOR)" -eq 1 -a "$(RUBY_MINOR)" -lt 9 ] ; then \
+	    check_rb --verbose=$(SWIG_RB_TEST_VERBOSE); \
+	  else \
+	    check_rb; \
           fi
 
 EXTRACLEAN_SWIG_RB=rm -f $(SWIG_RB_SRC_DIR)/svn_*.c $(SWIG_RB_SRC_DIR)/core.c

Modified: head/contrib/subversion/NOTICE
==============================================================================
--- head/contrib/subversion/NOTICE	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/NOTICE	Sat Apr 30 10:35:42 2016	(r298845)
@@ -1,5 +1,5 @@
 Apache Subversion
-Copyright 2015 The Apache Software Foundation
+Copyright 2016 The Apache Software Foundation
 
 This product includes software developed by many people, and distributed
 under Contributor License Agreements to The Apache Software Foundation

Modified: head/contrib/subversion/build-outputs.mk
==============================================================================
--- head/contrib/subversion/build-outputs.mk	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/build-outputs.mk	Sat Apr 30 10:35:42 2016	(r298845)
@@ -521,8 +521,8 @@ subversion/bindings/cxxhl/libsvncxxhl-1.
 	cd subversion/bindings/cxxhl && $(LINK_CXX_LIB) $(libsvncxxhl_LDFLAGS) -o libsvncxxhl-1.la $(LT_NO_UNDEFINED) $(libsvncxxhl_OBJECTS) ../../../subversion/libsvn_repos/libsvn_repos-1.la ../../../subversion/libsvn_client/libsvn_client-1.la ../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../subversion/libsvn_ra/libsvn_ra-1.la ../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../subversion/libsvn_diff/libsvn_diff-1.la ../../../subversion/libsvn_subr/libsvn_subr-1.la ../../../subversion/libsvn_fs/libsvn_fs-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(LIBS)
 
 libsvnjavahl_PATH = subversion/bindings/javahl/native
-libsvnjavahl_DEPS = $(javahl_java_DEPS) $(javahl_callback_javah_DEPS) $(javahl_remote_javah_DEPS) $(javahl_types_javah_DEPS) $(javahl_util_javah_DEPS) $(javahl_javah_DEPS) subversion/bindings/javahl/native/Array.lo subversion/bindings/javahl/native/AuthnCallback.lo subversion/bindings/javahl/native/BlameCallback.lo subversion/bindings/javahl/native/ChangelistCallback.lo subversion/bindings/javahl/native/ClientContext.lo subversion/bindings/javahl/native/CommitCallback.lo subversion/bindings/javahl/native/CommitEditor.lo subversion/bindings/javahl/native/CommitMessage.lo subversion/bindings/javahl/native/CopySources.lo subversion/bindings/javahl/native/CreateJ.lo subversion/bindings/javahl/native/Credential.lo subversion/bindings/javahl/native/DiffOptions.lo subversion/bindings/javahl/native/DiffSummaryReceiver.lo subversion/bindings/javahl/native/EditorCallbacks.lo subversion/bindings/javahl/native/EditorProxy.lo subversion/bindings/javahl/native/EnumMapper.lo subversion/bindings/ja
 vahl/native/ExternalItem.lo subversion/bindings/javahl/native/File.lo subversion/bindings/javahl/native/ImportFilterCallback.lo subversion/bindings/javahl/native/InfoCallback.lo subversion/bindings/javahl/native/InputStream.lo subversion/bindings/javahl/native/Iterator.lo subversion/bindings/javahl/native/JNIByteArray.lo subversion/bindings/javahl/native/JNICriticalSection.lo subversion/bindings/javahl/native/JNIMutex.lo subversion/bindings/javahl/native/JNIStackElement.lo subversion/bindings/javahl/native/JNIStringHolder.lo subversion/bindings/javahl/native/JNIUtil.lo subversion/bindings/javahl/native/ListCallback.lo subversion/bindings/javahl/native/LockTokenTable.lo subversion/bindings/javahl/native/LogMessageCallback.lo subversion/bindings/javahl/native/MessageReceiver.lo subversion/bindings/javahl/native/NativeStream.lo subversion/bindings/javahl/native/OperationContext.lo subversion/bindings/javahl/native/OutputStream.lo subversion/bindings/javahl/native/PatchCallback.lo subve
 rsion/bindings/javahl/native/Path.lo subvers!
 ion/bindings/javahl/native/Pool.lo subversion/bindings/javahl/native/Prompter.lo subversion/bindings/javahl/native/PropertyTable.lo subversion/bindings/javahl/native/ProplistCallback.lo subversion/bindings/javahl/native/RemoteSession.lo subversion/bindings/javahl/native/RemoteSessionContext.lo subversion/bindings/javahl/native/ReposFreezeAction.lo subversion/bindings/javahl/native/ReposNotifyCallback.lo subversion/bindings/javahl/native/ReposVerifyCallback.lo subversion/bindings/javahl/native/Revision.lo subversion/bindings/javahl/native/RevisionRange.lo subversion/bindings/javahl/native/RevisionRangeList.lo subversion/bindings/javahl/native/SVNBase.lo subversion/bindings/javahl/native/SVNClient.lo subversion/bindings/javahl/native/SVNRepos.lo subversion/bindings/javahl/native/StateReporter.lo subversion/bindings/javahl/native/StatusCallback.lo subversion/bindings/javahl/native/StringArray.lo subversion/bindings/javahl/native/SubversionException.lo subversion/bindings/javahl/native/
 Targets.lo subversion/bindings/javahl/native/Utility.lo subversion/bindings/javahl/native/VersionExtended.lo subversion/bindings/javahl/native/deprecated.lo subversion/bindings/javahl/native/jniwrapper/jni_base.lo subversion/bindings/javahl/native/jniwrapper/jni_channel.lo subversion/bindings/javahl/native/jniwrapper/jni_class_cache.lo subversion/bindings/javahl/native/jniwrapper/jni_io_stream.lo subversion/bindings/javahl/native/jniwrapper/jni_iterator.lo subversion/bindings/javahl/native/jniwrapper/jni_list.lo subversion/bindings/javahl/native/jniwrapper/jni_string_map.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.lo subve
 rsion/bindings/javahl/native/org_apache_subv!
 ersion_ja!
 vahl_remote_StateReporter.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RevisionRangeList.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RuntimeVersion.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_Version.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_VersionExtended.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_SubstLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.lo subversion/libsvn_repos/libsvn_repos-1.la subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subver
 sion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/libsvn_fs/libsvn_fs-1.la
-libsvnjavahl_OBJECTS = Array.lo AuthnCallback.lo BlameCallback.lo ChangelistCallback.lo ClientContext.lo CommitCallback.lo CommitEditor.lo CommitMessage.lo CopySources.lo CreateJ.lo Credential.lo DiffOptions.lo DiffSummaryReceiver.lo EditorCallbacks.lo EditorProxy.lo EnumMapper.lo ExternalItem.lo File.lo ImportFilterCallback.lo InfoCallback.lo InputStream.lo Iterator.lo JNIByteArray.lo JNICriticalSection.lo JNIMutex.lo JNIStackElement.lo JNIStringHolder.lo JNIUtil.lo ListCallback.lo LockTokenTable.lo LogMessageCallback.lo MessageReceiver.lo NativeStream.lo OperationContext.lo OutputStream.lo PatchCallback.lo Path.lo Pool.lo Prompter.lo PropertyTable.lo ProplistCallback.lo RemoteSession.lo RemoteSessionContext.lo ReposFreezeAction.lo ReposNotifyCallback.lo ReposVerifyCallback.lo Revision.lo RevisionRange.lo RevisionRangeList.lo SVNBase.lo SVNClient.lo SVNRepos.lo StateReporter.lo StatusCallback.lo StringArray.lo SubversionException.lo Targets.lo Utility.lo VersionExtended.lo deprecat
 ed.lo jniwrapper/jni_base.lo jniwrapper/jni_channel.lo jniwrapper/jni_class_cache.lo jniwrapper/jni_io_stream.lo jniwrapper/jni_iterator.lo jniwrapper/jni_list.lo jniwrapper/jni_string_map.lo org_apache_subversion_javahl_SVNClient.lo org_apache_subversion_javahl_SVNRepos.lo org_apache_subversion_javahl_remote_CommitEditor.lo org_apache_subversion_javahl_remote_RemoteFactory.lo org_apache_subversion_javahl_remote_RemoteSession.lo org_apache_subversion_javahl_remote_StateReporter.lo org_apache_subversion_javahl_types_RevisionRangeList.lo org_apache_subversion_javahl_types_RuntimeVersion.lo org_apache_subversion_javahl_types_Version.lo org_apache_subversion_javahl_types_VersionExtended.lo org_apache_subversion_javahl_util_ConfigImpl_Category.lo org_apache_subversion_javahl_util_ConfigLib.lo org_apache_subversion_javahl_util_DiffLib.lo org_apache_subversion_javahl_util_PropLib.lo org_apache_subversion_javahl_util_SubstLib.lo org_apache_subversion_javahl_util_TunnelChannel.lo
+libsvnjavahl_DEPS = $(javahl_java_DEPS) $(javahl_callback_javah_DEPS) $(javahl_remote_javah_DEPS) $(javahl_types_javah_DEPS) $(javahl_util_javah_DEPS) $(javahl_javah_DEPS) subversion/bindings/javahl/native/Array.lo subversion/bindings/javahl/native/AuthnCallback.lo subversion/bindings/javahl/native/BlameCallback.lo subversion/bindings/javahl/native/ChangelistCallback.lo subversion/bindings/javahl/native/ClientContext.lo subversion/bindings/javahl/native/CommitCallback.lo subversion/bindings/javahl/native/CommitEditor.lo subversion/bindings/javahl/native/CommitMessage.lo subversion/bindings/javahl/native/CopySources.lo subversion/bindings/javahl/native/CreateJ.lo subversion/bindings/javahl/native/Credential.lo subversion/bindings/javahl/native/DiffOptions.lo subversion/bindings/javahl/native/DiffSummaryReceiver.lo subversion/bindings/javahl/native/EditorCallbacks.lo subversion/bindings/javahl/native/EditorProxy.lo subversion/bindings/javahl/native/EnumMapper.lo subversion/bindings/ja
 vahl/native/ExternalItem.lo subversion/bindings/javahl/native/File.lo subversion/bindings/javahl/native/ImportFilterCallback.lo subversion/bindings/javahl/native/InfoCallback.lo subversion/bindings/javahl/native/InputStream.lo subversion/bindings/javahl/native/Iterator.lo subversion/bindings/javahl/native/JNIByteArray.lo subversion/bindings/javahl/native/JNICriticalSection.lo subversion/bindings/javahl/native/JNIMutex.lo subversion/bindings/javahl/native/JNIStackElement.lo subversion/bindings/javahl/native/JNIStringHolder.lo subversion/bindings/javahl/native/JNIUtil.lo subversion/bindings/javahl/native/ListCallback.lo subversion/bindings/javahl/native/LockTokenTable.lo subversion/bindings/javahl/native/LogMessageCallback.lo subversion/bindings/javahl/native/MessageReceiver.lo subversion/bindings/javahl/native/NativeStream.lo subversion/bindings/javahl/native/OperationContext.lo subversion/bindings/javahl/native/OutputStream.lo subversion/bindings/javahl/native/PatchCallback.lo subve
 rsion/bindings/javahl/native/Path.lo subvers!
 ion/bindings/javahl/native/Pool.lo subversion/bindings/javahl/native/Prompter.lo subversion/bindings/javahl/native/PropertyTable.lo subversion/bindings/javahl/native/ProplistCallback.lo subversion/bindings/javahl/native/RemoteSession.lo subversion/bindings/javahl/native/RemoteSessionContext.lo subversion/bindings/javahl/native/ReposFreezeAction.lo subversion/bindings/javahl/native/ReposNotifyCallback.lo subversion/bindings/javahl/native/ReposVerifyCallback.lo subversion/bindings/javahl/native/Revision.lo subversion/bindings/javahl/native/RevisionRange.lo subversion/bindings/javahl/native/RevisionRangeList.lo subversion/bindings/javahl/native/SVNBase.lo subversion/bindings/javahl/native/SVNClient.lo subversion/bindings/javahl/native/SVNRepos.lo subversion/bindings/javahl/native/StateReporter.lo subversion/bindings/javahl/native/StatusCallback.lo subversion/bindings/javahl/native/StringArray.lo subversion/bindings/javahl/native/SubversionException.lo subversion/bindings/javahl/native/
 Targets.lo subversion/bindings/javahl/native/Utility.lo subversion/bindings/javahl/native/VersionExtended.lo subversion/bindings/javahl/native/deprecated.lo subversion/bindings/javahl/native/jniwrapper/jni_base.lo subversion/bindings/javahl/native/jniwrapper/jni_channel.lo subversion/bindings/javahl/native/jniwrapper/jni_class_cache.lo subversion/bindings/javahl/native/jniwrapper/jni_io_stream.lo subversion/bindings/javahl/native/jniwrapper/jni_iterator.lo subversion/bindings/javahl/native/jniwrapper/jni_list.lo subversion/bindings/javahl/native/jniwrapper/jni_string_map.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_NativeResources.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.lo subversion
 /bindings/javahl/native/org_apache_subversio!
 n_javahl_!
 remote_RemoteSession.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_StateReporter.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RevisionRangeList.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_RuntimeVersion.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_Version.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_types_VersionExtended.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_DiffLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_PropLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_SubstLib.lo subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.lo subversion/libsvn_repos/libsvn_repos-1.la subv
 ersion/libsvn_client/libsvn_client-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la subversion/libsvn_fs/libsvn_fs-1.la
+libsvnjavahl_OBJECTS = Array.lo AuthnCallback.lo BlameCallback.lo ChangelistCallback.lo ClientContext.lo CommitCallback.lo CommitEditor.lo CommitMessage.lo CopySources.lo CreateJ.lo Credential.lo DiffOptions.lo DiffSummaryReceiver.lo EditorCallbacks.lo EditorProxy.lo EnumMapper.lo ExternalItem.lo File.lo ImportFilterCallback.lo InfoCallback.lo InputStream.lo Iterator.lo JNIByteArray.lo JNICriticalSection.lo JNIMutex.lo JNIStackElement.lo JNIStringHolder.lo JNIUtil.lo ListCallback.lo LockTokenTable.lo LogMessageCallback.lo MessageReceiver.lo NativeStream.lo OperationContext.lo OutputStream.lo PatchCallback.lo Path.lo Pool.lo Prompter.lo PropertyTable.lo ProplistCallback.lo RemoteSession.lo RemoteSessionContext.lo ReposFreezeAction.lo ReposNotifyCallback.lo ReposVerifyCallback.lo Revision.lo RevisionRange.lo RevisionRangeList.lo SVNBase.lo SVNClient.lo SVNRepos.lo StateReporter.lo StatusCallback.lo StringArray.lo SubversionException.lo Targets.lo Utility.lo VersionExtended.lo deprecat
 ed.lo jniwrapper/jni_base.lo jniwrapper/jni_channel.lo jniwrapper/jni_class_cache.lo jniwrapper/jni_io_stream.lo jniwrapper/jni_iterator.lo jniwrapper/jni_list.lo jniwrapper/jni_string_map.lo org_apache_subversion_javahl_NativeResources.lo org_apache_subversion_javahl_SVNClient.lo org_apache_subversion_javahl_SVNRepos.lo org_apache_subversion_javahl_remote_CommitEditor.lo org_apache_subversion_javahl_remote_RemoteFactory.lo org_apache_subversion_javahl_remote_RemoteSession.lo org_apache_subversion_javahl_remote_StateReporter.lo org_apache_subversion_javahl_types_RevisionRangeList.lo org_apache_subversion_javahl_types_RuntimeVersion.lo org_apache_subversion_javahl_types_Version.lo org_apache_subversion_javahl_types_VersionExtended.lo org_apache_subversion_javahl_util_ConfigImpl_Category.lo org_apache_subversion_javahl_util_ConfigLib.lo org_apache_subversion_javahl_util_DiffLib.lo org_apache_subversion_javahl_util_PropLib.lo org_apache_subversion_javahl_util_SubstLib.lo org_apache_sub
 version_javahl_util_TunnelChannel.lo
 subversion/bindings/javahl/native/libsvnjavahl-1.la: $(libsvnjavahl_DEPS)
 	cd subversion/bindings/javahl/native && $(LINK_JAVAHL_CXX) $(libsvnjavahl_LDFLAGS) -o libsvnjavahl-1.la $(LT_NO_UNDEFINED) $(libsvnjavahl_OBJECTS) ../../../../subversion/libsvn_repos/libsvn_repos-1.la ../../../../subversion/libsvn_client/libsvn_client-1.la ../../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../../subversion/libsvn_ra/libsvn_ra-1.la ../../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../../subversion/libsvn_diff/libsvn_diff-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la ../../../../subversion/libsvn_fs/libsvn_fs-1.la $(SVN_APRUTIL_LIBS) $(SVN_APR_LIBS) $(SVN_JAVA_SDK_LIBS) $(LIBS)
 
@@ -2268,6 +2268,9 @@ subversion/bindings/javahl/native/jniwra
 subversion/bindings/javahl/native/jniwrapper/jni_string_map.lo: subversion/bindings/javahl/native/jniwrapper/jni_string_map.cpp subversion/bindings/javahl/native/jniwrapper/jni_env.hpp subversion/bindings/javahl/native/jniwrapper/jni_globalref.hpp subversion/bindings/javahl/native/jniwrapper/jni_iterator.hpp subversion/bindings/javahl/native/jniwrapper/jni_object.hpp subversion/bindings/javahl/native/jniwrapper/jni_string.hpp subversion/bindings/javahl/native/jniwrapper/jni_string_map.hpp subversion/svn_private_config.h
 	$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/jniwrapper/jni_string_map.cpp
 
+subversion/bindings/javahl/native/org_apache_subversion_javahl_NativeResources.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_NativeResources.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_NativeResources.h
+	$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_NativeResources.cpp
+
 subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.lo: subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNClient.h subversion/bindings/javahl/native/Array.h subversion/bindings/javahl/native/BlameCallback.h subversion/bindings/javahl/native/ChangelistCallback.h subversion/bindings/javahl/native/ClientContext.h subversion/bindings/javahl/native/CommitCallback.h subversion/bindings/javahl/native/CommitMessage.h subversion/bindings/javahl/native/CopySources.h subversion/bindings/javahl/native/CreateJ.h subversion/bindings/javahl/native/DiffOptions.h subversion/bindings/javahl/native/DiffSummaryReceiver.h subversion/bindings/javahl/native/EnumMapper.h subversion/bindings/javahl/native/ImportFilterCallback.h subversion/bindings/javahl/native/InfoCallback.h subversion/bindings/javahl/native/JNIByteArray.h subversion/bindings/javahl/native/JNIStackElement.h subversion/bindings
 /javahl/native/JNIStringHolder.h subversion/bindings/javahl/native/JNIUtil.h subversion/bindings/javahl/native/ListCallback.h subversion/bindings/javahl/native/LogMessageCallback.h subversion/bindings/javahl/native/OperationContext.h subversion/bindings/javahl/native/OutputStream.h subversion/bindings/javahl/native/PatchCallback.h subversion/bindings/javahl/native/Path.h subversion/bindings/javahl/native/Pool.h subversion/bindings/javahl/native/Prompter.h subversion/bindings/javahl/native/PropertyTable.h subversion/bindings/javahl/native/ProplistCallback.h subversion/bindings/javahl/native/Revision.h subversion/bindings/javahl/native/RevisionRange.h subversion/bindings/javahl/native/SVNBase.h subversion/bindings/javahl/native/SVNClient.h subversion/bindings/javahl/native/StatusCallback.h subversion/bindings/javahl/native/StringArray.h subversion/bindings/javahl/native/Targets.h subversion/bindings/javahl/native/VersionExtended.h subversion/bindings/javahl/native/jniwrapper/jni_env.h
 pp subversion/bindings/javahl/native/jniwrap!
 per/jni_globalref.hpp subversion/bindings/javahl/native/version.h subversion/include/private/svn_atomic.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_wc.h subversion/svn_private_config.h
 	$(COMPILE_JAVAHL_CXX) $(canonicalized_srcdir)subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
 
@@ -3139,7 +3142,7 @@ subversion/mod_dav_svn/reports/update.lo
 subversion/mod_dav_svn/repos.lo: subversion/mod_dav_svn/repos.c subversion/include/mod_authz_svn.h subversion/include/mod_dav_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_log.h subversion/include/private/svn_repos_private.h subversion/include/private/svn_skel.h subversion/include/private/svn_sorts_private.h subversion/include/private/svn_string_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_ctype.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion
 /include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_sorts.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
 	if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/repos.c ; else echo "fake" > subversion/mod_dav_svn/repos.lo ; fi
 
-subversion/mod_dav_svn/status.lo: subversion/mod_dav_svn/status.c subversion/include/mod_authz_svn.h subversion/include/private/svn_cache.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h
+subversion/mod_dav_svn/status.lo: subversion/mod_dav_svn/status.c subversion/include/mod_authz_svn.h subversion/include/private/svn_cache.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_skel.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h subversion/svn_private_config.h
 	if $(INSTALL_APACHE_MODS) ; then $(COMPILE_APACHE_MOD) $(canonicalized_srcdir)subversion/mod_dav_svn/status.c ; else echo "fake" > subversion/mod_dav_svn/status.lo ; fi
 
 subversion/mod_dav_svn/util.lo: subversion/mod_dav_svn/util.c subversion/include/mod_authz_svn.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/private/svn_skel.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_xml.h subversion/mod_dav_svn/dav_svn.h

Modified: head/contrib/subversion/configure
==============================================================================
--- head/contrib/subversion/configure	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/configure	Sat Apr 30 10:35:42 2016	(r298845)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for subversion 1.9.2.
+# Generated by GNU Autoconf 2.69 for subversion 1.9.4.
 #
 # Report bugs to <http://subversion.apache.org/>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='subversion'
 PACKAGE_TARNAME='subversion'
-PACKAGE_VERSION='1.9.2'
-PACKAGE_STRING='subversion 1.9.2'
+PACKAGE_VERSION='1.9.4'
+PACKAGE_STRING='subversion 1.9.4'
 PACKAGE_BUGREPORT='http://subversion.apache.org/'
 PACKAGE_URL=''
 
@@ -1471,7 +1471,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures subversion 1.9.2 to adapt to many kinds of systems.
+\`configure' configures subversion 1.9.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1537,7 +1537,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of subversion 1.9.2:";;
+     short | recursive ) echo "Configuration of subversion 1.9.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1751,7 +1751,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-subversion configure 1.9.2
+subversion configure 1.9.4
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2295,7 +2295,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by subversion $as_me 1.9.2, which was
+It was created by subversion $as_me 1.9.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2675,8 +2675,8 @@ ac_configure="$SHELL $ac_aux_dir/configu
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring Subversion 1.9.2" >&5
-$as_echo "$as_me: Configuring Subversion 1.9.2" >&6;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring Subversion 1.9.4" >&5
+$as_echo "$as_me: Configuring Subversion 1.9.4" >&6;}
 
 abs_srcdir="`cd $srcdir && pwd`"
 
@@ -20314,16 +20314,16 @@ $as_echo_n "checking for KWallet... " >&
                     fi
                   done
                   qt_include_dirs="`$PKG_CONFIG --cflags-only-I QtCore QtDBus QtGui`"
-                  kde_dir="`$KDE4_CONFIG --prefix`"
-                  SVN_KWALLET_INCLUDES="$DBUS_CPPFLAGS $qt_include_dirs -I$kde_dir/include"
+                  kde_incdir="`$KDE4_CONFIG --install include`"
+                  SVN_KWALLET_INCLUDES="$DBUS_CPPFLAGS $qt_include_dirs -I$kde_incdir"
                   qt_libs_other_options="`$PKG_CONFIG --libs-only-other QtCore QtDBus QtGui`"
                   SVN_KWALLET_LIBS="$DBUS_LIBS -lQtCore -lQtDBus -lQtGui -lkdecore -lkdeui $qt_libs_other_options"
                   CXXFLAGS="$CXXFLAGS $SVN_KWALLET_INCLUDES"
                   LIBS="$LIBS $SVN_KWALLET_LIBS"
                   qt_lib_dirs="`$PKG_CONFIG --libs-only-L QtCore QtDBus QtGui`"
-                  kde_lib_suffix="`$KDE4_CONFIG --libsuffix`"
+                  kde_libdir="`$KDE4_CONFIG --install lib`"
                   LDFLAGS="$old_LDFLAGS `
-  input_flags="$qt_lib_dirs -L$kde_dir/lib$kde_lib_suffix"
+  input_flags="$qt_lib_dirs -L$kde_libdir"
   output_flags=""
   filtered_dirs="/lib /lib64 /usr/lib /usr/lib64"
   for flag in $input_flags; do
@@ -26750,7 +26750,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by subversion $as_me 1.9.2, which was
+This file was extended by subversion $as_me 1.9.4, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -26816,7 +26816,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-subversion config.status 1.9.2
+subversion config.status 1.9.4
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: head/contrib/subversion/subversion/include/svn_client.h
==============================================================================
--- head/contrib/subversion/subversion/include/svn_client.h	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/subversion/include/svn_client.h	Sat Apr 30 10:35:42 2016	(r298845)
@@ -4098,16 +4098,16 @@ svn_client_mergeinfo_log_eligible(const 
  * @{
  */
 
-/** Recursively vacuum a working copy directory @a dir, removing unnecessary
- * data.
+/** Recursively vacuum a working copy directory @a dir_abspath,
+ * removing unnecessary data.
  *
  * If @a include_externals is @c TRUE, recurse into externals and vacuum them
  * as well.
  *
  * If @a remove_unversioned_items is @c TRUE, remove unversioned items
- * in @a dir after successful working copy cleanup.
+ * in @a dir_abspath after successful working copy cleanup.
  * If @a remove_ignored_items is @c TRUE, remove ignored unversioned items
- * in @a dir after successful working copy cleanup.
+ * in @a dir_abspath after successful working copy cleanup.
  *
  * If @a fix_recorded_timestamps is @c TRUE, this function fixes recorded
  * timestamps for unmodified files in the working copy, reducing comparision

Modified: head/contrib/subversion/subversion/include/svn_config.h
==============================================================================
--- head/contrib/subversion/subversion/include/svn_config.h	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/subversion/include/svn_config.h	Sat Apr 30 10:35:42 2016	(r298845)
@@ -76,18 +76,27 @@ typedef struct svn_config_t svn_config_t
 #define SVN_CONFIG_OPTION_HTTP_PROXY_EXCEPTIONS     "http-proxy-exceptions"
 #define SVN_CONFIG_OPTION_HTTP_TIMEOUT              "http-timeout"
 #define SVN_CONFIG_OPTION_HTTP_COMPRESSION          "http-compression"
+/** @deprecated Not used since 1.8. */
 #define SVN_CONFIG_OPTION_NEON_DEBUG_MASK           "neon-debug-mask"
+/** @since New in 1.5. */
 #define SVN_CONFIG_OPTION_HTTP_AUTH_TYPES           "http-auth-types"
 #define SVN_CONFIG_OPTION_SSL_AUTHORITY_FILES       "ssl-authority-files"
 #define SVN_CONFIG_OPTION_SSL_TRUST_DEFAULT_CA      "ssl-trust-default-ca"
 #define SVN_CONFIG_OPTION_SSL_CLIENT_CERT_FILE      "ssl-client-cert-file"
 #define SVN_CONFIG_OPTION_SSL_CLIENT_CERT_PASSWORD  "ssl-client-cert-password"
+/** @deprecated Not used since 1.8.
+ * @since New in 1.5. */
 #define SVN_CONFIG_OPTION_SSL_PKCS11_PROVIDER       "ssl-pkcs11-provider"
+/** @since New in 1.5. */
 #define SVN_CONFIG_OPTION_HTTP_LIBRARY              "http-library"
+/** @since New in 1.1. */
 #define SVN_CONFIG_OPTION_STORE_PASSWORDS           "store-passwords"
+/** @since New in 1.6. */
 #define SVN_CONFIG_OPTION_STORE_PLAINTEXT_PASSWORDS "store-plaintext-passwords"
 #define SVN_CONFIG_OPTION_STORE_AUTH_CREDS          "store-auth-creds"
+/** @since New in 1.6. */
 #define SVN_CONFIG_OPTION_STORE_SSL_CLIENT_CERT_PP  "store-ssl-client-cert-pp"
+/** @since New in 1.6. */
 #define SVN_CONFIG_OPTION_STORE_SSL_CLIENT_CERT_PP_PLAINTEXT \
                                           "store-ssl-client-cert-pp-plaintext"
 #define SVN_CONFIG_OPTION_USERNAME                  "username"
@@ -123,6 +132,7 @@ typedef struct svn_config_t svn_config_t
 #define SVN_CONFIG_OPTION_DIFF_EXTENSIONS           "diff-extensions"
 #define SVN_CONFIG_OPTION_DIFF3_CMD                 "diff3-cmd"
 #define SVN_CONFIG_OPTION_DIFF3_HAS_PROGRAM_ARG     "diff3-has-program-arg"
+/** @since New in 1.5. */
 #define SVN_CONFIG_OPTION_MERGE_TOOL_CMD            "merge-tool-cmd"
 #define SVN_CONFIG_SECTION_MISCELLANY           "miscellany"
 #define SVN_CONFIG_OPTION_GLOBAL_IGNORES            "global-ignores"
@@ -133,8 +143,11 @@ typedef struct svn_config_t svn_config_t
 #define SVN_CONFIG_OPTION_ENABLE_AUTO_PROPS         "enable-auto-props"
 /** @since New in 1.9. */
 #define SVN_CONFIG_OPTION_ENABLE_MAGIC_FILE         "enable-magic-file"
+/** @since New in 1.2. */
 #define SVN_CONFIG_OPTION_NO_UNLOCK                 "no-unlock"
+/** @since New in 1.5. */
 #define SVN_CONFIG_OPTION_MIMETYPES_FILE            "mime-types-file"
+/** @since New in 1.5. */
 #define SVN_CONFIG_OPTION_PRESERVED_CF_EXTS         "preserved-conflict-file-exts"
 /** @since New in 1.7. */
 #define SVN_CONFIG_OPTION_INTERACTIVE_CONFLICTS     "interactive-conflicts"
@@ -172,9 +185,13 @@ typedef struct svn_config_t svn_config_t
 #define SVN_CONFIG_OPTION_FORCE_USERNAME_CASE       "force-username-case"
 /** @since New in 1.8. */
 #define SVN_CONFIG_OPTION_HOOKS_ENV                 "hooks-env"
+/** @since New in 1.5. */
 #define SVN_CONFIG_SECTION_SASL                 "sasl"
+/** @since New in 1.5. */
 #define SVN_CONFIG_OPTION_USE_SASL                  "use-sasl"
+/** @since New in 1.5. */
 #define SVN_CONFIG_OPTION_MIN_SSF                   "min-encryption"
+/** @since New in 1.5. */
 #define SVN_CONFIG_OPTION_MAX_SSF                   "max-encryption"
 
 /* For repository password database */

Modified: head/contrib/subversion/subversion/include/svn_fs.h
==============================================================================
--- head/contrib/subversion/subversion/include/svn_fs.h	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/subversion/include/svn_fs.h	Sat Apr 30 10:35:42 2016	(r298845)
@@ -1759,12 +1759,15 @@ svn_fs_node_relation(svn_fs_node_relatio
                      const char *path_b,
                      apr_pool_t *scratch_pool);
 
-/** Set @a *revision to the revision in which @a path under @a root was
- * created.  Use @a pool for any temporary allocations.  @a *revision will
+/** Set @a *revision to the revision in which the node-revision identified
+ * by @a path under @a root was created; that is, to the revision in which
+ * @a path under @a root was last modified.  @a *revision will
  * be set to #SVN_INVALID_REVNUM for uncommitted nodes (i.e. modified nodes
  * under a transaction root).  Note that the root of an unmodified transaction
  * is not itself considered to be modified; in that case, return the revision
  * upon which the transaction was based.
+ *
+ * Use @a pool for any temporary allocations.
  */
 svn_error_t *
 svn_fs_node_created_rev(svn_revnum_t *revision,
@@ -1861,6 +1864,15 @@ svn_fs_change_node_prop(svn_fs_root_t *r
  * both roots must be in the same filesystem.
  * Do any necessary temporary allocation in @a scratch_pool.
  *
+ * @note For the purposes of preserving accurate history, certain bits of
+ * code (such as the repository dump code) need to care about the distinction
+ * between situations when the properties are "different" and "have changed
+ * across two points in history".  We have a pair of functions that can
+ * answer both of these questions, svn_fs_props_different() and
+ * svn_fs_props_changed().  See issue 4598 for more details.
+ *
+ * @see svn_fs_props_changed
+ *
  * @since New in 1.9.
  */
 svn_error_t *
@@ -1872,9 +1884,7 @@ svn_fs_props_different(svn_boolean_t *di
                        apr_pool_t *scratch_pool);
 
 
-/** Determine if the properties of two path/root combinations are different.
- * In contrast to #svn_fs_props_different, we only perform a quick test and
- * allow for false positives.
+/** Determine if the properties of two path/root combinations have changed.
  *
  * Set @a *changed_p to #TRUE if the properties at @a path1 under @a root1
  * differ from those at @a path2 under @a root2, or set it to #FALSE if they
@@ -1882,15 +1892,19 @@ svn_fs_props_different(svn_boolean_t *di
  * both roots must be in the same filesystem.
  * Do any necessary temporary allocation in @a pool.
  *
- * @note The behavior is implementation dependent in that the false
- * positives reported may differ from release to release and backend to
- * backend.  There is also no guarantee that there will be false positives
- * at all.
- *
- * @note Prior to Subversion 1.9, this function would return false negatives
- * for FSFS: If @a root1 and @a root2 were both transaction roots
- * and the proplists of both paths had been changed in their respective
- * transactions, @a changed_p would be set to #FALSE.
+ * @note For the purposes of preserving accurate history, certain bits of
+ * code (such as the repository dump code) need to care about the distinction
+ * between situations when the properties are "different" and "have changed
+ * across two points in history".  We have a pair of functions that can
+ * answer both of these questions, svn_fs_props_different() and
+ * svn_fs_props_changed().  See issue 4598 for more details.
+ *
+ * @note This function can currently return false negatives for FSFS:
+ * If @a root1 and @a root2 were both transaction roots and the proplists
+ * of both paths had been changed in their respective transactions,
+ * @a changed_p would be set to #FALSE.
+ *
+ * @see svn_fs_props_different
  */
 svn_error_t *
 svn_fs_props_changed(svn_boolean_t *changed_p,
@@ -2410,7 +2424,7 @@ svn_fs_apply_text(svn_stream_t **content
                   apr_pool_t *pool);
 
 
-/** Check if the contents of two root/path combos have changed.
+/** Check if the contents of two root/path combos are different.
  *
  * Set @a *different_p to #TRUE if the file contents at @a path1 under
  * @a root1 differ from those at @a path2 under @a root2, or set it to
@@ -2418,6 +2432,16 @@ svn_fs_apply_text(svn_stream_t **content
  * respective roots, and both roots must be in the same filesystem.
  * Do any necessary temporary allocation in @a scratch_pool.
  *
+ * @note For the purposes of preserving accurate history, certain bits of
+ * code (such as the repository dump code) need to care about the distinction
+ * between situations when two files have "different" content and when the
+ * contents of a given file "have changed" across two points in its history.
+ * We have a pair of functions that can answer both of these questions,
+ * svn_fs_contents_different() and svn_fs_contents_changed().  See issue
+ * 4598 for more details.
+ *
+ * @see svn_fs_contents_changed
+ *
  * @since New in 1.9.
  */
 svn_error_t *
@@ -2428,9 +2452,7 @@ svn_fs_contents_different(svn_boolean_t 
                           const char *path2,
                           apr_pool_t *scratch_pool);
 
-/** Check if the contents of two root/path combos have changed.  In
- * contrast to #svn_fs_contents_different, we only perform a quick test
- * and allow for false positives.
+/** Check if the contents of two root/path combos have changed.
  *
  * Set @a *changed_p to #TRUE if the file contents at @a path1 under
  * @a root1 differ from those at @a path2 under @a root2, or set it to
@@ -2438,10 +2460,18 @@ svn_fs_contents_different(svn_boolean_t 
  * respective roots, and both roots must be in the same filesystem.
  * Do any necessary temporary allocation in @a pool.
  *
- * @note The behavior is implementation dependent in that the false
- * positives reported may differ from release to release and backend to
- * backend.  There is also no guarantee that there will be false positives
- * at all.
+ * @note svn_fs_contents_changed() was not designed to be used to detect
+ * when two files have different content, but really to detect when the
+ * contents of a given file have changed across two points in its history.
+ * For the purposes of preserving accurate history, certain bits of code
+ * (such as the repository dump code) need to care about this distinction.
+ * For example, it's not an error from the FS API point of view to call
+ * svn_fs_apply_textdelta() and explicitly set a file's contents to exactly
+ * what they were before the edit was made.  We have a pair of functions
+ * that can answer both of these questions, svn_fs_contents_changed() and
+ * svn_fs_contents_different().  See issue 4598 for more details.
+ *
+ * @see svn_fs_contents_different
  */
 svn_error_t *
 svn_fs_contents_changed(svn_boolean_t *changed_p,

Modified: head/contrib/subversion/subversion/include/svn_version.h
==============================================================================
--- head/contrib/subversion/subversion/include/svn_version.h	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/subversion/include/svn_version.h	Sat Apr 30 10:35:42 2016	(r298845)
@@ -70,7 +70,7 @@ extern "C" {
  *
  * @since New in 1.1.
  */
-#define SVN_VER_PATCH      2
+#define SVN_VER_PATCH      4
 
 
 /** @deprecated Provided for backward compatibility with the 1.0 API. */
@@ -93,7 +93,7 @@ extern "C" {
  *
  * Always change this at the same time as SVN_VER_NUMTAG.
  */
-#define SVN_VER_TAG        " (r1703836)"
+#define SVN_VER_TAG        " (r1740329)"
 
 
 /** Number tag: a string describing the version.
@@ -117,7 +117,7 @@ extern "C" {
  * file version. Its value remains 0 in the repository except in release
  * tags where it is the revision from which the tag was created.
  */
-#define SVN_VER_REVISION   1703836
+#define SVN_VER_REVISION   1740329
 
 

 /* Version strings composed from the above definitions. */

Modified: head/contrib/subversion/subversion/libsvn_client/externals.c
==============================================================================
--- head/contrib/subversion/subversion/libsvn_client/externals.c	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/subversion/libsvn_client/externals.c	Sat Apr 30 10:35:42 2016	(r298845)
@@ -231,6 +231,42 @@ switch_dir_external(const char *local_ab
 
       if (node_url)
         {
+          svn_boolean_t is_wcroot;
+
+          SVN_ERR(svn_wc__is_wcroot(&is_wcroot, ctx->wc_ctx, local_abspath,
+                                    pool));
+
+          if (! is_wcroot)
+          {
+            /* This can't be a directory external! */
+
+            err = svn_wc__external_remove(ctx->wc_ctx, defining_abspath,
+                                          local_abspath,
+                                          TRUE /* declaration_only */,
+                                          ctx->cancel_func, ctx->cancel_baton,
+                                          pool);
+
+            if (err && err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)
+              {
+                /* New external... No problem that we can't remove it */
+                svn_error_clear(err);
+                err = NULL;
+              }
+            else if (err)
+              return svn_error_trace(err);
+
+            return svn_error_createf(SVN_ERR_WC_PATH_UNEXPECTED_STATUS, NULL,
+                                     _("The external '%s' defined in %s at '%s' "
+                                       "cannot be checked out because '%s' is "
+                                       "already a versioned path."),
+                                     url_from_externals_definition,
+                                     SVN_PROP_EXTERNALS,
+                                     svn_dirent_local_style(defining_abspath,
+                                                            pool),
+                                     svn_dirent_local_style(local_abspath,
+                                                            pool));
+          }
+
           /* If we have what appears to be a version controlled
              subdir, and its top-level URL matches that of our
              externals definition, perform an update. */

Modified: head/contrib/subversion/subversion/libsvn_client/merge.c
==============================================================================
--- head/contrib/subversion/subversion/libsvn_client/merge.c	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/subversion/libsvn_client/merge.c	Sat Apr 30 10:35:42 2016	(r298845)
@@ -2349,17 +2349,47 @@ files_same_p(svn_boolean_t *same,
     {
       svn_stream_t *mine_stream;
       svn_stream_t *older_stream;
-      svn_opt_revision_t working_rev = { svn_opt_revision_working, { 0 } };
+      svn_string_t *special = svn_hash_gets(working_props, SVN_PROP_SPECIAL);
+      svn_string_t *eol_style = svn_hash_gets(working_props, SVN_PROP_EOL_STYLE);
+      svn_string_t *keywords = svn_hash_gets(working_props, SVN_PROP_KEYWORDS);
 
       /* Compare the file content, translating 'mine' to 'normal' form. */
-      if (svn_prop_get_value(working_props, SVN_PROP_SPECIAL) != NULL)
+      if (special != NULL)
         SVN_ERR(svn_subst_read_specialfile(&mine_stream, mine_abspath,
                                            scratch_pool, scratch_pool));
       else
-        SVN_ERR(svn_client__get_normalized_stream(&mine_stream, wc_ctx,
-                                                  mine_abspath, &working_rev,
-                                                  FALSE, TRUE, NULL, NULL,
-                                                  scratch_pool, scratch_pool));
+        SVN_ERR(svn_stream_open_readonly(&mine_stream, mine_abspath,
+                                         scratch_pool, scratch_pool));
+
+      if (!special && (eol_style || keywords))
+        {
+          apr_hash_t *kw = NULL;
+          const char *eol = NULL;
+          svn_subst_eol_style_t style;
+
+          /* We used to use svn_client__get_normalized_stream() here, but
+             that doesn't work in 100% of the cases because it doesn't
+             convert EOLs to the repository form; just to '\n'.
+           */
+
+          if (eol_style)
+            {
+              svn_subst_eol_style_from_value(&style, &eol, eol_style->data);
+
+              if (style == svn_subst_eol_style_native)
+                eol = SVN_SUBST_NATIVE_EOL_STR;
+              else if (style != svn_subst_eol_style_fixed
+                       && style != svn_subst_eol_style_none)
+                return svn_error_create(SVN_ERR_IO_UNKNOWN_EOL, NULL, NULL);
+            }
+
+          if (keywords)
+            SVN_ERR(svn_subst_build_keywords3(&kw, keywords->data, "", "",
+                                              "", 0, "", scratch_pool));
+
+          mine_stream = svn_subst_stream_translated(
+            mine_stream, eol, FALSE, kw, FALSE, scratch_pool);
+        }
 
       SVN_ERR(svn_stream_open_readonly(&older_stream, older_abspath,
                                        scratch_pool, scratch_pool));

Modified: head/contrib/subversion/subversion/libsvn_client/patch.c
==============================================================================
--- head/contrib/subversion/subversion/libsvn_client/patch.c	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/subversion/libsvn_client/patch.c	Sat Apr 30 10:35:42 2016	(r298845)
@@ -209,9 +209,6 @@ typedef struct patch_target_t {
   /* True if the target had to be skipped for some reason. */
   svn_boolean_t skipped;
 
-  /* True if the target has been filtered by the patch callback. */
-  svn_boolean_t filtered;
-
   /* True if at least one hunk was rejected. */
   svn_boolean_t had_rejects;
 
@@ -489,6 +486,8 @@ resolve_target_path(patch_target_t *targ
       SVN_ERR(svn_wc__node_was_moved_away(&moved_to_abspath, NULL,
                                           wc_ctx, target->local_abspath,
                                           result_pool, scratch_pool));
+      /* ### BUG: moved_to_abspath contains the target where the op-root was
+         ### moved to... not the target itself! */
       if (moved_to_abspath)
         {
           target->local_abspath = moved_to_abspath;
@@ -2264,8 +2263,6 @@ apply_one_patch(patch_target_t **patch_t
                 int strip_count,
                 svn_boolean_t ignore_whitespace,
                 svn_boolean_t remove_tempfiles,
-                svn_client_patch_func_t patch_func,
-                void *patch_baton,
                 svn_cancel_func_t cancel_func,
                 void *cancel_baton,
                 apr_pool_t *result_pool, apr_pool_t *scratch_pool)
@@ -2285,19 +2282,6 @@ apply_one_patch(patch_target_t **patch_t
       return SVN_NO_ERROR;
     }
 
-  if (patch_func)
-    {
-      SVN_ERR(patch_func(patch_baton, &target->filtered,
-                         target->canon_path_from_patchfile,
-                         target->patched_path, target->reject_path,
-                         scratch_pool));
-      if (target->filtered)
-        {
-          *patch_target = target;
-          return SVN_NO_ERROR;
-        }
-    }
-
   iterpool = svn_pool_create(scratch_pool);
   /* Match hunks. */
   for (i = 0; i < patch->hunks->nelts; i++)
@@ -3164,14 +3148,23 @@ apply_patches(/* The path to the patch f
       if (patch)
         {
           patch_target_t *target;
+          svn_boolean_t filtered = FALSE;
 
           SVN_ERR(apply_one_patch(&target, patch, abs_wc_path,
                                   ctx->wc_ctx, strip_count,
                                   ignore_whitespace, remove_tempfiles,
-                                  patch_func, patch_baton,
                                   ctx->cancel_func, ctx->cancel_baton,
                                   iterpool, iterpool));
-          if (! target->filtered)
+
+          if (!target->skipped && patch_func)
+            {
+              SVN_ERR(patch_func(patch_baton, &filtered,
+                                 target->canon_path_from_patchfile,
+                                 target->patched_path, target->reject_path,
+                                 iterpool));
+            }
+
+          if (! filtered)
             {
               /* Save info we'll still need when we're done patching. */
               patch_target_info_t *target_info =

Modified: head/contrib/subversion/subversion/libsvn_diff/binary_diff.c
==============================================================================
--- head/contrib/subversion/subversion/libsvn_diff/binary_diff.c	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/subversion/libsvn_diff/binary_diff.c	Sat Apr 30 10:35:42 2016	(r298845)
@@ -194,22 +194,22 @@ svn_diff_output_binary(svn_stream_t *out
 
   SVN_ERR(svn_stream_puts(output_stream, "GIT binary patch" APR_EOL_STR));
 
-  /* ### git would first calculate if a git-delta original->latest would be
+  /* ### git would first calculate if a git-delta latest->original would be
          shorter than the zipped data. For now lets assume that it is not
          and just dump the literal data */
-  SVN_ERR(write_literal(original_full,
-                        svn_stream_from_aprfile2(original_apr, FALSE, subpool),
+  SVN_ERR(write_literal(latest_full,
+                        svn_stream_from_aprfile2(latest_apr, FALSE, subpool),
                         output_stream,
                         cancel_func, cancel_baton,
                         scratch_pool));
   svn_pool_clear(subpool);
   SVN_ERR(svn_stream_puts(output_stream, APR_EOL_STR));
 
-  /* ### git would first calculate if a git-delta latest->original would be
+  /* ### git would first calculate if a git-delta original->latest would be
          shorter than the zipped data. For now lets assume that it is not
          and just dump the literal data */
-  SVN_ERR(write_literal(latest_full,
-                        svn_stream_from_aprfile2(latest_apr, FALSE, subpool),
+  SVN_ERR(write_literal(original_full,
+                        svn_stream_from_aprfile2(original_apr, FALSE, subpool),
                         output_stream,
                         cancel_func, cancel_baton,
                         scratch_pool));

Modified: head/contrib/subversion/subversion/libsvn_fs_base/dag.c
==============================================================================
--- head/contrib/subversion/subversion/libsvn_fs_base/dag.c	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/subversion/libsvn_fs_base/dag.c	Sat Apr 30 10:35:42 2016	(r298845)
@@ -1657,8 +1657,14 @@ svn_fs_base__things_different(svn_boolea
 
   /* Compare contents keys and their (optional) uniquifiers. */
   if (contents_changed != NULL)
-    *contents_changed = (! svn_fs_base__same_keys(noderev1->data_key,
-                                                  noderev2->data_key));
+    *contents_changed =
+      (! (svn_fs_base__same_keys(noderev1->data_key,
+                                 noderev2->data_key)
+          /* Technically, these uniquifiers aren't used and "keys",
+             but keys are base-36 stringified numbers, so we'll take
+             this liberty. */
+          && (svn_fs_base__same_keys(noderev1->data_key_uniquifier,
+                                     noderev2->data_key_uniquifier))));
 
   return SVN_NO_ERROR;
 }

Modified: head/contrib/subversion/subversion/libsvn_fs_base/fs.h
==============================================================================
--- head/contrib/subversion/subversion/libsvn_fs_base/fs.h	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/subversion/libsvn_fs_base/fs.h	Sat Apr 30 10:35:42 2016	(r298845)
@@ -195,11 +195,7 @@ typedef struct node_revision_t
      only because one or both of us decided to pick up a shared
      representation after-the-fact."  May be NULL (if this node
      revision isn't using a shared rep, or isn't the original
-     "assignee" of a shared rep).
-
-     This is no longer used by the 1.9 code but we have to keep
-     reading and writing it to remain compatible with 1.8, and
-     earlier, that require it. */
+     "assignee" of a shared rep). */
   const char *data_key_uniquifier;
 
   /* representation key for this node's text-data-in-progess (files

Modified: head/contrib/subversion/subversion/libsvn_fs_fs/cached_data.c
==============================================================================
--- head/contrib/subversion/subversion/libsvn_fs_fs/cached_data.c	Sat Apr 30 09:50:08 2016	(r298844)
+++ head/contrib/subversion/subversion/libsvn_fs_fs/cached_data.c	Sat Apr 30 10:35:42 2016	(r298845)
@@ -2558,8 +2558,12 @@ svn_fs_fs__rep_contents_dir(apr_array_he
   SVN_ERR(get_dir_contents(entries_p, fs, noderev, result_pool,
                            scratch_pool));
 
-  /* Update the cache, if we are to use one. */
-  if (cache)
+  /* Update the cache, if we are to use one.
+   *
+   * Don't even attempt to serialize very large directories; it would cause
+   * an unnecessary memory allocation peak.  150 bytes/entry is about right.
+   */
+  if (cache && svn_cache__is_cachable(cache, 150 * (*entries_p)->nelts))

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-head mailing list