Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Dec 2016 07:50:44 +0000 (UTC)
From:      Peter Wemm <peter@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r309356 - in head/contrib/subversion: . subversion/include subversion/include/private subversion/libsvn_client subversion/libsvn_fs_fs subversion/libsvn_fs_x subversion/libsvn_ra_serf s...
Message-ID:  <201612010750.uB17oidw001220@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: peter
Date: Thu Dec  1 07:50:44 2016
New Revision: 309356
URL: https://svnweb.freebsd.org/changeset/base/309356

Log:
  Update from subversion 1.9.4 to 1.9.5.
  
  This includes a security fix for a component that we do not build, and
  two potentially useful client side fixes for reintegrate merges and tree
  conflict handling.  See CHANGES for full details.

Modified:
  head/contrib/subversion/CHANGES
  head/contrib/subversion/README
  head/contrib/subversion/build-outputs.mk
  head/contrib/subversion/configure
  head/contrib/subversion/configure.ac
  head/contrib/subversion/get-deps.sh
  head/contrib/subversion/subversion/include/private/svn_sqlite.h
  head/contrib/subversion/subversion/include/svn_version.h
  head/contrib/subversion/subversion/libsvn_client/merge.c
  head/contrib/subversion/subversion/libsvn_fs_fs/cached_data.c
  head/contrib/subversion/subversion/libsvn_fs_fs/caching.c
  head/contrib/subversion/subversion/libsvn_fs_fs/fs.c
  head/contrib/subversion/subversion/libsvn_fs_fs/fs_fs.c
  head/contrib/subversion/subversion/libsvn_fs_fs/low_level.c
  head/contrib/subversion/subversion/libsvn_fs_fs/pack.c
  head/contrib/subversion/subversion/libsvn_fs_fs/pack.h
  head/contrib/subversion/subversion/libsvn_fs_fs/rep-cache-db.h
  head/contrib/subversion/subversion/libsvn_fs_fs/rep-cache.c
  head/contrib/subversion/subversion/libsvn_fs_fs/rep-cache.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_serf/xml.c
  head/contrib/subversion/subversion/libsvn_repos/reporter.c
  head/contrib/subversion/subversion/libsvn_repos/repos.c
  head/contrib/subversion/subversion/libsvn_subr/config_file.c
  head/contrib/subversion/subversion/libsvn_subr/deprecated.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/sqlite.c
  head/contrib/subversion/subversion/libsvn_subr/sysinfo.c
  head/contrib/subversion/subversion/libsvn_subr/win32_crashrpt.c
  head/contrib/subversion/subversion/libsvn_subr/xml.c
  head/contrib/subversion/subversion/libsvn_wc/conflicts.c
  head/contrib/subversion/subversion/libsvn_wc/update_editor.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/svn/info-cmd.c
  head/contrib/subversion/subversion/svn/merge-cmd.c
  head/contrib/subversion/subversion/svnserve/serve.c
Directory Properties:
  head/contrib/subversion/   (props changed)

