You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2018/09/30 18:26:49 UTC

svn commit: r1842404 [1/11] - in /subversion/branches/better-pristines: ./ build/ build/ac-macros/ build/generator/ build/generator/templates/ contrib/client-side/svn_load_dirs/ doc/user/ notes/logo/ notes/shelving/ subversion/bindings/javahl/ subversi...

Author: brane
Date: Sun Sep 30 18:26:47 2018
New Revision: 1842404

URL: http://svn.apache.org/viewvc?rev=1842404&view=rev
Log:
On the better-pristines branch: Sync with trunk up to r1842402.

Added:
    subversion/branches/better-pristines/notes/logo/subversion_logo.svg
      - copied unchanged from r1842402, subversion/trunk/notes/logo/subversion_logo.svg
    subversion/branches/better-pristines/notes/shelving/
      - copied from r1842402, subversion/trunk/notes/shelving/
    subversion/branches/better-pristines/subversion/libsvn_repos/dump_editor.c
      - copied unchanged from r1842402, subversion/trunk/subversion/libsvn_repos/dump_editor.c
    subversion/branches/better-pristines/subversion/tests/afl/afl-svndiff-testcase/
      - copied from r1842402, subversion/trunk/subversion/tests/afl/afl-svndiff-testcase/
    subversion/branches/better-pristines/subversion/tests/afl/afl-svndiff.c
      - copied unchanged from r1842402, subversion/trunk/subversion/tests/afl/afl-svndiff.c
    subversion/branches/better-pristines/subversion/tests/afl/afl-x509-testcase/test2
      - copied unchanged from r1842402, subversion/trunk/subversion/tests/afl/afl-x509-testcase/test2
    subversion/branches/better-pristines/subversion/tests/afl/afl-x509-testcase/test3
      - copied unchanged from r1842402, subversion/trunk/subversion/tests/afl/afl-x509-testcase/test3
    subversion/branches/better-pristines/tools/dist/changes-to-html.py
      - copied unchanged from r1842402, subversion/trunk/tools/dist/changes-to-html.py
Modified:
    subversion/branches/better-pristines/   (props changed)
    subversion/branches/better-pristines/CHANGES
    subversion/branches/better-pristines/COMMITTERS
    subversion/branches/better-pristines/Makefile.in
    subversion/branches/better-pristines/build.conf
    subversion/branches/better-pristines/build/ac-macros/java.m4
    subversion/branches/better-pristines/build/ac-macros/libsecret.m4
    subversion/branches/better-pristines/build/ac-macros/swig.m4
    subversion/branches/better-pristines/build/generator/extractor.py
    subversion/branches/better-pristines/build/generator/gen_base.py
    subversion/branches/better-pristines/build/generator/gen_make.py
    subversion/branches/better-pristines/build/generator/gen_win.py
    subversion/branches/better-pristines/build/generator/gen_win_dependencies.py
    subversion/branches/better-pristines/build/generator/templates/build-outputs.mk.ezt
    subversion/branches/better-pristines/build/run_tests.py
    subversion/branches/better-pristines/configure.ac
    subversion/branches/better-pristines/contrib/client-side/svn_load_dirs/svn_load_dirs.pl.in
    subversion/branches/better-pristines/doc/user/svn-best-practices.html
    subversion/branches/better-pristines/subversion/bindings/javahl/README
    subversion/branches/better-pristines/subversion/bindings/javahl/native/JNIUtil.cpp
    subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java
    subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
    subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java
    subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
    subversion/branches/better-pristines/subversion/bindings/swig/ruby/svn/util.rb
    subversion/branches/better-pristines/subversion/bindings/swig/ruby/test/test_util.rb
    subversion/branches/better-pristines/subversion/include/private/svn_client_private.h
    subversion/branches/better-pristines/subversion/include/private/svn_diff_tree.h
    subversion/branches/better-pristines/subversion/include/private/svn_repos_private.h
    subversion/branches/better-pristines/subversion/include/private/svn_wc_private.h
    subversion/branches/better-pristines/subversion/include/svn_client.h
    subversion/branches/better-pristines/subversion/include/svn_repos.h
    subversion/branches/better-pristines/subversion/include/svn_time.h
    subversion/branches/better-pristines/subversion/include/svn_version.h
    subversion/branches/better-pristines/subversion/include/svn_wc.h
    subversion/branches/better-pristines/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
    subversion/branches/better-pristines/subversion/libsvn_client/client.h
    subversion/branches/better-pristines/subversion/libsvn_client/conflicts.c
    subversion/branches/better-pristines/subversion/libsvn_client/diff.c   (contents, props changed)
    subversion/branches/better-pristines/subversion/libsvn_client/diff_local.c
    subversion/branches/better-pristines/subversion/libsvn_client/diff_summarize.c
    subversion/branches/better-pristines/subversion/libsvn_client/layout.c
    subversion/branches/better-pristines/subversion/libsvn_client/list.c
    subversion/branches/better-pristines/subversion/libsvn_client/merge.c
    subversion/branches/better-pristines/subversion/libsvn_client/repos_diff.c
    subversion/branches/better-pristines/subversion/libsvn_client/shelf.c
    subversion/branches/better-pristines/subversion/libsvn_client/status.c
    subversion/branches/better-pristines/subversion/libsvn_client/update.c
    subversion/branches/better-pristines/subversion/libsvn_diff/diff_tree.c
    subversion/branches/better-pristines/subversion/libsvn_fs_fs/recovery.c
    subversion/branches/better-pristines/subversion/libsvn_fs_x/   (props changed)
    subversion/branches/better-pristines/subversion/libsvn_fs_x/tree.c
    subversion/branches/better-pristines/subversion/libsvn_ra_serf/util.c
    subversion/branches/better-pristines/subversion/libsvn_repos/authz_parse.c
    subversion/branches/better-pristines/subversion/libsvn_repos/dump.c
    subversion/branches/better-pristines/subversion/libsvn_repos/list.c
    subversion/branches/better-pristines/subversion/libsvn_subr/config_file.c
    subversion/branches/better-pristines/subversion/libsvn_subr/io.c
    subversion/branches/better-pristines/subversion/libsvn_subr/ssl_client_cert_pw_providers.c
    subversion/branches/better-pristines/subversion/libsvn_subr/sysinfo.c
    subversion/branches/better-pristines/subversion/libsvn_wc/README
    subversion/branches/better-pristines/subversion/libsvn_wc/conflicts.c
    subversion/branches/better-pristines/subversion/libsvn_wc/deprecated.c
    subversion/branches/better-pristines/subversion/libsvn_wc/diff_local.c
    subversion/branches/better-pristines/subversion/libsvn_wc/node.c
    subversion/branches/better-pristines/subversion/libsvn_wc/wc-queries.sql
    subversion/branches/better-pristines/subversion/libsvn_wc/wc.h
    subversion/branches/better-pristines/subversion/libsvn_wc/wc_db.c
    subversion/branches/better-pristines/subversion/libsvn_wc/wc_db.h
    subversion/branches/better-pristines/subversion/libsvn_wc/wc_db_wcroot.c
    subversion/branches/better-pristines/subversion/libsvn_wc/wcroot_anchor.c
    subversion/branches/better-pristines/subversion/mod_dav_svn/reports/file-revs.c
    subversion/branches/better-pristines/subversion/mod_dav_svn/repos.c
    subversion/branches/better-pristines/subversion/po/de.po
    subversion/branches/better-pristines/subversion/po/sv.po
    subversion/branches/better-pristines/subversion/svn/cl.h
    subversion/branches/better-pristines/subversion/svn/conflict-callbacks.c
    subversion/branches/better-pristines/subversion/svn/diff-cmd.c
    subversion/branches/better-pristines/subversion/svn/info-cmd.c
    subversion/branches/better-pristines/subversion/svn/shelf-cmd.c
    subversion/branches/better-pristines/subversion/svn/svn.c
    subversion/branches/better-pristines/subversion/svnadmin/svnadmin.c
    subversion/branches/better-pristines/subversion/svnrdump/dump_editor.c
    subversion/branches/better-pristines/subversion/tests/cmdline/basic_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/blame_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/commit_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/diff_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/entries_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/export_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/externals_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/getopt_tests_data/svn--help_stdout
    subversion/branches/better-pristines/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
    subversion/branches/better-pristines/subversion/tests/cmdline/getopt_tests_data/svn_help_stdout
    subversion/branches/better-pristines/subversion/tests/cmdline/lock_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/log_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/move_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/patch_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/prop_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/revert_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/shelf_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/special_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/stat_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/svnadmin_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/svnfsfs_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/svnmover_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/svnmucc_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/svnrdump_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/svnsync_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/svntest/main.py
    subversion/branches/better-pristines/subversion/tests/cmdline/svntest/sandbox.py
    subversion/branches/better-pristines/subversion/tests/cmdline/svntest/tree.py
    subversion/branches/better-pristines/subversion/tests/cmdline/svntest/verify.py
    subversion/branches/better-pristines/subversion/tests/cmdline/svntest/wc.py
    subversion/branches/better-pristines/subversion/tests/cmdline/trans_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/tree_conflict_tests.py
    subversion/branches/better-pristines/subversion/tests/cmdline/upgrade_tests.py
    subversion/branches/better-pristines/subversion/tests/libsvn_client/conflicts-test.c
    subversion/branches/better-pristines/subversion/tests/libsvn_repos/authz-test.c
    subversion/branches/better-pristines/subversion/tests/libsvn_repos/repos-test.c
    subversion/branches/better-pristines/subversion/tests/libsvn_wc/wc-queries-test.c
    subversion/branches/better-pristines/tools/client-side/bash_completion
    subversion/branches/better-pristines/tools/dev/unix-build/Makefile.svn
    subversion/branches/better-pristines/tools/dist/backport_tests.py
    subversion/branches/better-pristines/tools/dist/release.py
    subversion/branches/better-pristines/tools/dist/security/parser.py
    subversion/branches/better-pristines/tools/dist/templates/download.ezt
    subversion/branches/better-pristines/tools/dist/templates/rc-news.ezt
    subversion/branches/better-pristines/tools/dist/templates/rc-release-ann.ezt
    subversion/branches/better-pristines/tools/dist/templates/stable-news.ezt
    subversion/branches/better-pristines/tools/dist/templates/stable-release-ann.ezt
    subversion/branches/better-pristines/tools/server-side/svnpubsub/svnwcsub.py

Propchange: subversion/branches/better-pristines/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Sep 30 18:26:47 2018
@@ -1,4 +1,5 @@
 /subversion/branches/1.10-cache-improvements:1669168-1694487
+/subversion/branches/1.11.x:1841316,1841548
 /subversion/branches/1.5.x-r30215:870312
 /subversion/branches/1.7.x-fs-verify:1146708,1161180
 /subversion/branches/1.9-cache-improvements:1678948-1679863
@@ -54,6 +55,7 @@
 /subversion/branches/issue-3975:1152931-1160746
 /subversion/branches/issue-4116-dev:1424719-1425040
 /subversion/branches/issue-4194-dev:1410507-1414880
+/subversion/branches/java10-compat:1840620-1841179
 /subversion/branches/javahl-ra:991978-1494640
 /subversion/branches/kwallet:870785-871314
 /subversion/branches/log-addressing:1509279-1546844
@@ -99,4 +101,4 @@
 /subversion/branches/verify-at-commit:1462039-1462408
 /subversion/branches/verify-keep-going:1439280-1546110
 /subversion/branches/wc-collate-path:1402685-1480384
-/subversion/trunk:1807118-1829346
+/subversion/trunk:1807118-1842402

Modified: subversion/branches/better-pristines/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/CHANGES?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/CHANGES (original)
+++ subversion/branches/better-pristines/CHANGES Sun Sep 30 18:26:47 2018
@@ -1,7 +1,91 @@
+# To view a revision listed as (rXXXXXXX), visit:
+#   https://svn.apache.org/rXXXXXXX
+#
+# To view an issue listed as (issue #XXXX), visit:
+#   https://issues.apache.org/jira/browse/SVN-XXXX
+
+Version 1.12.0
+(?? ??? 20XX, from /branches/1.12.x)
+https://svn.apache.org/repos/asf/subversion/tags/1.12.0
+
 Version 1.11.0