Modified: head/contrib/subversion/CHANGES
==============================================================================
--- head/contrib/subversion/CHANGES	Thu Dec  1 07:46:24 2016	(r309355)
+++ head/contrib/subversion/CHANGES	Thu Dec  1 07:50:44 2016	(r309356)
@@ -1,3 +1,54 @@
+Version 1.9.5
+(29 Nov 2016, from /branches/1.9.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.9.5
+
+ User-visible changes:
+  - Client-side bugfixes:
+    * fix accessing non-existent paths during reintegrate merge (r1766699 et al)
+    * fix handling of newly secured subdirectories in working copy (r1724448)
+    * info: remove trailing whitespace in --show-item=revision (issue #4660)
+    * fix recording wrong revisions for tree conflicts (r1734106)
+    * gpg-agent: improve discovery of gpg-agent sockets (r1766327)
+    * gpg-agent: fix file descriptor leak (r1766323)
+    * resolve: fix --accept=mine-full for binary files (issue #4647)
+    * merge: fix possible crash (issue #4652)
+    * resolve: fix possible crash (r1748514)
+    * fix potential crash in Win32 crash reporter (r1663253 et al)
+
+  - Server-side bugfixes:
+    * fsfs: fix "offset too large" error during pack (issue #4657)
+    * svnserve: enable hook script environments (r1769152)
+    * fsfs: fix possible data reconstruction error (issue #4658)
+    * fix source of spurious 'incoming edit' tree conflicts (r1770108)
+    * fsfs: improve caching for large directories (r1721285)
+    * fsfs: fix crash when encountering all-zero checksums (r1759686)
+    * fsfs: fix potential source of repository corruptions (r1756266)
+    * mod_dav_svn: fix excessive memory usage with mod_headers/mod_deflate
+      (issue #3084)
+    * mod_dav_svn: reduce memory usage during GET requests (r1757529 et al)
+    * fsfs: fix unexpected "database is locked" errors (r1741096 et al)
+    * fsfs: fix opening old repositories without db/format files (r1720015)
+
+  - Client-side and server-side bugfixes:
+    * fix possible crash when reading invalid configuration files (r1715777)
+
+  - Bindings bugfixes:
+    * swig-pl: do not corrupt "{DATE}" revision variable (r1767768)
+    * javahl: fix temporary accepting SSL server certificates (r1764851)
+    * swig-pl: fix possible stack corruption (r1683266, r1683267)
+
+ Developer-visible changes:
+  - General:
+    * add zlib discovery through pkg-config (issue #4655)
+    * fix potential build issue with invalid SVN_LOCALE_DIR (issue #4653)
+    * ruby: fix test failures with ruby >= 2.2 (r1766621)
+    * fix link error with --disable-keychain on OS X (r1765385)
+    * swig: enable building with SWIG >= 3.0.6 (r1721488 et al)
+    * swig: fix building with -Wdate-time in $CPPFLAGS (r1722164)
+    * update serf download URI in build scripts (r1700130 et al)
+    * raise minimal httpd version from 2.0 to 2.2 (r1754193)
+
+
 Version 1.9.4
 (28 Apr 2016, from /branches/1.9.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.9.4
@@ -14,6 +65,8 @@ http://svn.apache.org/repos/asf/subversi
     * ra_serf: fix deleting directories with many files (issue #4557)
 
   - Server-side bugfixes:
+    * mod_authz_svn: fix crash in COPY/MOVE authorization check (CVE-2016-2168)
+    * svnserve/sasl: fix authenticating users with wrong realm (CVE-2016-2167)
     * improve documentation for AuthzSVNGroupsFile and groups-db (r1730856)
     * fsfs: reduce peak memory usage when listing large directories (r1725180)
     * fsfs: fix a rare source of incomplete dump files and reports (r1717876)
@@ -31,8 +84,7 @@ http://svn.apache.org/repos/asf/subversi
     * fix ruby test suite to work with test-unit gem (r1714790)
     * allow building against KDE4 without conflict with KDE5 (r1734926)
     * fix update_tests.py#76 with SVNPathAuthz short_circuit (r1736432)
-    * build system tweaks:
-    * tweak how symbolic error names in maintainer mode (r1735179)
+    * tweak getting symbolic error names in maintainer mode (r1735179)
     * fix inconsistent behavior of inherited property API (r1717874 et al)
 
   - API changes:
@@ -882,12 +934,44 @@ http://svn.apache.org/repos/asf/subversi
     * javahl: allow compiling with a C++11 compiler (r1684412)
 
 
+Version 1.8.17
+(29 Nov 2016, from /branches/1.8.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.8.17
+
+ User-visible changes:
+  - Client-side bugfixes:
+    * fix handling of newly secured subdirectories in working copy (r1724448)
+    * ra_serf: fix deleting directories with many files (issue #4557)
+    * svnlook: properly remove tempfiles on diff errors (r1711346)
+    * gpg-agent: properly handle passwords with percent characters (issue #4611)
+    * merge: fix crash when merging to a local add (r1702299 et al)
+
+  - Server-side bugfixes:
+    * fsfs: fix possible data reconstruction error (issue #4658)
+
+  - Client-side and server-side bugfixes:
+    * fix potential memory access bugs (r1722860 et al)
+
+  - Bindings bugfixes:
+    * javahl: fix temporary accepting SSL server certificates (r1764851)
+    * swig-pl: do not corrupt "{DATE}" revision variable (r1767768)
+    * swig-pl: fix possible stack corruption (r1683266)
+
+ Developer-visible changes:
+  - General:
+    * fix inconsistent behavior of inherited property API (r1717875, r1717878)
+    * fix patch filter invocation in svn_client_patch() (r1706783)
+    * fix potential build issue with invalid SVN_LOCALE_DIR (issue #4653)
+
+
 Version 1.8.16
 (28 Apr 2016, from /branches/1.8.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.8.16
 
  User-visible changes:
   - Server-side bugfixes:
+    * mod_authz_svn: fix crash in COPY/MOVE authorization check (CVE-2016-2168)
+    * svnserve/sasl: fix authenticating users with wrong realm (CVE-2016-2167)
     * mod_authz_svn: fix authz with mod_auth_kerb/mod_auth_ntlm (issue #4602)
     * dump: don't write broken dump files in some ambiguously encoded fsfs
       repositories (issue #4554)
@@ -1641,7 +1725,7 @@ http://svn.apache.org/repos/asf/subversi
     * fix bug in mergeinfo recording during foreign-repos merge (r1430310)
     * fix spurious merge conflicts for binary files with keywords (issue #4221)
     * fix patching symlinks with 'svn patch' (issue #4273)
-    * make 'svn switch' refresh lock information (issue #3376)
+    * make 'svn switch' refresh lock information (issue #3378)
     * fix 'svn diff' output doesn't apply as patch without fuzz (issue #3362)
     * fix mergeinfo recording for multiple-revision-range merge (issue #4306)
     * fix diffs shown by 'show-diff' conflict prompt option (r1438879)

Modified: head/contrib/subversion/README
==============================================================================
--- head/contrib/subversion/README	Thu Dec  1 07:46:24 2016	(r309355)
+++ head/contrib/subversion/README	Thu Dec  1 07:50:44 2016	(r309356)
@@ -2,7 +2,7 @@
                Subversion, a version control system.
                =====================================
 
-$LastChangedDate: 2012-02-10 14:58:53 +0000 (Fri, 10 Feb 2012) $
+$LastChangedDate: 2016-05-31 16:08:20 +0000 (Tue, 31 May 2016) $
 
 Contents:
 
@@ -36,10 +36,10 @@ II.   DOCUMENTATION
 
       It is written in DocBook XML, and the sources can be found at:
 
-         http://svnbook.googlecode.com/svn/trunk/
+         http://svn.code.sf.net/p/svnbook/source/trunk/
          
       If you wish to build the documentation from source, read the
-      src/en/README file within the book source.
+      en/README file within the book source.
 
 
 

Modified: head/contrib/subversion/build-outputs.mk
==============================================================================
--- head/contrib/subversion/build-outputs.mk	Thu Dec  1 07:46:24 2016	(r309355)
+++ head/contrib/subversion/build-outputs.mk	Thu Dec  1 07:50:44 2016	(r309356)
@@ -3351,7 +3351,7 @@ subversion/tests/libsvn_diff/diff-diff3-
 
 subversion/tests/libsvn_diff/parse-diff-test.lo: subversion/tests/libsvn_diff/parse-diff-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.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_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/tests/svn_test.h
 
-subversion/tests/libsvn_fs/fs-test.lo: subversion/tests/libsvn_fs/fs-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/svn_auth.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_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_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/libsvn_delta/delta.h subversion/libsvn_fs/fs-loader.h subversion/s
 vn_private_config.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_fs/fs-test.lo: subversion/tests/libsvn_fs/fs-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_fs_util.h subversion/include/private/svn_fspath.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/svn_auth.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_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_repos.h subversion/include/svn_string.h subversion/include/svn_time.h subversion/include/svn_types.h subversion/include/svn_version.
 h subversion/libsvn_delta/delta.h subversion/libsvn_fs/fs-loader.h subversion/svn_private_config.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
 
 subversion/tests/libsvn_fs/locks-test.lo: subversion/tests/libsvn_fs/locks-test.c subversion/include/private/svn_debug.h subversion/include/svn_auth.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_hash.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/tests/svn_test.h subversion/tests/svn_test_fs.h
 
@@ -3363,7 +3363,7 @@ subversion/tests/libsvn_fs_base/strings-
 
 subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.lo: subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.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_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_poo
 ls.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/rev_file.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
 
-subversion/tests/libsvn_fs_fs/fs-fs-pack-test.lo: subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.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_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools
 .h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/util.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_fs_fs/fs-fs-pack-test.lo: subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.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_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools
 .h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs/fs-loader.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/fs_fs.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/low_level.h subversion/libsvn_fs_fs/pack.h subversion/libsvn_fs_fs/util.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
 
 subversion/tests/libsvn_fs_fs/fs-fs-private-test.lo: subversion/tests/libsvn_fs_fs/fs-fs-private-test.c subversion/include/private/svn_atomic.h subversion/include/private/svn_cache.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fs_fs_private.h subversion/include/private/svn_fs_private.h subversion/include/private/svn_mutex.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/private/svn_token.h subversion/include/svn_auth.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_hash.h subversion/include/svn_io.h subversion/include/svn_iter.h subversion/include/svn_mergeinfo.h subver
 sion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_fs_fs/fs.h subversion/libsvn_fs_fs/id.h subversion/libsvn_fs_fs/index.h subversion/libsvn_fs_fs/rev_file.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
 

Modified: head/contrib/subversion/configure
==============================================================================
--- head/contrib/subversion/configure	Thu Dec  1 07:46:24 2016	(r309355)
+++ head/contrib/subversion/configure	Thu Dec  1 07:50:44 2016	(r309356)
@@ -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.4.
+# Generated by GNU Autoconf 2.69 for subversion 1.9.5.
 #
 # 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.4'
-PACKAGE_STRING='subversion 1.9.4'
+PACKAGE_VERSION='1.9.5'
+PACKAGE_STRING='subversion 1.9.5'
 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.4 to adapt to many kinds of systems.
+\`configure' configures subversion 1.9.5 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.4:";;
+     short | recursive ) echo "Configuration of subversion 1.9.5:";;
    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.4
+subversion configure 1.9.5
 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.4, which was
+It was created by subversion $as_me 1.9.5, 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.4" >&5
-$as_echo "$as_me: Configuring Subversion 1.9.4" >&6;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring Subversion 1.9.5" >&5
+$as_echo "$as_me: Configuring Subversion 1.9.5" >&6;}
 
 abs_srcdir="`cd $srcdir && pwd`"
 
@@ -7422,7 +7422,10 @@ _ACEOF
 localedir='${datadir}/locale'
 
 
-if test "${datadir}" = '${prefix}/share' && test "${prefix}" = "NONE"; then
+if test "${prefix}" = "NONE" \
+  && ( test "${datadir}" = '${prefix}/share' \
+       || ( test "${datadir}" = '${datarootdir}' \
+            && test "${datarootdir}" = '${prefix}/share' ) ); then
   exp_localedir='${ac_default_prefix}/share/locale'
 else
   exp_localedir=$localedir
@@ -22550,68 +22553,34 @@ fi
 
 
   zlib_found=no
+  zlib_skip=no
 
 
 # Check whether --with-zlib was given.
 if test "${with_zlib+set}" = set; then :
   withval=$with_zlib;
-    if test "$withval" = "yes" ; then
-      ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_zlib_h" = xyes; then :
-
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflate in -lz" >&5
-$as_echo_n "checking for inflate in -lz... " >&6; }
-if ${ac_cv_lib_z_inflate+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lz  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+    if test "$withval" = "yes"; then
+      zlib_skip=no
+    elif test "$withval" = "no"; then
+      zlib_skip=yes
+    else
+      zlib_skip=no
+      zlib_prefix="$withval"
+    fi
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char inflate ();
-int
-main ()
-{
-return inflate ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_z_inflate=yes
-else
-  ac_cv_lib_z_inflate=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflate" >&5
-$as_echo "$ac_cv_lib_z_inflate" >&6; }
-if test "x$ac_cv_lib_z_inflate" = xyes; then :
-  zlib_found="builtin"
 fi
 
 
-fi
-
+  if test "$zlib_skip" = "yes"; then
+    as_fn_error $? "subversion requires zlib" "$LINENO" 5
+  fi
 
-    elif test "$withval" = "no" ; then
-      as_fn_error $? "cannot compile without zlib." "$LINENO" 5
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: zlib library configuration" >&5
-$as_echo "$as_me: zlib library configuration" >&6;}
-      zlib_prefix=$withval
-      save_cppflags="$CPPFLAGS"
-      CPPFLAGS="$CPPFLAGS -I$zlib_prefix/include"
-      for ac_header in zlib.h
+  if test -n "$zlib_prefix"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: zlib library configuration via prefix" >&5
+$as_echo "$as_me: zlib library configuration via prefix" >&6;}
+    save_cppflags="$CPPFLAGS"
+    CPPFLAGS="$CPPFLAGS -I$zlib_prefix/include"
+    for ac_header in zlib.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
 if test "x$ac_cv_header_zlib_h" = xyes; then :
@@ -22619,9 +22588,9 @@ if test "x$ac_cv_header_zlib_h" = xyes; 
 #define HAVE_ZLIB_H 1
 _ACEOF
 
-        save_ldflags="$LDFLAGS"
-        LDFLAGS="$LDFLAGS -L$zlib_prefix/lib"
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflate in -lz" >&5
+      save_ldflags="$LDFLAGS"
+      LDFLAGS="$LDFLAGS -L$zlib_prefix/lib"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflate in -lz" >&5
 $as_echo_n "checking for inflate in -lz... " >&6; }
 if ${ac_cv_lib_z_inflate+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -22658,24 +22627,86 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflate" >&5
 $as_echo "$ac_cv_lib_z_inflate" >&6; }
 if test "x$ac_cv_lib_z_inflate" = xyes; then :
-  zlib_found="yes"
+
+        zlib_found="yes"
+        SVN_ZLIB_INCLUDES="-I$zlib_prefix/include"
+        SVN_ZLIB_LIBS="`
+  input_flags="-L$zlib_prefix/lib"
+  output_flags=""
+  filtered_dirs="/lib /lib64 /usr/lib /usr/lib64"
+  for flag in $input_flags; do
+    filter="no"
+    for dir in $filtered_dirs; do
+      if test "$flag" = "-L$dir" || test "$flag" = "-L$dir/"; then
+        filter="yes"
+        break
+      fi
+    done
+    if test "$filter" = "no"; then
+      output_flags="$output_flags $flag"
+    fi
+  done
+  if test -n "$output_flags"; then
+    printf "%s" "${output_flags# }"
+  fi
+` -lz"
+
 fi
 
-        LDFLAGS="$save_ldflags"
+      LDFLAGS="$save_ldflags"
 
 fi
 
 done
 
-      CPPFLAGS="$save_cppflags"
+    CPPFLAGS="$save_cppflags"
+  else
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: zlib library configuration via pkg-config" >&5
+$as_echo "$as_me: zlib library configuration via pkg-config" >&6;}
+  if test -n "$PKG_CONFIG"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlib library" >&5
+$as_echo_n "checking for zlib library... " >&6; }
+    if $PKG_CONFIG zlib --exists; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      zlib_found=yes
+      SVN_ZLIB_INCLUDES=`$PKG_CONFIG zlib --cflags`
+      SVN_ZLIB_LIBS=`$PKG_CONFIG zlib --libs`
+      SVN_ZLIB_LIBS="`
+  input_flags="$SVN_ZLIB_LIBS"
+  output_flags=""
+  filtered_dirs="/lib /lib64 /usr/lib /usr/lib64"
+  for flag in $input_flags; do
+    filter="no"
+    for dir in $filtered_dirs; do
+      if test "$flag" = "-L$dir" || test "$flag" = "-L$dir/"; then
+        filter="yes"
+        break
+      fi
+    done
+    if test "$filter" = "no"; then
+      output_flags="$output_flags $flag"
+    fi
+  done
+  if test -n "$output_flags"; then
+    printf "%s" "${output_flags# }"
+  fi
+`"
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
     fi
+  fi
 
-else
 
-    ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
+    if test "$zlib_found" = "no"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: zlib library configuration" >&5
+$as_echo "$as_me: zlib library configuration" >&6;}
+      ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
 if test "x$ac_cv_header_zlib_h" = xyes; then :
 
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflate in -lz" >&5
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflate in -lz" >&5
 $as_echo_n "checking for inflate in -lz... " >&6; }
 if ${ac_cv_lib_z_inflate+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -22712,46 +22743,22 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflate" >&5
 $as_echo "$ac_cv_lib_z_inflate" >&6; }
 if test "x$ac_cv_lib_z_inflate" = xyes; then :
-  zlib_found="builtin"
-fi
 
+          zlib_found="builtin"
+          SVN_ZLIB_LIBS="-lz"
 
 fi
 
 
-
 fi
 
 
-  if test "$zlib_found" = "no"; then
-    as_fn_error $? "subversion requires zlib" "$LINENO" 5
-  fi
-
-  if test "$zlib_found" = "yes"; then
-    SVN_ZLIB_INCLUDES="-I$zlib_prefix/include"
-    LDFLAGS="$LDFLAGS `
-  input_flags="-L$zlib_prefix/lib"
-  output_flags=""
-  filtered_dirs="/lib /lib64 /usr/lib /usr/lib64"
-  for flag in $input_flags; do
-    filter="no"
-    for dir in $filtered_dirs; do
-      if test "$flag" = "-L$dir" || test "$flag" = "-L$dir/"; then
-        filter="yes"
-        break
-      fi
-    done
-    if test "$filter" = "no"; then
-      output_flags="$output_flags $flag"
     fi
-  done
-  if test -n "$output_flags"; then
-    printf "%s" "${output_flags# }"
-  fi
-`"
   fi
 
-  SVN_ZLIB_LIBS="-lz"
+  if test "$zlib_found" = "no"; then
+    as_fn_error $? "subversion requires zlib" "$LINENO" 5
+  fi
 
 
 
@@ -23785,15 +23792,14 @@ $as_echo "$SWIG_VERSION_RAW" >&6; }
     #   packages/rpm/redhat-7.x/subversion.spec
     #   packages/rpm/rhel-3/subversion.spec
     #   packages/rpm/rhel-4/subversion.spec
-    if test -n "$SWIG_VERSION" && test "$SWIG_VERSION" -ge "103024" && \
-       test "$SWIG_VERSION" -lt "300000"; then
+    if test -n "$SWIG_VERSION" && test "$SWIG_VERSION" -ge "103024"; then
       SWIG_SUITABLE=yes
     else
       SWIG_SUITABLE=no
       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Detected SWIG version $SWIG_VERSION_RAW" >&5
 $as_echo "$as_me: WARNING: Detected SWIG version $SWIG_VERSION_RAW" >&2;}
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Subversion requires SWIG >= 1.3.24 and < 3.0.0 " >&5
-$as_echo "$as_me: WARNING: Subversion requires SWIG >= 1.3.24 and < 3.0.0 " >&2;}
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Subversion requires SWIG >= 1.3.24" >&5
+$as_echo "$as_me: WARNING: Subversion requires SWIG >= 1.3.24" >&2;}
     fi
   fi
 
@@ -24274,15 +24280,14 @@ $as_echo "$SWIG_VERSION_RAW" >&6; }
     #   packages/rpm/redhat-7.x/subversion.spec
     #   packages/rpm/rhel-3/subversion.spec
     #   packages/rpm/rhel-4/subversion.spec
-    if test -n "$SWIG_VERSION" && test "$SWIG_VERSION" -ge "103024" && \
-       test "$SWIG_VERSION" -lt "300000"; then
+    if test -n "$SWIG_VERSION" && test "$SWIG_VERSION" -ge "103024"; then
       SWIG_SUITABLE=yes
     else
       SWIG_SUITABLE=no
       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Detected SWIG version $SWIG_VERSION_RAW" >&5
 $as_echo "$as_me: WARNING: Detected SWIG version $SWIG_VERSION_RAW" >&2;}
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Subversion requires SWIG >= 1.3.24 and < 3.0.0 " >&5
-$as_echo "$as_me: WARNING: Subversion requires SWIG >= 1.3.24 and < 3.0.0 " >&2;}
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Subversion requires SWIG >= 1.3.24" >&5
+$as_echo "$as_me: WARNING: Subversion requires SWIG >= 1.3.24" >&2;}
     fi
   fi
 
@@ -24763,15 +24768,14 @@ $as_echo "$SWIG_VERSION_RAW" >&6; }
     #   packages/rpm/redhat-7.x/subversion.spec
     #   packages/rpm/rhel-3/subversion.spec
     #   packages/rpm/rhel-4/subversion.spec
-    if test -n "$SWIG_VERSION" && test "$SWIG_VERSION" -ge "103024" && \
-       test "$SWIG_VERSION" -lt "300000"; then
+    if test -n "$SWIG_VERSION" && test "$SWIG_VERSION" -ge "103024"; then
       SWIG_SUITABLE=yes
     else
       SWIG_SUITABLE=no
       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Detected SWIG version $SWIG_VERSION_RAW" >&5
 $as_echo "$as_me: WARNING: Detected SWIG version $SWIG_VERSION_RAW" >&2;}
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Subversion requires SWIG >= 1.3.24 and < 3.0.0 " >&5
-$as_echo "$as_me: WARNING: Subversion requires SWIG >= 1.3.24 and < 3.0.0 " >&2;}
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Subversion requires SWIG >= 1.3.24" >&5
+$as_echo "$as_me: WARNING: Subversion requires SWIG >= 1.3.24" >&2;}
     fi
   fi
 
@@ -25255,15 +25259,14 @@ $as_echo "$SWIG_VERSION_RAW" >&6; }
     #   packages/rpm/redhat-7.x/subversion.spec
     #   packages/rpm/rhel-3/subversion.spec
     #   packages/rpm/rhel-4/subversion.spec
-    if test -n "$SWIG_VERSION" && test "$SWIG_VERSION" -ge "103024" && \
-       test "$SWIG_VERSION" -lt "300000"; then
+    if test -n "$SWIG_VERSION" && test "$SWIG_VERSION" -ge "103024"; then
       SWIG_SUITABLE=yes
     else
       SWIG_SUITABLE=no
       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Detected SWIG version $SWIG_VERSION_RAW" >&5
 $as_echo "$as_me: WARNING: Detected SWIG version $SWIG_VERSION_RAW" >&2;}
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Subversion requires SWIG >= 1.3.24 and < 3.0.0 " >&5
-$as_echo "$as_me: WARNING: Subversion requires SWIG >= 1.3.24 and < 3.0.0 " >&2;}
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Subversion requires SWIG >= 1.3.24" >&5
+$as_echo "$as_me: WARNING: Subversion requires SWIG >= 1.3.24" >&2;}
     fi
   fi
 
@@ -26152,6 +26155,9 @@ SWIG_CPPFLAGS="$CPPFLAGS"
   SWIG_CPPFLAGS=`echo "$SWIG_CPPFLAGS" | $SED -e 's/-no-cpp-precomp //'`
 
 
+  SWIG_CPPFLAGS=`echo "$SWIG_CPPFLAGS" | $SED -e 's/-Wdate-time //'`
+
+
 
 
 cat >>confdefs.h <<_ACEOF
@@ -26750,7 +26756,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.4, which was
+This file was extended by subversion $as_me 1.9.5, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -26816,7 +26822,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.4
+subversion config.status 1.9.5
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: head/contrib/subversion/configure.ac
==============================================================================
--- head/contrib/subversion/configure.ac	Thu Dec  1 07:46:24 2016	(r309355)
+++ head/contrib/subversion/configure.ac	Thu Dec  1 07:50:44 2016	(r309356)
@@ -199,7 +199,10 @@ localedir='${datadir}/locale'
 AC_SUBST(localedir)
 
 dnl For SVN_LOCALE_DIR, we have to expand it to something.  See SVN_BINDIR.
-if test "${datadir}" = '${prefix}/share' && test "${prefix}" = "NONE"; then
+if test "${prefix}" = "NONE" \
+  && ( test "${datadir}" = '${prefix}/share' \
+       || ( test "${datadir}" = '${datarootdir}' \
+            && test "${datarootdir}" = '${prefix}/share' ) ); then
   exp_localedir='${ac_default_prefix}/share/locale'
 else
   exp_localedir=$localedir
@@ -1504,6 +1507,7 @@ fi
 # Need to strip '-no-cpp-precomp' from CPPFLAGS for SWIG as well.
 SWIG_CPPFLAGS="$CPPFLAGS"
 SVN_STRIP_FLAG(SWIG_CPPFLAGS, [-no-cpp-precomp ])
+SVN_STRIP_FLAG(SWIG_CPPFLAGS, [-Wdate-time ])
 AC_SUBST([SWIG_CPPFLAGS])
 
 dnl Since this is used only on Unix-y systems, define the path separator as '/'

Modified: head/contrib/subversion/get-deps.sh
==============================================================================
--- head/contrib/subversion/get-deps.sh	Thu Dec  1 07:46:24 2016	(r309355)
+++ head/contrib/subversion/get-deps.sh	Thu Dec  1 07:50:44 2016	(r309356)
@@ -89,7 +89,7 @@ get_serf() {
     test -d $BASEDIR/serf && return
 
     cd $TEMPDIR
-    $HTTP_FETCH http://serf.googlecode.com/svn/src_releases/$SERF.tar.bz2
+    $HTTP_FETCH https://archive.apache.org/dist/serf/$SERF.tar.bz2
     cd $BASEDIR
 
     bzip2 -dc $TEMPDIR/$SERF.tar.bz2 | tar -xf -

Modified: head/contrib/subversion/subversion/include/private/svn_sqlite.h
==============================================================================
--- head/contrib/subversion/subversion/include/private/svn_sqlite.h	Thu Dec  1 07:46:24 2016	(r309355)
+++ head/contrib/subversion/subversion/include/private/svn_sqlite.h	Thu Dec  1 07:50:44 2016	(r309356)
@@ -555,6 +555,9 @@ svn_sqlite__hotcopy(const char *src_path
                     const char *dst_path,
                     apr_pool_t *scratch_pool);
 
+/* Backported version of SVN_ERR_SQLITE_ROLLBACK_FAILED. */
+#define SVN_SQLITE__ERR_ROLLBACK_FAILED  (SVN_ERR_MISC_CATEGORY_START + 44)
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: head/contrib/subversion/subversion/include/svn_version.h
==============================================================================
--- head/contrib/subversion/subversion/include/svn_version.h	Thu Dec  1 07:46:24 2016	(r309355)
+++ head/contrib/subversion/subversion/include/svn_version.h	Thu Dec  1 07:50:44 2016	(r309356)
@@ -70,7 +70,7 @@ extern "C" {
  *
  * @since New in 1.1.
  */
-#define SVN_VER_PATCH      4
+#define SVN_VER_PATCH      5
 
 
 /** @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        " (r1740329)"
+#define SVN_VER_TAG        " (r1770682)"
 
 
 /** 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   1740329
+#define SVN_VER_REVISION   1770682
 
 
 /* Version strings composed from the above definitions. */

Modified: head/contrib/subversion/subversion/libsvn_client/merge.c
==============================================================================
--- head/contrib/subversion/subversion/libsvn_client/merge.c	Thu Dec  1 07:46:24 2016	(r309355)
+++ head/contrib/subversion/subversion/libsvn_client/merge.c	Thu Dec  1 07:50:44 2016	(r309356)
@@ -1295,6 +1295,15 @@ record_skip(merge_cmd_baton_t *merge_b,
   return SVN_NO_ERROR;
 }
 
+/* Forward declaration */
+static svn_client__merge_path_t *
+find_nearest_ancestor_with_intersecting_ranges(
+  svn_revnum_t *start,
+  svn_revnum_t *end,
+  const apr_array_header_t *children_with_mergeinfo,
+  svn_boolean_t path_is_own_ancestor,
+  const char *local_abspath);
+
 /* Record a tree conflict in the WC, unless this is a dry run or a record-
  * only merge, or if a tree conflict is already flagged for the VICTIM_PATH.
  * (The latter can happen if a merge-tracking-aware merge is doing multiple
@@ -1366,11 +1375,45 @@ record_tree_conflict(merge_cmd_baton_t *
             reason = svn_wc_conflict_reason_moved_here;
         }
 
-      SVN_ERR(make_conflict_versions(&left, &right, local_abspath,
-                                     merge_left_node_kind,
-                                     merge_right_node_kind,
-                                     &merge_b->merge_source, merge_b->target,
-                                     result_pool, scratch_pool));
+      if (HONOR_MERGEINFO(merge_b) && merge_b->merge_source.ancestral)
+        {
+          struct merge_source_t *source;
+          svn_client__pathrev_t *loc1;
+          svn_client__pathrev_t *loc2;
+          svn_merge_range_t range =
+            {SVN_INVALID_REVNUM, SVN_INVALID_REVNUM, TRUE};
+
+          /* We are honoring mergeinfo so do not blindly record
+           * a conflict describing the merge of
+           * SOURCE->LOC1->URL@SOURCE->LOC1->REV through
+           * SOURCE->LOC2->URL@SOURCE->LOC2->REV
+           * but figure out the actual revision range merged. */
+          (void)find_nearest_ancestor_with_intersecting_ranges(
+            &(range.start), &(range.end),
+            merge_b->notify_begin.nodes_with_mergeinfo,
+            action != svn_wc_conflict_action_delete,
+            local_abspath);
+          loc1 = svn_client__pathrev_dup(merge_b->merge_source.loc1,
+                                         scratch_pool);
+          loc2 = svn_client__pathrev_dup(merge_b->merge_source.loc2,
+                                         scratch_pool);
+          loc1->rev = range.start;
+          loc2->rev = range.end;
+          source = merge_source_create(loc1, loc2,
+                                       merge_b->merge_source.ancestral,
+                                       scratch_pool);
+          SVN_ERR(make_conflict_versions(&left, &right, local_abspath,
+                                         merge_left_node_kind,
+                                         merge_right_node_kind,
+                                         source, merge_b->target,
+                                         result_pool, scratch_pool));
+        }
+      else
+        SVN_ERR(make_conflict_versions(&left, &right, local_abspath,
+                                       merge_left_node_kind,
+                                       merge_right_node_kind,
+                                       &merge_b->merge_source, merge_b->target,
+                                       result_pool, scratch_pool));
 
       /* Fix up delete of file, add of dir replacement (or other way around) */
       if (existing_conflict != NULL && existing_conflict->src_left_version)
@@ -10956,7 +10999,7 @@ find_unsynced_ranges(const svn_client__p
                        potentially_unmerged_ranges->nelts - 1,
                        svn_merge_range_t *))->end;
       log_find_operative_baton_t log_baton;
-      const char *old_session_url;
+      const char *old_session_url = NULL;
       svn_error_t *err;
 
       log_baton.merged_catalog = merged_catalog;
@@ -10967,14 +11010,22 @@ find_unsynced_ranges(const svn_client__p
         = svn_client__pathrev_fspath(target_loc, scratch_pool);
       log_baton.result_pool = result_pool;
 
-      SVN_ERR(svn_client__ensure_ra_session_url(
-                &old_session_url, ra_session, target_loc->url, scratch_pool));
+      /* Reparent the session to TARGET_LOC if this target location
+       * exists within the unmerged revision range. */
+      if (target_loc->rev <= youngest_rev && target_loc->rev >= oldest_rev)
+        SVN_ERR(svn_client__ensure_ra_session_url(
+                  &old_session_url, ra_session, target_loc->url, scratch_pool));
+
       err = get_log(ra_session, "", youngest_rev, oldest_rev,
                     TRUE, /* discover_changed_paths */
                     log_find_operative_revs, &log_baton,
                     scratch_pool);
-      SVN_ERR(svn_error_compose_create(
-                err, svn_ra_reparent(ra_session, old_session_url, scratch_pool)));
+      if (old_session_url)
+        err = svn_error_compose_create(err,
+                                       svn_ra_reparent(ra_session,
+                                                       old_session_url,
+                                                       scratch_pool));
+      SVN_ERR(err);
     }
 
   return SVN_NO_ERROR;

Modified: head/contrib/subversion/subversion/libsvn_fs_fs/cached_data.c
==============================================================================
--- head/contrib/subversion/subversion/libsvn_fs_fs/cached_data.c	Thu Dec  1 07:46:24 2016	(r309355)
+++ head/contrib/subversion/subversion/libsvn_fs_fs/cached_data.c	Thu Dec  1 07:50:44 2016	(r309356)
@@ -1571,6 +1571,17 @@ read_plain_window(svn_stringbuf_t **nwin
   return SVN_NO_ERROR;
 }
 
+/* Skip SIZE bytes from the PLAIN representation RS. */
+static svn_error_t *
+skip_plain_window(rep_state_t *rs,
+                  apr_size_t size)
+{
+  /* Update RS. */
+  rs->current += (apr_off_t)size;
+
+  return SVN_NO_ERROR;
+}
+
 /* Get the undeltified window that is a result of combining all deltas
    from the current desired representation identified in *RB with its
    base representation.  Store the window in *RESULT. */
@@ -1628,9 +1639,18 @@ get_combined_window(svn_stringbuf_t **re
          Also note that we may have short-cut reading the delta chain --
          in which case SRC_OPS is 0 and it might not be a PLAIN rep. */
       source = buf;
-      if (source == NULL && rb->src_state != NULL && window->src_ops)
-        SVN_ERR(read_plain_window(&source, rb->src_state, window->sview_len,
-                                  pool, iterpool));
+      if (source == NULL && rb->src_state != NULL)
+        {
+          /* Even if we don't need the source rep now, we still must keep
+           * its read offset in sync with what we might need for the next
+           * window. */
+          if (window->src_ops)
+            SVN_ERR(read_plain_window(&source, rb->src_state,
+                                      window->sview_len,
+                                      pool, iterpool));
+          else
+            SVN_ERR(skip_plain_window(rb->src_state, window->sview_len));
+        }
 
       /* Combine this window with the current one. */
       new_pool = svn_pool_create(rb->pool);

Modified: head/contrib/subversion/subversion/libsvn_fs_fs/caching.c
==============================================================================
--- head/contrib/subversion/subversion/libsvn_fs_fs/caching.c	Thu Dec  1 07:46:24 2016	(r309355)
+++ head/contrib/subversion/subversion/libsvn_fs_fs/caching.c	Thu Dec  1 07:50:44 2016	(r309356)
@@ -430,7 +430,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                        svn_fs_fs__deserialize_dir_entries,
                        sizeof(pair_cache_key_t),
                        apr_pstrcat(pool, prefix, "DIR", SVN_VA_NULL),
-                       SVN_CACHE__MEMBUFFER_DEFAULT_PRIORITY,
+                       SVN_CACHE__MEMBUFFER_HIGH_PRIORITY,
                        fs,
                        no_handler,
                        fs->pool, pool));
@@ -806,7 +806,7 @@ svn_fs_fs__initialize_txn_caches(svn_fs_
                        APR_HASH_KEY_STRING,
                        apr_pstrcat(pool, prefix, "TXNDIR",
                                    SVN_VA_NULL),
-                       0,
+                       SVN_CACHE__MEMBUFFER_HIGH_PRIORITY,
                        fs,
                        TRUE,
                        pool, pool));

Modified: head/contrib/subversion/subversion/libsvn_fs_fs/fs.c
==============================================================================
--- head/contrib/subversion/subversion/libsvn_fs_fs/fs.c	Thu Dec  1 07:46:24 2016	(r309355)
+++ head/contrib/subversion/subversion/libsvn_fs_fs/fs.c	Thu Dec  1 07:50:44 2016	(r309356)
@@ -452,7 +452,7 @@ fs_pack(svn_fs_t *fs,
         apr_pool_t *common_pool)
 {
   SVN_ERR(fs_open(fs, path, common_pool_lock, pool, common_pool));
-  return svn_fs_fs__pack(fs, notify_func, notify_baton,
+  return svn_fs_fs__pack(fs, 0, notify_func, notify_baton,
                          cancel_func, cancel_baton, pool);
 }
 

Modified: head/contrib/subversion/subversion/libsvn_fs_fs/fs_fs.c
==============================================================================
--- head/contrib/subversion/subversion/libsvn_fs_fs/fs_fs.c	Thu Dec  1 07:46:24 2016	(r309355)
+++ head/contrib/subversion/subversion/libsvn_fs_fs/fs_fs.c	Thu Dec  1 07:50:44 2016	(r309356)
@@ -492,6 +492,7 @@ read_format(int *pformat,
       svn_error_clear(err);
       *pformat = 1;
       *max_files_per_dir = 0;
+      *use_log_addressing = FALSE;
 
       return SVN_NO_ERROR;
     }

Modified: head/contrib/subversion/subversion/libsvn_fs_fs/low_level.c
==============================================================================
--- head/contrib/subversion/subversion/libsvn_fs_fs/low_level.c	Thu Dec  1 07:46:24 2016	(r309355)
+++ head/contrib/subversion/subversion/libsvn_fs_fs/low_level.c	Thu Dec  1 07:50:44 2016	(r309356)
@@ -764,7 +764,11 @@ svn_fs_fs__parse_representation(represen
 
   SVN_ERR(svn_checksum_parse_hex(&checksum, svn_checksum_md5, str,
                                  scratch_pool));
-  memcpy(rep->md5_digest, checksum->digest, sizeof(rep->md5_digest));
+
+  /* If STR is a all-zero checksum, CHECKSUM will be NULL and REP already
+     contains the correct value. */
+  if (checksum)
+    memcpy(rep->md5_digest, checksum->digest, sizeof(rep->md5_digest));
 
   /* The remaining fields are only used for formats >= 4, so check that. */
   str = svn_cstring_tokenize(" ", &string);
@@ -778,8 +782,16 @@ svn_fs_fs__parse_representation(represen
 
   SVN_ERR(svn_checksum_parse_hex(&checksum, svn_checksum_sha1, str,
                                  scratch_pool));
+
+  /* We do have a valid SHA1 but it might be all 0.
+     We cannot be sure where that came from (Alas! legacy), so let's not
+     claim we know the SHA1 in that case. */
   rep->has_sha1 = checksum != NULL;
-  memcpy(rep->sha1_digest, checksum->digest, sizeof(rep->sha1_digest));
+
+  /* If STR is a all-zero checksum, CHECKSUM will be NULL and REP already
+     contains the correct value. */
+  if (checksum)
+    memcpy(rep->sha1_digest, checksum->digest, sizeof(rep->sha1_digest));
 
   /* Read the uniquifier. */
   str = svn_cstring_tokenize("/", &string);

Modified: head/contrib/subversion/subversion/libsvn_fs_fs/pack.c
==============================================================================
--- head/contrib/subversion/subversion/libsvn_fs_fs/pack.c	Thu Dec  1 07:46:24 2016	(r309355)
+++ head/contrib/subversion/subversion/libsvn_fs_fs/pack.c	Thu Dec  1 07:50:44 2016	(r309356)
@@ -335,21 +335,40 @@ static svn_error_t *
 reset_pack_context(pack_context_t *context,
                    apr_pool_t *pool)
 {
+  const char *temp_dir;
+
   apr_array_clear(context->changes);
-  SVN_ERR(svn_io_file_trunc(context->changes_file, 0, pool));
+  SVN_ERR(svn_io_file_close(context->changes_file, pool));
   apr_array_clear(context->file_props);
-  SVN_ERR(svn_io_file_trunc(context->file_props_file, 0, pool));
+  SVN_ERR(svn_io_file_close(context->file_props_file, pool));
   apr_array_clear(context->dir_props);
-  SVN_ERR(svn_io_file_trunc(context->dir_props_file, 0, pool));
+  SVN_ERR(svn_io_file_close(context->dir_props_file, pool));
 
   apr_array_clear(context->rev_offsets);
   apr_array_clear(context->path_order);
   apr_array_clear(context->references);
   apr_array_clear(context->reps);
-  SVN_ERR(svn_io_file_trunc(context->reps_file, 0, pool));
+  SVN_ERR(svn_io_file_close(context->reps_file, pool));
 
   svn_pool_clear(context->info_pool);
 
+  /* The new temporary files must live at least as long as any other info
+   * object in CONTEXT. */
+  SVN_ERR(svn_io_temp_dir(&temp_dir, pool));
+  SVN_ERR(svn_io_open_unique_file3(&context->changes_file, NULL, temp_dir,
+                                   svn_io_file_del_on_close,
+                                   context->info_pool, pool));
+  SVN_ERR(svn_io_open_unique_file3(&context->file_props_file, NULL, temp_dir,
+                                   svn_io_file_del_on_close,
+                                   context->info_pool, pool));
+  SVN_ERR(svn_io_open_unique_file3(&context->dir_props_file, NULL, temp_dir,
+                                   svn_io_file_del_on_close,
+                                   context->info_pool, pool));
+  SVN_ERR(svn_io_open_unique_file3(&context->reps_file, NULL, temp_dir,
+                                   svn_io_file_del_on_close,
+                                   context->info_pool, pool));
+  context->paths = svn_prefix_tree__create(context->info_pool);
+
   return SVN_NO_ERROR;
 }
 
@@ -1410,21 +1429,20 @@ append_revision(pack_context_t *context,
   apr_off_t offset = 0;
   apr_pool_t *iterpool = svn_pool_create(pool);
   svn_fs_fs__revision_file_t *rev_file;
-  apr_finfo_t finfo;
-
-  /* Get the size of the file. */
-  const char *path = svn_dirent_join(context->shard_dir,
-                                     apr_psprintf(iterpool, "%ld",
-                                                  context->start_rev),
-                                     pool);
-  SVN_ERR(svn_io_stat(&finfo, path, APR_FINFO_SIZE, pool));
+  svn_filesize_t revdata_size;
 
-  /* Copy all the bits from the rev file to the end of the pack file. */
+  /* Copy all non-index contents the rev file to the end of the pack file. */
   SVN_ERR(svn_fs_fs__open_pack_or_rev_file(&rev_file, context->fs,
                                            context->start_rev, pool,
                                            iterpool));
+
+  SVN_ERR(svn_fs_fs__auto_read_footer(rev_file));
+  revdata_size = rev_file->l2p_offset;
+
+  SVN_ERR(svn_io_file_aligned_seek(rev_file->file, ffd->block_size, NULL, 0,
+                                   iterpool));
   SVN_ERR(copy_file_data(context, context->pack_file, rev_file->file,
-                         finfo.size, iterpool));
+                         revdata_size, iterpool));
 
   /* mark the start of a new revision */
   SVN_ERR(svn_fs_fs__l2p_proto_index_add_revision(context->proto_l2p_index,
@@ -1432,7 +1450,7 @@ append_revision(pack_context_t *context,
 
   /* read the phys-to-log index file until we covered the whole rev file.
    * That index contains enough info to build both target indexes from it. */
-  while (offset < finfo.size)
+  while (offset < revdata_size)
     {
       /* read one cluster */
       int i;
@@ -1456,7 +1474,7 @@ append_revision(pack_context_t *context,
 
           /* process entry while inside the rev file */
           offset = entry->offset;
-          if (offset < finfo.size)
+          if (offset < revdata_size)
             {
               entry->offset += context->pack_offset;
               offset += entry->size;
@@ -1470,7 +1488,7 @@ append_revision(pack_context_t *context,
     }
 
   svn_pool_destroy(iterpool);
-  context->pack_offset += finfo.size;
+  context->pack_offset += revdata_size;

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201612010750.uB17oidw001220>