-(?? ??? 20XX, from /branches/1.11.x)
+(24 Oct 2018, from /branches/1.11.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.11.0
 
+ User-visible changes:
+  - Major new features:
+    * Shelving is no longer based on patch files (experimental) (issue #3625)
+    * Checkpointing (experimental) (issue #3626)
+    * Viewspec output command (experimental) (issue #4753)
+
+  - Minor new features and improvements:
+    * Improvements to tree conflict resolution (issue #4694 #4766 ...)
+    * 'patch' can now read non-pretty-printed svn:mergeinfo diffs (r1822151)
+    * Better error when http:// URL is not a Subversion repository (r1825302)
+    * Add 'schedule' and 'depth' items to 'svn info --show-item' (r1827032)
+    * Allow the client cert password to be saved (r1836762)
+
+  - Client-side bugfixes:
+    * Fix a crash in a repo:WC summary diff of a local copy (r1835218)
+    * Fix double diff headers (r1836746)
+    * Tree conflict resolver: avoid endless scan in some cases (r1839662)
+
+  - Server-side bugfixes:
+    * svnadmin dump shouldn't canonicalize svn:date (issue #4767)
+    * 'svnadmin verify --keep-going --quiet' shows an error summary (r1837790)
+    * Let 'svnadmin recover' prune the rep-cache even if disabled (r1838813)
+
+  - Client-side and server-side bugfixes:
+    * Fix pattern-matching of top level path in listing with search (r1830599)
+    * Allow commands like 'svn ci --file X' to work when X is a FIFO (r1836306)
+
+  - Other tool improvements and bugfixes:
+    * tools/client-side/bash_completion: Add '--password-from-stdin' (r1820045)
+
+ Developer-visible changes:
+  - General:
+    * new tool: tools/dist/edit-N-log-messages (r1819207)
+    * tools/dev/unix-build/Makefile.svn: various fixes
+    * Expose the diff option 'pretty_print_mergeinfo' in APIs (r1822014)
+    * In 'revert' APIs, choose whether to delete schedule-add nodes (r1822534)
+
+  - Bindings:
+    * Fix Python binding fs.FileDiff behaviour with python-future (r1823802)
+    * Fix Python unit test, fs.SubversionFSTestCase, on Windows (r1824410)
+    * Bump minimum JDK version required for JavaHL to 1.8 (r1831895)
+    * Enable building against Java 10 (r1841180 et al)
+    * Fix a potential crash in JavaHL (issue #4764)
+
+
+Version 1.10.2
+(20 Jul 2018, from /branches/1.10.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.10.2
+
+ User-visible changes:
+  - Client-side bugfixes:
+    * Correctly claim to offer Gnome Keyring support with libsecret (r1831142)
+    * Fix segfault using Gnome Keyring with libsecret (r1835782)
+    * Fix JavaHL local refs capacity warning when unparsing externals (r1831143)
+    * Since on Windows Subversion does not handle symlinks, never check for reparse points (r1835701)
+    * Prune externals after 'update --set-depth=exclude' (r1835702)
+    * Fix issue #4740, "conflict resolver searches too far back ..." (r1835703)
+  - Server-side bugfixes:
+    * Fix regression issue #4741: authz group refers to multiple groups (r1831220)
+
+ Developer-visible changes:
+  - General:
+    * Regression test and FSFS checksum test, part of issue #4722 (r1828043)
+    * Explicit error on configure --without-lz4 or --without-utf8proc (r1831604)
+    * configure.ac: Fix regression relating to path to 'rdoc' (r1833486)
+    * Ensure consistent use of $PYTHON during build and test (r1833487)
+    * Fix libsvn_auth_gnome_keyring.pc when built using libsecret (r1835781)
+  - Bindings:
+    * Fix regression in use of pre-generated Swig bindings in release builds (r1833488)
+
+
+Version 1.10.1
+(Not released; see changes for 1.10.2.)
+
 
 Version 1.10.0
 (13 Apr 2018, from /branches/1.10.x)
@@ -291,6 +375,41 @@ the 1.9 release:  https://subversion.apa
     * Ruby: Detect versions up to 2.4 (r1806570)
 
 
+Version 1.9.9
+(20 Jul 2018, from /branches/1.9.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.9.9
+
+ User-visible changes:
+  - Client-side bugfixes:
+    * Fix SEGV for 'svn export -rN WC' with relative externals (r1803755)
+    * Fix issue #4677: 'svn up' after a directory replaced a file (r1814248)
+    * Fix segfault when no home directory is available (r1819199)
+    * Performance: Make 'svn info' fast on old repository revisions (r1827690)
+    * Fix RA-serf problem with proxy username and password (r1833571)
+
+  - Server-side bugfixes:
+    * svnadmin: Fix false errors on some valid LOCK_PATH arguments (r1803754)
+    * Fix crash when exiting 'svnserve --config-file' (r1824405)
+    * Fix issue #4722: false "filesystem is corrupt" error on commit (r1827688)
+    * Reword confusing "nested" wording in an httpd.conf warning (r1835700)
+
+  - Bindings bugfixes:
+    * swig-py: svn.core.Stream supports raw binary file-like objects (r1820620)
+    * swig-rb: Don't crash if svn_md5_digest_to_cstring returns NULL (r1823805)
+
+ Developer-visible changes:
+  - General:
+    * Fix CVE-2017-9800: Malicious server can execute arbitrary command on client (r1804698)
+    * Fix test failure if compile- and run-time HTTPD versions differ (r1820523)
+
+  - API changes:
+    (none)
+
+
+Version 1.9.8
+(Not released; see changes for 1.9.9.)
+
+
 Version 1.9.7
 (10 Aug 2017, from /branches/1.9.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.9.7

Modified: subversion/branches/better-pristines/COMMITTERS
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/COMMITTERS?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/COMMITTERS [UTF-8] (original)
+++ subversion/branches/better-pristines/COMMITTERS [UTF-8] Sun Sep 30 18:26:47 2018
@@ -87,6 +87,7 @@ Partial committers who have asked to be
       rassilon   Bill Tutt <bi...@tutts.org> (Win32, COM, issue-1003-dev br.)
            pll   Paul lussier <p....@comcast.net>        (releases)
         rdonch   Роман Донченко <dp...@corrigendum.ru>         (Swig-Python b.)
+      karolszk   Karol Szkudlarek <ka...@mikronika.com.pl>   (po: pl)
 
 
 Commit access for specific areas:
@@ -179,7 +180,6 @@ Commit access for specific areas:
       oyvindmo   Øyvind Møll <sv...@moll.no>                   (po: nb)
       sunny256   Øyvind A. Holm <su...@sunbase.org>          (po: nb)
         jzgoda   Jaroslaw Zgoda <jz...@o2.pl>               (po: pl)
-      karolszk   Karol Szkudlarek <ka...@mikronika.com.pl>   (po: pl)
         plasma   Wei-Hon Chen <pl...@ms9.hinet.net>         (po: zh_TW)
        jihuang   June-Yen Huang <ji...@iis.sinica.edu.tw>  (po: zh_TW) [EMAIL
                                                              IS BOUNCING]

Modified: subversion/branches/better-pristines/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/Makefile.in?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/Makefile.in (original)
+++ subversion/branches/better-pristines/Makefile.in Sun Sep 30 18:26:47 2018
@@ -218,7 +218,6 @@ COMPILE_SWIG_RB = $(LIBTOOL) $(LTFLAGS)
 # special compilation for files destined for javahl (i.e. C++)
 COMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS) $(JAVAHL_INCLUDES) -o $@ -c
 COMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS)
-COMPILE_JAVAHL_JAVAH = $(JAVAH)
 COMPILE_JAVAHL_COMPAT_JAVAC = $(JAVAC) $(JAVAC_COMPAT_FLAGS)
 
 # On Mac OS X, export an env variable so that the tests can run without
@@ -393,7 +392,6 @@ JAVAC = @JAVAC@
 JAVADOC = @JAVADOC@
 JAVAC_FLAGS = @JAVAC_FLAGS@
 JAVAC_COMPAT_FLAGS = @JAVAC_COMPAT_FLAGS@
-JAVAH = @JAVAH@
 JAR = @JAR@
 
 JAVA_CLASSPATH=$(abs_srcdir)/subversion/bindings/javahl/src:@JAVA_CLASSPATH@
@@ -494,8 +492,8 @@ revision-install:
 install-static: @INSTALL_STATIC_RULES@
 
 # JavaHL target aliases
-javahl: mkdir-init javahl-java javahl-javah javahl-callback-javah javahl-remote-javah javahl-types-javah javahl-util-javah javahl-lib @JAVAHL_TESTS_TARGET@ javahl-compat
-install-javahl: javahl install-javahl-java install-javahl-javah install-javahl-lib
+javahl: mkdir-init javahl-java javahl-callback-java javahl-remote-java javahl-types-java javahl-util-java javahl-lib @JAVAHL_TESTS_TARGET@ javahl-compat
+install-javahl: javahl install-javahl-java install-javahl-lib
 javahl-compat: javahl-compat-java @JAVAHL_COMPAT_TESTS_TARGET@
 
 clean-javahl:

Modified: subversion/branches/better-pristines/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/build.conf?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/build.conf (original)
+++ subversion/branches/better-pristines/build.conf Sun Sep 30 18:26:47 2018
@@ -608,16 +608,14 @@ msvc-export = ../bindings/swig/ruby/libs
 [javahl-java]
 type = java
 path = subversion/bindings/javahl/src/org/apache/subversion/javahl
-  subversion/bindings/javahl/src/org/apache/subversion/javahl/callback
-  subversion/bindings/javahl/src/org/apache/subversion/javahl/remote
-  subversion/bindings/javahl/src/org/apache/subversion/javahl/types
-  subversion/bindings/javahl/src/org/apache/subversion/javahl/util
-src-root = subversion/bindings/javahl/src
 sources = *.java
+native = CommitItemStateFlags.java NativeResources.java SVNClient.java
+         SVNRepos.java
 install = javahl-java
 link-cmd = $(COMPILE_JAVAHL_JAVAC)
 classes = subversion/bindings/javahl/classes
-package-roots = org
+headers = subversion/bindings/javahl/include
+package = org.apache.subversion.javahl
 
 [javahl-compat-java]
 type = java
@@ -626,10 +624,12 @@ sources = *.java
 install = javahl-java
 link-cmd = $(COMPILE_JAVAHL_COMPAT_JAVAC)
 classes = subversion/bindings/javahl/classes
-add-deps = $(javahl_java_DEPS)
+add-deps = $(javahl_callback_java_DEPS) $(javahl_remote_java_DEPS)
+           $(javahl_types_java_DEPS) $(javahl_util_java_DEPS)
+           $(javahl_java_DEPS)
 ### Replace JAR call in INSTALL_EXTRA_JAVAHL_JAVA macro Makefile.in.
 #jar = svn-javahl.jar
-package-roots = org
+package = org.tigris.subversion.javahl
 
 [javahl-tests]
 type = java
@@ -638,10 +638,12 @@ sources = *.java
 install = javahl-java
 link-cmd = $(COMPILE_JAVAHL_JAVAC)
 classes = subversion/bindings/javahl/classes
-package-roots = org
+package = org.apache.subversion.javahl
 ### Java targets don't do up-to-date checks yet.
 #add-deps = javahl-java
-add-deps = $(javahl_java_DEPS)
+add-deps = $(javahl_callback_java_DEPS) $(javahl_remote_java_DEPS)
+           $(javahl_types_java_DEPS) $(javahl_util_java_DEPS)
+           $(javahl_java_DEPS)
 
 [javahl-compat-tests]
 type = java
@@ -650,65 +652,59 @@ sources = *.java
 install = javahl-java
 link-cmd = $(COMPILE_JAVAHL_COMPAT_JAVAC)
 classes = subversion/bindings/javahl/classes
-package-roots = org
+package = org.tigris.subversion.javahl
 ### Java targets don't do up-to-date checks yet.
 #add-deps = javahl-compat-java
 add-deps = $(javahl_compat_java_DEPS)
 
-[javahl-callback-javah]
-type = javah
+[javahl-callback-java]
+type = java
 path = subversion/bindings/javahl/src/org/apache/subversion/javahl/callback
 classes = subversion/bindings/javahl/classes
 headers = subversion/bindings/javahl/include
 package = org.apache.subversion.javahl.callback
 sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+native = UserPasswordCallback.java
+install = javahl-java
+link-cmd = $(COMPILE_JAVAHL_JAVAC)
 
-[javahl-remote-javah]
-type = javah
+[javahl-remote-java]
+type = java
 path = subversion/bindings/javahl/src/org/apache/subversion/javahl/remote
 classes = subversion/bindings/javahl/classes
 headers = subversion/bindings/javahl/include
 package = org.apache.subversion.javahl.remote
 sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+native = CommitEditor.java RemoteFactory.java RemoteSession.java
+         StateReporter.java
+install = javahl-java
+link-cmd = $(COMPILE_JAVAHL_JAVAC)
 
-[javahl-types-javah]
-type = javah
+[javahl-types-java]
+type = java
 path = subversion/bindings/javahl/src/org/apache/subversion/javahl/types
 classes = subversion/bindings/javahl/classes
 headers = subversion/bindings/javahl/include
 package = org.apache.subversion.javahl.types
 sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+native = NativeInputStream.java NativeOutputStream.java Revision.java
+         RevisionRangeList.java RuntimeVersion.java VersionExtended.java
+         Version.java
+install = javahl-java
+link-cmd = $(COMPILE_JAVAHL_JAVAC)
 
-[javahl-util-javah]
-type = javah
+[javahl-util-java]
+type = java
 path = subversion/bindings/javahl/src/org/apache/subversion/javahl/util
 classes = subversion/bindings/javahl/classes
 headers = subversion/bindings/javahl/include
 package = org.apache.subversion.javahl.util
 sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
-
-[javahl-javah]
-type = javah
-path = subversion/bindings/javahl/src/org/apache/subversion/javahl
-classes = subversion/bindings/javahl/classes
-headers = subversion/bindings/javahl/include
-package = org.apache.subversion.javahl
-sources = *.java
-add-deps = $(javahl_java_DEPS)
-install = javahl-javah
-link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+native = ConfigImpl.java ConfigLib.java DiffLib.java PropLib.java
+         RequestChannel.java ResponseChannel.java SubstLib.java
+         TunnelChannel.java
+install = javahl-java
+link-cmd = $(COMPILE_JAVAHL_JAVAC)
 
 [libsvnjavahl]
 description = Subversion Java HighLevel binding
@@ -717,9 +713,9 @@ path = subversion/bindings/javahl/native
 libs = libsvn_repos libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff 
        libsvn_subr libsvn_fs aprutil apriconv apr java-sdk
 sources = *.cpp jniwrapper/*.cpp
-add-deps = $(javahl_java_DEPS) $(javahl_callback_javah_DEPS)
-           $(javahl_remote_javah_DEPS) $(javahl_types_javah_DEPS)
-           $(javahl_util_javah_DEPS) $(javahl_javah_DEPS)
+add-deps = $(javahl_java_DEPS) $(javahl_callback_java_DEPS)
+           $(javahl_remote_java_DEPS) $(javahl_types_java_DEPS)
+           $(javahl_util_java_DEPS) $(javahl_java_DEPS)
 install = javahl-lib
 # need special build rule to include -I$(JDK)/include/jni.h
 compile-cmd = $(COMPILE_JAVAHL_CXX)
@@ -1463,7 +1459,8 @@ external-lib = $(SVN_DB_LIBS)
 [gnome-keyring]
 type = lib
 external-lib = $(SVN_GNOME_KEYRING_LIBS)
-pkg-config = gnome-keyring-1
+pkg-config = @SVN_GNOME_KEYRING_PCLIBS@
+pkg-config-private = yes
 
 [kwallet]
 type = lib
@@ -1587,7 +1584,7 @@ libs = __ALL__
        conflict-data-test db-test pristine-store-test entries-compat-test
        op-depth-test dirent_uri-test wc-queries-test wc-test
        auth-test
-       parse-diff-test x509-test xml-test afl-x509 compress-test
+       parse-diff-test x509-test xml-test afl-x509 afl-svndiff compress-test
        svndiff-stream-test
 
 [__MORE__]
@@ -1629,7 +1626,7 @@ lang = ruby
 [__JAVAHL__]
 type = project
 path = build/win32
-libs = javahl-java javahl-javah libsvnjavahl
+libs = javahl-java libsvnjavahl
 
 [__JAVAHL_TESTS__]
 type = project
@@ -1748,3 +1745,12 @@ sources = afl-x509.c
 install = test
 libs = libsvn_subr apr
 testing = skip
+
+[afl-svndiff]
+description = AFL fuzzer for svndiff to txdelta parser
+type = exe
+path = subversion/tests/afl
+sources = afl-svndiff.c
+install = test
+libs = libsvn_delta libsvn_subr apr
+testing = skip

Modified: subversion/branches/better-pristines/build/ac-macros/java.m4
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/build/ac-macros/java.m4?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/build/ac-macros/java.m4 (original)
+++ subversion/branches/better-pristines/build/ac-macros/java.m4 Sun Sep 30 18:26:47 2018
@@ -166,7 +166,7 @@ AC_DEFUN(SVN_FIND_JDK,
     # The release for "-source" could actually be greater than that
     # of "-target", if we want to cross-compile for lesser JVMs.
     if test -z "$JAVAC_FLAGS"; then
-      JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.6"
+      JAVAC_FLAGS="-target $JAVA_OLDEST_WORKING_VER -source 1.8"
       if test "$enable_debugging" = "yes"; then
         JAVAC_FLAGS="-g -Xlint -Xlint:unchecked -Xlint:serial -Xlint:path $JAVAC_FLAGS"
         if test -z "$JAVAC_COMPAT_FLAGS"; then

Modified: subversion/branches/better-pristines/build/ac-macros/libsecret.m4
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/build/ac-macros/libsecret.m4?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/build/ac-macros/libsecret.m4 (original)
+++ subversion/branches/better-pristines/build/ac-macros/libsecret.m4 Sun Sep 30 18:26:47 2018
@@ -54,6 +54,7 @@ AC_DEFUN(SVN_LIB_SECRET,
                           [Is libsecret support enabled?])
                 SVN_GNOME_KEYRING_INCLUDES="`$PKG_CONFIG --cflags libsecret-1`"
                 SVN_GNOME_KEYRING_LIBS="`$PKG_CONFIG --libs libsecret-1`"
+                SVN_GNOME_KEYRING_PCLIBS="libsecret-1"
                 found_gnome_keyring="yes"
               else
                 if test "$with_gnome_keyring" = "yes"; then
@@ -90,4 +91,5 @@ AC_DEFUN(SVN_LIB_SECRET,
   fi
   AC_SUBST(SVN_GNOME_KEYRING_INCLUDES)
   AC_SUBST(SVN_GNOME_KEYRING_LIBS)
+  AC_SUBST(SVN_GNOME_KEYRING_PCLIBS)
 ])

Modified: subversion/branches/better-pristines/build/ac-macros/swig.m4
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/build/ac-macros/swig.m4?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/build/ac-macros/swig.m4 (original)
+++ subversion/branches/better-pristines/build/ac-macros/swig.m4 Sun Sep 30 18:26:47 2018
@@ -183,6 +183,11 @@ AC_DEFUN(SVN_FIND_SWIG,
   SWIG_RB_COMPILE="none"
   SWIG_RB_LINK="none"
   if test "$RUBY" != "none"; then
+    if test x"$SWIG_VERSION" = x"3""00""008"; then
+      # Use a local variable to escape the '#' sign.
+      ruby_swig_issue_602='https://subversion.apache.org/docs/release-notes/1.11#ruby-swig-issue-602'
+      AC_MSG_WARN([Ruby bindings are known not to support swig 3.0.8; see $ruby_swig_issue_602])
+    fi
     rbconfig="$RUBY -rrbconfig -e "
 
     for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \

Modified: subversion/branches/better-pristines/build/generator/extractor.py
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/build/generator/extractor.py?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/build/generator/extractor.py (original)
+++ subversion/branches/better-pristines/build/generator/extractor.py Sun Sep 30 18:26:47 2018
@@ -69,4 +69,6 @@ if __name__ == '__main__':
     if os.path.basename(fname) == 'svn_ctype.h':
       print('svn_ctype_table = svn_ctype_table_internal CONSTANT')
     elif os.path.basename(fname) == 'svn_wc_private.h':
+      # svn_wc__internal_walk_children() is now internal to libsvn_wc
+      # but entries-dump.c still calls it
       print('svn_wc__internal_walk_children')

Modified: subversion/branches/better-pristines/build/generator/gen_base.py
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/build/generator/gen_base.py?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/build/generator/gen_base.py (original)
+++ subversion/branches/better-pristines/build/generator/gen_base.py Sun Sep 30 18:26:47 2018
@@ -900,115 +900,67 @@ class TargetJava(TargetLinked):
   def __init__(self, name, options, gen_obj):
     TargetLinked.__init__(self, name, options, gen_obj)
     self.link_cmd = options.get('link-cmd')
-    self.packages = options.get('package-roots', '').split()
+    self.package = options.get('package')
     self.jar = options.get('jar')
     self.deps = [ ]
-
-class TargetJavaHeaders(TargetJava):
-  def __init__(self, name, options, gen_obj):
-    TargetJava.__init__(self, name, options, gen_obj)
     self.objext = '.class'
-    self.javah_objext = '.h'
     self.headers = options.get('headers')
     self.classes = options.get('classes')
-    self.package = options.get('package')
-    self.output_dir = self.headers
+    self.native = options.get('native', '')
+    self.output_dir = self.classes
+    self.headers_dir = self.headers
 
   def add_dependencies(self):
     sources = _collect_paths(self.sources, self.path)
+    native = _collect_paths(self.native, self.path)
+
+    class_pkg_list = self.package.split('.')
+    sourcepath = build_path_split(self.path)[:-len(class_pkg_list)]
+    sourcepath = build_path_join(*sourcepath)
 
     for src, reldir in sources:
       if src[-5:] != '.java':
         raise GenError('ERROR: unknown file extension on ' + src)
 
+      sfile = SourceFile(src, reldir)
+      sfile.sourcepath = sourcepath
+
       class_name = build_path_basename(src[:-5])
 
-      class_header = build_path_join(self.headers, class_name + '.h')
-      class_header_win = build_path_join(self.headers,
-                                         self.package.replace(".", "_")
-                                         + "_" + class_name + '.h')
-      class_pkg_list = self.package.split('.')
       class_pkg = build_path_join(*class_pkg_list)
       class_file = ObjectFile(build_path_join(self.classes, class_pkg,
                                               class_name + self.objext),
-                              self.when)
+                              self.compile_cmd, self.when)
       class_file.source_generated = 1
       class_file.class_name = class_name
-      hfile = HeaderFile(class_header, self.package + '.' + class_name,
-                         self.compile_cmd)
-      hfile.filename_win = class_header_win
-      hfile.source_generated = 1
-      self.gen_obj.graph.add(DT_OBJECT, hfile, class_file)
-      self.deps.append(hfile)
 
-      # target (a linked item) depends upon object
-      self.gen_obj.graph.add(DT_LINK, self.name, hfile)
+      self.gen_obj.graph.add(DT_OBJECT, class_file, sfile)
+      self.gen_obj.graph.add(DT_LINK, self.name, class_file)
+      self.deps.append(class_file)
+
+      if (src, reldir) in native:
+        class_header = build_path_join(self.headers, class_name + '.h')
+        class_header_win = build_path_join(self.headers,
+                                           self.package.replace(".", "_")
+                                           + "_" + class_name + '.h')
+        hfile = HeaderFile(class_header, self.package + '.' + class_name,
+                           self.compile_cmd)
+        hfile.filename_win = class_header_win
+        hfile.source_generated = 1
+        self.gen_obj.graph.add(DT_OBJECT, hfile, sfile)
+        self.deps.append(hfile)
 
+        # target (a linked item) depends upon object
+        self.gen_obj.graph.add(DT_LINK, self.name, hfile)
 
-    # collect all the paths where stuff might get built
-    ### we should collect this from the dependency nodes rather than
-    ### the sources. "what dir are you going to put yourself into?"
-    self.gen_obj.target_dirs.append(self.path)
-    self.gen_obj.target_dirs.append(self.classes)
-    self.gen_obj.target_dirs.append(self.headers)
-    for pattern in self.sources.split():
-      dirname = build_path_dirname(pattern)
-      if dirname:
-        self.gen_obj.target_dirs.append(build_path_join(self.path, dirname))
-
-    self.gen_obj.graph.add(DT_INSTALL, self.name, self)
-
-class TargetJavaClasses(TargetJava):
-  def __init__(self, name, options, gen_obj):
-    TargetJava.__init__(self, name, options, gen_obj)
-    self.objext = '.class'
-    self.lang = 'java'
-    self.classes = options.get('classes')
-    self.output_dir = self.classes
-
-  def add_dependencies(self):
-    sources = []
-    for p in self.path.split():
-      sources.extend(_collect_paths(self.sources, p))
-
-    for src, reldir in sources:
-      if src[-5:] == '.java':
-        objname = src[:-5] + self.objext
-
-        # As .class files are likely not generated into the same
-        # directory as the source files, the object path may need
-        # adjustment.  To this effect, take "target_ob.classes" into
-        # account.
-        dirs = build_path_split(objname)
-        sourcedirs = dirs[:-1]  # Last element is the .class file name.
-        while sourcedirs:
-          if sourcedirs.pop() in self.packages:
-            sourcepath = build_path_join(*sourcedirs)
-            objname = build_path_join(self.classes, *dirs[len(sourcedirs):])
-            break
-        else:
-          raise GenError('Unable to find Java package root in path "%s"' % objname)
-      else:
-        raise GenError('ERROR: unknown file extension on "' + src + '"')
-
-      ofile = ObjectFile(objname, self.compile_cmd, self.when)
-      sfile = SourceFile(src, reldir)
-      sfile.sourcepath = sourcepath
-
-      # object depends upon source
-      self.gen_obj.graph.add(DT_OBJECT, ofile, sfile)
-
-      # target (a linked item) depends upon object
-      self.gen_obj.graph.add(DT_LINK, self.name, ofile)
-
-      # Add the class file to the dependency tree for this target
-      self.deps.append(ofile)
 
     # collect all the paths where stuff might get built
     ### we should collect this from the dependency nodes rather than
     ### the sources. "what dir are you going to put yourself into?"
-    self.gen_obj.target_dirs.extend(self.path.split())
+    self.gen_obj.target_dirs.append(self.path)
     self.gen_obj.target_dirs.append(self.classes)
+    if self.headers:
+      self.gen_obj.target_dirs.append(self.headers)
     for pattern in self.sources.split():
       dirname = build_path_dirname(pattern)
       if dirname:
@@ -1057,8 +1009,7 @@ _build_types = {
   'apache-mod': TargetApacheMod,
   'shared-only-lib': TargetSharedOnlyLib,
   'shared-only-cxx-lib': TargetSharedOnlyCxxLib,
-  'javah' : TargetJavaHeaders,
-  'java' : TargetJavaClasses,
+  'java' : TargetJava,
   'i18n' : TargetI18N,
   'sql-header' : TargetSQLHeader,
   }

Modified: subversion/branches/better-pristines/build/generator/gen_make.py
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/build/generator/gen_make.py?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/build/generator/gen_make.py (original)
+++ subversion/branches/better-pristines/build/generator/gen_make.py Sun Sep 30 18:26:47 2018
@@ -309,6 +309,8 @@ class Generator(gen_base.GeneratorBase):
         ezt_target.link_cmd = target_ob.link_cmd
       if hasattr(target_ob, 'output_dir'):
         ezt_target.output_dir = target_ob.output_dir
+      if hasattr(target_ob, 'headers_dir'):
+        ezt_target.headers_dir = target_ob.headers_dir
 
       # Add additional install dependencies if necessary
       if target_ob.add_install_deps:
@@ -507,7 +509,7 @@ class Generator(gen_base.GeneratorBase):
     standalone.write('top_srcdir = .\n')
     standalone.write('top_builddir = .\n')
     standalone.write('SWIG = swig\n')
-    standalone.write('PYTHON = python\n')
+    standalone.write('PYTHON = ' + sys.executable + '\n')
     standalone.write('\n')
     standalone.write(open("build-outputs.mk","r").read())
     standalone.close()

Modified: subversion/branches/better-pristines/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/build/generator/gen_win.py?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/build/generator/gen_win.py (original)
+++ subversion/branches/better-pristines/build/generator/gen_win.py Sun Sep 30 18:26:47 2018
@@ -217,7 +217,6 @@ class WinGeneratorBase(gen_win_dependenc
     if 'java_sdk' not in self._libraries:
       install_targets = [x for x in install_targets
                                      if not (isinstance(x, gen_base.TargetJava)
-                                             or isinstance(x, gen_base.TargetJavaHeaders)
                                              or x.name == '__JAVAHL__'
                                              or x.name == '__JAVAHL_TESTS__'
                                              or x.name == 'libsvnjavahl')]
@@ -332,11 +331,9 @@ class WinGeneratorBase(gen_win_dependenc
     sources = [ ]
 
     javac_exe = "javac"
-    javah_exe = "javah"
     jar_exe = "jar"
     if self.jdk_path:
       javac_exe = os.path.join(self.jdk_path, "bin", javac_exe)
-      javah_exe = os.path.join(self.jdk_path, "bin", javah_exe)
       jar_exe = os.path.join(self.jdk_path, "bin", jar_exe)
 
     if not isinstance(target, gen_base.TargetProject):
@@ -345,25 +342,13 @@ class WinGeneratorBase(gen_win_dependenc
         ctarget = None
         cdesc = None
         cignore = None
-        if isinstance(target, gen_base.TargetJavaHeaders):
-          classes = self.path(target.classes)
-          if self.junit_path is not None:
-            classes = "%s;%s" % (classes, self.junit_path)
-
-          headers = self.path(target.headers)
-          classname = target.package + "." + source.class_name
-
-          cbuild = "%s -verbose -force -classpath %s -d %s %s" \
-                   % (self.quote(javah_exe), self.quote(classes),
-                      self.quote(headers), classname)
-
-          ctarget = self.path(object.filename_win)
-          cdesc = "Generating %s" % (object.filename_win)
-
-        elif isinstance(target, gen_base.TargetJavaClasses):
+        if isinstance(target, gen_base.TargetJava):
           classes = targetdir = self.path(target.classes)
           if self.junit_path is not None:
             classes = "%s;%s" % (classes, self.junit_path)
+          headers = ''
+          if target.headers is not None:
+            headers = '-h %s' % self.quote(self.path(target.headers))
 
           sourcepath = self.path(source.sourcepath)
 
@@ -373,17 +358,21 @@ class WinGeneratorBase(gen_win_dependenc
             per_project_flags += "-Xlint:-deprecation -Xlint:-dep-ann" \
                                  " -Xlint:-rawtypes"
 
-          cbuild = ("%s -g -Xlint -Xlint:-options " +
-                    per_project_flags +
-                    " -target 1.5 -source 1.5 -classpath "
+          cbuild = ("%s -g -Xlint -Xlint:-options %s %s "
+                    " -target 1.8 -source 1.8 -classpath "
                     " %s -d %s "
                     " -sourcepath %s $(InputPath)") \
-                   % tuple(map(self.quote, (javac_exe, classes,
-                                            targetdir, sourcepath)))
+                   % (self.quote(javac_exe), per_project_flags, headers,
+                      self.quote(classes), self.quote(targetdir),
+                      self.quote(sourcepath))
 
 
-          ctarget = self.path(object.filename)
-          cdesc = "Compiling %s" % (source)
+          if isinstance(object, gen_base.HeaderFile):
+            ctarget = self.path(object.filename_win)
+            cdesc = "Generating %s" % (object.filename_win)
+          else:
+            ctarget = self.path(object.filename)
+            cdesc = "Compiling %s" % (source)
 
         rsrc = self.path(str(source))
         if quote_path and '-' in rsrc:
@@ -403,7 +392,7 @@ class WinGeneratorBase(gen_win_dependenc
                                    custom_desc=cdesc, ignored = cignore,
                                    extension=os.path.splitext(rsrc)[1]))
 
-    if isinstance(target, gen_base.TargetJavaClasses) and target.jar:
+    if isinstance(target, gen_base.TargetJava) and target.jar:
       classdir = self.path(target.classes)
       jarfile = msvc_path_join(classdir, target.jar)
       cbuild = "%s cf %s -C %s %s" \
@@ -507,9 +496,7 @@ class WinGeneratorBase(gen_win_dependenc
     return name[0] + '.pdb'
 
   def get_output_dir(self, target):
-    if isinstance(target, gen_base.TargetJavaHeaders):
-      return msvc_path("../" + target.headers)
-    elif isinstance(target, gen_base.TargetJavaClasses):
+    if isinstance(target, gen_base.TargetJava):
       return msvc_path("../" + target.classes)
     else:
       return msvc_path(target.path)

Modified: subversion/branches/better-pristines/build/generator/gen_win_dependencies.py
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/build/generator/gen_win_dependencies.py?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/build/generator/gen_win_dependencies.py (original)
+++ subversion/branches/better-pristines/build/generator/gen_win_dependencies.py Sun Sep 30 18:26:47 2018
@@ -1067,11 +1067,15 @@ class GenDependenciesBase(gen_base.Gener
       return
 
     try:
-      outfp = subprocess.Popen([os.path.join(jdk_path, 'bin', 'javah.exe'),
-                               '-version'], stdout=subprocess.PIPE).stdout
+      # Apparently a 1.8 javac writes its version output to stderr, while
+      # a 1.10 javac writes it to stdout. To catch them all, we redirect
+      # stderr to stdout.
+      outfp = subprocess.Popen([os.path.join(jdk_path, 'bin', 'javac.exe'),
+                               '-version'], stdout=subprocess.PIPE,
+                               stderr=subprocess.STDOUT).stdout
       line = outfp.read()
       if line:
-        vermatch = re.search(r'"(([0-9]+(\.[0-9]+)+)(_[._0-9]+)?)"', line, re.M)
+        vermatch = re.search(r'(([0-9]+(\.[0-9]+)+)(_[._0-9]+)?)', line, re.M)
       else:
         vermatch = None
 

Modified: subversion/branches/better-pristines/build/generator/templates/build-outputs.mk.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/build/generator/templates/build-outputs.mk.ezt?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/build/generator/templates/build-outputs.mk.ezt (original)
+++ subversion/branches/better-pristines/build/generator/templates/build-outputs.mk.ezt Sun Sep 30 18:26:47 2018
@@ -102,13 +102,9 @@ install-[target.install]: [target.instal
 [target.varname]_OBJECTS = [for target.objects][if-index target.objects first][else] [end][target.objects][end]
 [target.varname]_DEPS = $([target.varname]_HEADERS) $([target.varname]_OBJECTS)[for target.add_deps] [target.add_deps][end][for target.deps][if-index target.deps first][else] [end][target.deps][end]
 [target.name]: $([target.varname]_DEPS)
-[if-any target.headers][target.varname]_CLASS_FILENAMES =[for target.header_class_filenames] [target.header_class_filenames][end]
-[target.varname]_CLASSES =[for target.header_classes] [target.header_classes][end]
-$([target.varname]_HEADERS): $([target.varname]_CLASS_FILENAMES)
-	[target.link_cmd] -d [target.output_dir] -classpath [target.classes]:$([target.varname]_CLASSPATH) $([target.varname]_CLASSES)
-[end][if-any target.sources][target.varname]_SRC =[for target.sources] [target.sources][end]
-$([target.varname]_OBJECTS): $([target.varname]_SRC)
-	[target.link_cmd] -d [target.output_dir] -classpath [target.classes]:$([target.varname]_CLASSPATH) $([target.varname]_SRC)
+[if-any target.sources][target.varname]_SRC =[for target.sources] [target.sources][end]
+$([target.varname]_HEADERS) $([target.varname]_OBJECTS): $([target.varname]_SRC)
+	[target.link_cmd][if-any target.headers] -h [target.headers_dir][end] -d [target.output_dir] -classpath [target.classes]:$([target.varname]_CLASSPATH) $([target.varname]_SRC)
 [if-any target.jar]
 	$(JAR) cf [target.jar_path] -C [target.classes][for target.packages] [target.packages][end][end][end]
 [else][is target.type "i18n"][target.varname]_DEPS =[for target.add_deps] [target.add_deps][end][for target.objects] [target.objects][end][for target.deps] [target.deps][end]

Modified: subversion/branches/better-pristines/build/run_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/build/run_tests.py?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/build/run_tests.py (original)
+++ subversion/branches/better-pristines/build/run_tests.py Sun Sep 30 18:26:47 2018
@@ -327,7 +327,7 @@ class TestHarness:
     def _command_line(self, harness):
       if self.is_python:
         cmdline = list(harness.py_test_cmdline)
-        cmdline.insert(0, 'python')
+        cmdline.insert(0, sys.executable)
         cmdline.insert(1, self.progabs)
         # Run the test apps in "child process" mode,
         # i.e. w/o cleaning up global directories etc.
@@ -375,7 +375,7 @@ class TestHarness:
 
     def _count_py_tests(self, progabs, progdir, progbase):
       'Run a c test, escaping parameters as required.'
-      cmdline = [ 'python', progabs, '--list' ]
+      cmdline = [ sys.executable, progabs, '--list' ]
       prog = subprocess.Popen(cmdline, stdout=subprocess.PIPE, cwd=progdir)
       lines = prog.stdout.readlines()
 
@@ -448,6 +448,7 @@ class TestHarness:
     job_queue = queue.Queue()
     total_count = 0
     scrambled = list(jobs)
+    # TODO: What's this line doing, and what's the magic number?
     scrambled.sort(key=lambda x: ("1" if x.test_count() < 30 else "0") + str(x.number))
     for job in scrambled:
       total_count += job.test_count()

Modified: subversion/branches/better-pristines/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/configure.ac?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/configure.ac (original)
+++ subversion/branches/better-pristines/configure.ac Sun Sep 30 18:26:47 2018
@@ -593,6 +593,7 @@ if test "$with_old_gnome_keyring" != "no
                         [Is GNOME Keyring support enabled?])
               CPPFLAGS="$old_CPPFLAGS"
               SVN_GNOME_KEYRING_LIBS="`$PKG_CONFIG --libs glib-2.0 gnome-keyring-1`"
+              SVN_GNOME_KEYRING_PCLIBS="glib-2.0 gnome-keyring-1"
             else
               AC_MSG_RESULT([no])
               if test "$with_old_gnome_keyring" = "yes"; then
@@ -1305,7 +1306,7 @@ fi
 AC_PATH_PROGS(PYTHON, "$PYTHON", none)
 
 # The minimum version for the JVM runtime for our Java bytecode.
-JAVA_OLDEST_WORKING_VER='1.6'
+JAVA_OLDEST_WORKING_VER='1.8'
 # SVN_CHECK_JDK sets $JAVA_CLASSPATH
 SVN_CHECK_JDK($JAVA_OLDEST_WORKING_VER)
 

Modified: subversion/branches/better-pristines/contrib/client-side/svn_load_dirs/svn_load_dirs.pl.in
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/contrib/client-side/svn_load_dirs/svn_load_dirs.pl.in?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/contrib/client-side/svn_load_dirs/svn_load_dirs.pl.in (original)
+++ subversion/branches/better-pristines/contrib/client-side/svn_load_dirs/svn_load_dirs.pl.in Sun Sep 30 18:26:47 2018
@@ -1205,10 +1205,11 @@ while (defined (my $load_dir = &get_next
 
                 read_from_process($svn,
                                   'propset',
-                                  $property_name,
                                   '--file',
                                   $tmpfile,
-                                  $add_file);
+                                  '--',
+                                  $property_name,
+                                  $add_file . "@");
               }
           }
       }

Modified: subversion/branches/better-pristines/doc/user/svn-best-practices.html
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/doc/user/svn-best-practices.html?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/doc/user/svn-best-practices.html (original)
+++ subversion/branches/better-pristines/doc/user/svn-best-practices.html Sun Sep 30 18:26:47 2018
@@ -240,7 +240,7 @@ while somebody else is in the process of
 <li>Users commit their day-to-day work on <tt>/trunk</tt>.</li>
 
 <li>Rule #1: <tt>/trunk</tt> must compile and pass regression tests at
-all times.  Committers who violate this rule are publically
+all times.  Committers who violate this rule are publicly
 humiliated.</li>
 
 <li>Rule #2: a single commit (changeset) must not be so large

Modified: subversion/branches/better-pristines/subversion/bindings/javahl/README
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/bindings/javahl/README?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/bindings/javahl/README (original)
+++ subversion/branches/better-pristines/subversion/bindings/javahl/README Sun Sep 30 18:26:47 2018
@@ -5,7 +5,7 @@ JavaHL provides a (mostly native, using
 a high level Java API for Subversion, which was originally targeted for
 implementors of GUI clients and IDE plug-ins for Subversion.  JavaHL
 currently provides a minimal-but-complete set of APIs which expose the
-core Subversion C API to Java.  It requires a JRE 1.6+ (runtime).
+core Subversion C API to Java.  It requires a JRE 1.8+ (runtime).
 
 It is currently quite mature, and can be considered for production use.
 
@@ -14,7 +14,7 @@ Build system
 ------------
 
 JavaHL should compile and run under Linux, Win32, and Mac OS X with
-JDK 1.6+ and a C++ compiler with a complete implementation of
+JDK 1.8+ and a C++ compiler with a complete implementation of
 C++98 (for example, GCC 3.2 and older cannot compile JavaHL 1.9+).
 
 Its build will produce both a native library (libsvnjavahl-1.so on Unix

Modified: subversion/branches/better-pristines/subversion/bindings/javahl/native/JNIUtil.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/bindings/javahl/native/JNIUtil.cpp (original)
+++ subversion/branches/better-pristines/subversion/bindings/javahl/native/JNIUtil.cpp Sun Sep 30 18:26:47 2018
@@ -578,16 +578,17 @@ jthrowable JNIUtil::wrappedCreateClientE
   if (JNIUtil::isJavaExceptionThrown())
     return NULL;
 
-  const char *source = NULL;
+  std::string source;
 #ifdef SVN_DEBUG
 #ifndef SVN_ERR__TRACING
   if (err->file)
     {
-      std::ostringstream buf;
-      buf << err->file;
+      source = err->file;
       if (err->line > 0)
-        buf << ':' << err->line;
-      source = buf.str().c_str();
+        {
+          source += ':';
+          source += err->line;
+        }
     }
 #endif
 #endif
@@ -615,7 +616,7 @@ jthrowable JNIUtil::wrappedCreateClientE
       JNICriticalSection cs(*g_logMutex);
       g_logStream << "Subversion JavaHL exception thrown, message:<";
       g_logStream << msg << ">";
-      if (source)
+      if (!source.empty())
         g_logStream << " source:<" << source << ">";
       if (err->apr_err != -1)
         g_logStream << " apr-err:<" << err->apr_err << ">";
@@ -624,7 +625,7 @@ jthrowable JNIUtil::wrappedCreateClientE
   if (isJavaExceptionThrown())
     POP_AND_RETURN_NULL;
 
-  jstring jsource = makeJString(source);
+  jstring jsource = (source.empty() ? NULL : makeJString(source.c_str()));
   if (isJavaExceptionThrown())
     POP_AND_RETURN_NULL;
 

Modified: subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java (original)
+++ subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitItemStateFlags.java Sun Sep 30 18:26:47 2018
@@ -23,6 +23,8 @@
 
 package org.apache.subversion.javahl;
 
+import java.lang.annotation.*;
+
 /**
  * The constants in this interface describe the changes to an item to
  * be committed.
@@ -32,36 +34,43 @@ public interface CommitItemStateFlags
     /**
      * the item has been added
      */
+    @Native
     public static final int Add=1;
 
     /**
      * the item has been deleted
      */
+    @Native
     public static final int Delete=2;
 
     /**
      * the item has text modifications
      */
+    @Native
     public static final int TextMods=4;
 
     /**
      * the item has property modifications
      */
+    @Native
     public static final int PropMods=8;
 
     /**
      * the item has been copied
      */
+    @Native
     public static final int IsCopy=16;
 
     /**
      * the item has a lock token
      */
+    @Native
     public static final int LockToken = 32;
 
     /**
      * the item was moved to this location
      * @since 1.8
      */
+    @Native
     public static int MovedHere = 64;
 }

Modified: subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java (original)
+++ subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java Sun Sep 30 18:26:47 2018
@@ -142,7 +142,7 @@ public class NativeResources
     private static final void init()
     {
         final int SVN_VER_MAJOR = 1;
-        final int SVN_VER_MINOR = 11;
+        final int SVN_VER_MINOR = 12;
         initNativeLibrary();
         version = new Version();
         if (!version.isAtLeast(SVN_VER_MAJOR, SVN_VER_MINOR, 0))

Modified: subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java (original)
+++ subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java Sun Sep 30 18:26:47 2018
@@ -23,6 +23,8 @@
 
 package org.apache.subversion.javahl.callback;
 
+import java.lang.annotation.*;
+
 /**
  * <p>The interface for requesting authentication credentials from the
  * user.  Should the javahl bindings need the matching information,
@@ -40,16 +42,19 @@ public interface UserPasswordCallback
     /**
      * Reject the connection to the server.
      */
+    @Native
     public static final int Reject = 0;
 
     /**
      * Accept the connection to the server <i>once</i>.
      */
+    @Native
     public static final int AcceptTemporary = 1;
 
     /**
      * Accept the connection to the server <i>forever</i>.
      */
+    @Native
     public static final int AcceptPermanently = 2;
 
     /**

Modified: subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java (original)
+++ subversion/branches/better-pristines/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java Sun Sep 30 18:26:47 2018
@@ -23,6 +23,7 @@
 
 package org.apache.subversion.javahl.types;
 
+import java.lang.annotation.*;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Locale;
@@ -179,6 +180,7 @@ public class Revision implements java.io
     /**
      * Marker revision number for no real revision
      */
+    @Native
     public static final int SVN_INVALID_REVNUM = -1;
 
     /**

Modified: subversion/branches/better-pristines/subversion/bindings/swig/ruby/svn/util.rb
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/bindings/swig/ruby/svn/util.rb?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/bindings/swig/ruby/svn/util.rb (original)
+++ subversion/branches/better-pristines/subversion/bindings/swig/ruby/svn/util.rb Sun Sep 30 18:26:47 2018
@@ -36,8 +36,13 @@ module Svn
   module Util #:nodoc:
     module_function
     def to_ruby_class_name(name)
+      # Convert to CamelCase with 'X' for a leading/double/trailing underscore.
       name.to_s.split("_").collect do |x|
-        "#{x[0,1].upcase}#{x[1..-1].downcase}"
+        if x.empty?
+          "X"
+        else
+          x.capitalize
+        end
       end.join("")
     end
 
@@ -70,6 +75,8 @@ module Svn
           target_name = $POSTMATCH
         when /^SWIG_SVN_/
           target_name = $POSTMATCH
+        when /^Svn_(?:#{target_mod.name.split("::").last.downcase}_)?_(.+)_t$/
+          # ignore private types
         when /^Svn_(?:#{target_mod.name.split("::").last.downcase}_)?(.+)_t$/
           target_name = to_ruby_class_name($1)
         when /^Svn_(?:#{target_mod.name.split("::").last.downcase}_)?/

Modified: subversion/branches/better-pristines/subversion/bindings/swig/ruby/test/test_util.rb
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/bindings/swig/ruby/test/test_util.rb?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/bindings/swig/ruby/test/test_util.rb (original)
+++ subversion/branches/better-pristines/subversion/bindings/swig/ruby/test/test_util.rb Sun Sep 30 18:26:47 2018
@@ -33,5 +33,6 @@ class SvnUtilTest < Test::Unit::TestCase
     assert_equal("Abc", Svn::Util.to_ruby_class_name("abc"))
     assert_equal("AbcDef", Svn::Util.to_ruby_class_name("abc_def"))
     assert_equal("AbcDef", Svn::Util.to_ruby_class_name("ABC_DEF"))
+    assert_equal("XFoo", Svn::Util.to_ruby_class_name("_foo"))
   end
 end

Modified: subversion/branches/better-pristines/subversion/include/private/svn_client_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/include/private/svn_client_private.h?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/include/private/svn_client_private.h (original)
+++ subversion/branches/better-pristines/subversion/include/private/svn_client_private.h Sun Sep 30 18:26:47 2018
@@ -341,6 +341,77 @@ svn_client__mergeinfo_log(svn_boolean_t
                           apr_pool_t *result_pool,
                           apr_pool_t *scratch_pool);
 
+/** Return a diff processor that will print a Subversion-style
+ * (not git-style) diff.
+ *
+ * @a anchor is optional (may be null), and is the 'anchor' path to prefix
+ * to the diff-processor paths before displaying.
+ *
+ * @a orig_path_1 and @a orig_path_2 are the two main root paths to be
+ * diffed; each may be a URL, a local WC path or a local unversioned path.
+ *
+ * Other arguments are as for svn_client_diff7() etc.
+ */
+svn_error_t *
+svn_client__get_diff_writer_svn(
+                svn_diff_tree_processor_t **diff_processor,
+                const char *anchor,
+                const char *orig_path_1,
+                const char *orig_path_2,
+                const apr_array_header_t *options,
+                const char *relative_to_dir,
+                svn_boolean_t no_diff_added,
+                svn_boolean_t no_diff_deleted,
+                svn_boolean_t show_copies_as_adds,
+                svn_boolean_t ignore_content_type,
+                svn_boolean_t ignore_properties,
+                svn_boolean_t properties_only,
+                svn_boolean_t pretty_print_mergeinfo,
+                const char *header_encoding,
+                svn_stream_t *outstream,
+                svn_stream_t *errstream,
+                svn_client_ctx_t *ctx,
+                apr_pool_t *pool);
+
+/** Output the subtree of @a shelf_version rooted at @a shelf_relpath
+ * as a diff to @a diff_processor.
+ *
+ * ### depth and ignore_ancestry are currently ignored.
+ *
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client__shelf_diff(svn_client__shelf_version_t *shelf_version,
+                       const char *shelf_relpath,
+                       svn_depth_t depth,
+                       svn_boolean_t ignore_ancestry,
+                       const svn_diff_tree_processor_t *diff_processor,
+                       apr_pool_t *scratch_pool);
+
+/*** Editor for diff summary ***/
+
+/* Set *DIFF_PROCESSOR to a diff processor that will report a diff summary
+   to SUMMARIZE_FUNC.
+
+   P_ROOT_RELPATH will return a pointer to a string that must be set,
+   before the processor is called, to a prefix that will be found on
+   every DIFF_PROCESSOR relpath, that will be removed before passing
+   the path to SUMMARIZE_FUNC.
+
+   ORIGINAL_TARGET is not used.
+
+   SUMMARIZE_FUNC is called with SUMMARIZE_BATON as parameter by the
+   created callbacks for each changed item.
+*/
+svn_error_t *
+svn_client__get_diff_summarize_callbacks(
+                        svn_diff_tree_processor_t **diff_processor,
+                        svn_client_diff_summarize_func_t summarize_func,
+                        void *summarize_baton,
+                        apr_pool_t *result_pool,
+                        apr_pool_t *scratch_pool);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/branches/better-pristines/subversion/include/private/svn_diff_tree.h
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/include/private/svn_diff_tree.h?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/include/private/svn_diff_tree.h (original)
+++ subversion/branches/better-pristines/subversion/include/private/svn_diff_tree.h Sun Sep 30 18:26:47 2018
@@ -321,7 +321,6 @@ svn_diff__tree_processor_create(void *ba
  */ /* Used by libsvn clients repository diff */
 const svn_diff_tree_processor_t *
 svn_diff__tree_processor_reverse_create(const svn_diff_tree_processor_t * processor,
-                                        const char *prefix_relpath,
                                         apr_pool_t *result_pool);
 
 /**

Modified: subversion/branches/better-pristines/subversion/include/private/svn_repos_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/include/private/svn_repos_private.h?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/include/private/svn_repos_private.h (original)
+++ subversion/branches/better-pristines/subversion/include/private/svn_repos_private.h Sun Sep 30 18:26:47 2018
@@ -31,6 +31,7 @@
 
 #include "svn_types.h"
 #include "svn_repos.h"
+#include "svn_delta.h"
 #include "svn_editor.h"
 #include "svn_config.h"
 
@@ -349,6 +350,27 @@ svn_repos__dump_node_record(svn_stream_t
                             svn_boolean_t content_length_always,
                             apr_pool_t *scratch_pool);
 
+/**
+ * Get a dump editor @a editor along with a @a edit_baton allocated in
+ * @a pool.  The editor will write output to @a stream.
+ *
+ * @a update_anchor_relpath is the repository relative path of the
+ * anchor of the update-style drive which will happen on @a *editor;
+ * if a replay-style drive will instead be used, it should be passed
+ * as @c NULL.
+ *
+ * In contrast to the dump editor used inside svn_repos_dump_fs4(), this
+ * one supports only deltas mode.
+ *
+ * ### TODO: Unify with the dump editor inside svn_repos_dump_fs4().
+ */
+svn_error_t *
+svn_repos__get_dump_editor(const svn_delta_editor_t **editor,
+                           void **edit_baton,
+                           svn_stream_t *stream,
+                           const char *update_anchor_relpath,
+                           apr_pool_t *pool);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/branches/better-pristines/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/better-pristines/subversion/include/private/svn_wc_private.h?rev=1842404&r1=1842403&r2=1842404&view=diff
==============================================================================
--- subversion/branches/better-pristines/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/better-pristines/subversion/include/private/svn_wc_private.h Sun Sep 30 18:26:47 2018
@@ -353,6 +353,8 @@ svn_wc__get_wcroot(const char **wcroot_a
  * the directory exists.
  *
  * @a local_abspath is any path in the WC, and is used to find the WC root.
+ *
+ * @warning EXPERIMENTAL.
  */
 SVN_EXPERIMENTAL
 svn_error_t *
@@ -615,6 +617,24 @@ svn_wc__node_get_base(svn_node_kind_t *k
                       apr_pool_t *scratch_pool);
 
 
+/* Return an array of const char * elements, which represent local absolute
+ * paths for nodes, within the working copy indicated by WRI_ABSPATH, which
+ * have a basename matching BASENAME and have node kind KIND.
+ * If no such nodes exist, return an empty array.
+ *
+ * This function returns only paths to nodes which are present in the highest
+ * layer of the WC. In other words, paths to deleted and/or excluded nodes are
+ * never returned.
+ */
+svn_error_t *
+svn_wc__find_working_nodes_with_basename(apr_array_header_t **abspaths,
+                                         const char *wri_abspath,
+                                         const char *basename,
+                                         svn_node_kind_t kind,
+                                         svn_wc_context_t *wc_ctx,
+                                         apr_pool_t *result_pool,
+                                         apr_pool_t *scratch_pool);
+
 /* Get the working revision of @a local_abspath using @a wc_ctx. If @a
  * local_abspath is not in the working copy, return @c
  * SVN_ERR_WC_PATH_NOT_FOUND.
@@ -2044,31 +2064,19 @@ svn_wc__acquire_write_lock_for_resolve(c
 
 /* The implemementation of svn_wc_diff6(), but reporting to a diff processor
  *
- * New mode: when ROOT_RELPATH is not NULL:
+ * New mode, when ANCHOR_AT_GIVEN_PATHS is true:
  *
- *   If LOCAL_ABSPATH is the WC root, set *ROOT_RELPATH to "" and send
- *   diff processor relpaths relative to LOCAL_ABSPATH; otherwise set
- *   *ROOT_RELPATH to the last component of LOCAL_ABSPATH and send diff
- *   processor relpaths relative to the parent of LOCAL_ABSPATH.
- *   (*ROOT_RELPATH will be either "" or a single path component.)
+ *   Anchor the DIFF_PROCESSOR at LOCAL_ABSPATH.
  *
- * Backward compatibility mode for svn_wc_diff6(): when ROOT_RELPATH is NULL:
+ * Backward compatibility mode for svn_wc_diff6(),
+ * when ANCHOR_AT_GIVEN_PATHS is false:
  *
  *   Send diff processor relpaths relative to LOCAL_ABSPATH if it is a
  *   directory; otherwise, relative to the parent of LOCAL_ABSPATH.
  *   This matches the "anchor and target" semantics of svn_wc_diff6().
- *
- * If ROOT_IS_DIR is not NULL:
- *
- *   Set *ROOT_IS_DIR to TRUE if the working version of LOCAL_ABSPATH is
- *   a directory, else to FALSE.
- *
- * Assignments to *ROOT_RELPATH and *ROOT_IS_DIR are made before the first
- * call to DIFF_PROCESSOR.
  */
 svn_error_t *
-svn_wc__diff7(const char **root_relpath,
-              svn_boolean_t *root_is_dir,
+svn_wc__diff7(svn_boolean_t anchor_at_given_paths,
               svn_wc_context_t *wc_ctx,
               const char *local_abspath,
               svn_depth_t depth,