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 2013/07/26 03:03:28 UTC

svn commit: r1507168 [1/5] - in /subversion/branches/javahl-1.8-extensions: ./ build/ac-macros/ build/generator/ subversion/bindings/swig/perl/libsvn_swig_perl/ subversion/bindings/swig/perl/native/ subversion/include/ subversion/libsvn_client/ subvers...

Author: brane
Date: Fri Jul 26 01:03:26 2013
New Revision: 1507168

URL: http://svn.apache.org/r1507168
Log:
Sync the javahl-1.8-extensions branch with the 1.8.x branch up to r1507165.

Modified:
    subversion/branches/javahl-1.8-extensions/   (props changed)
    subversion/branches/javahl-1.8-extensions/CHANGES   (contents, props changed)
    subversion/branches/javahl-1.8-extensions/Makefile.in
    subversion/branches/javahl-1.8-extensions/build/ac-macros/berkeley-db.m4
    subversion/branches/javahl-1.8-extensions/build/ac-macros/sqlite.m4
    subversion/branches/javahl-1.8-extensions/build/generator/gen_win.py
    subversion/branches/javahl-1.8-extensions/configure.ac   (contents, props changed)
    subversion/branches/javahl-1.8-extensions/get-deps.sh
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
    subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/Client.pm
    subversion/branches/javahl-1.8-extensions/subversion/include/svn_version.h
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/commit.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/diff_local.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/merge.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/switch.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_fs_fs/tree.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra/util.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/commit.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/options.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/ra_serf.h
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/serf.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/util.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/xml.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_svn/client.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_subr/config_file.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_subr/gpg_agent.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_subr/subst.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_subr/utf.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_wc/adm_ops.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_wc/crop.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_wc/externals.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_wc/update_editor.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_wc/wc-queries.sql
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_wc/wc_db.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_wc/wc_db.h
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_wc/wc_db_wcroot.c
    subversion/branches/javahl-1.8-extensions/subversion/libsvn_wc/workqueue.c
    subversion/branches/javahl-1.8-extensions/subversion/mod_dav_svn/repos.c
    subversion/branches/javahl-1.8-extensions/subversion/po/de.po
    subversion/branches/javahl-1.8-extensions/subversion/po/sv.po
    subversion/branches/javahl-1.8-extensions/subversion/svn/conflict-callbacks.c
    subversion/branches/javahl-1.8-extensions/subversion/svn/file-merge.c
    subversion/branches/javahl-1.8-extensions/subversion/svn/svn.c   (contents, props changed)
    subversion/branches/javahl-1.8-extensions/subversion/svn/util.c
    subversion/branches/javahl-1.8-extensions/subversion/tests/cmdline/lock_tests.py
    subversion/branches/javahl-1.8-extensions/subversion/tests/cmdline/wc_tests.py
    subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_fs/fs-test.c
    subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_subr/config-test.c
    subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/javahl-1.8-extensions/subversion/tests/svn_test_fs.c
    subversion/branches/javahl-1.8-extensions/subversion/tests/svn_test_fs.h

Propchange: subversion/branches/javahl-1.8-extensions/
------------------------------------------------------------------------------
  Merged /subversion/branches/tristate-chunked-request:r1502401,1502673
  Merged /subversion/branches/1.8.x:r1500367-1507165
  Merged /subversion/branches/1.8.x-r1495063:r1495804-1501074
  Merged /subversion/branches/1.8.x-tristate-chunked-request:r1502435-1503894
  Merged /subversion/trunk:r1487094,1488693,1489117,1490721,1491739,1491755-1491756,1491762,1491816,1491868,1492152,1494089,1494657,1495063,1495204,1495209,1495214,1495256,1495329,1495597,1495805,1495978,1496007,1496111,1496470,1497975,1497980,1498012,1498449,1498455,1498483-1498484,1498486,1498851,1498997,1499034,1499064,1499100,1499403,1499423,1499438,1499447,1499460,1499483,1499492,1499496,1499498,1499595,1500074,1500175,1500680,1500695,1500762,1500799,1500801-1500802,1500904,1500928,1502097,1502577,1502909,1502952,1503009-1503010,1503528,1503884
  Merged /subversion/branches/1.8.x-r1497310-partial:r1497500-1501063
  Merged /subversion/branches/1.8.x-busted-proxy:r1499222-1502434

Modified: subversion/branches/javahl-1.8-extensions/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/CHANGES?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/CHANGES (original)
+++ subversion/branches/javahl-1.8-extensions/CHANGES Fri Jul 26 01:03:26 2013
@@ -1,3 +1,91 @@
+Version 1.8.1
+(23 July 2013, from /branches/1.8.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.8.1
+
+ User-visible changes:
+  - Client- and server-side bugfixes:
+    * translation updates for German and Simplified Chinese
+    * improve sqlite error message output (r1497804)
+    * support platforms lacking mmap (r1498136)
+    * allow configuration files to start with UTF-8 BOM (r1499100 et al)
+    * don't fail on UTF-8 data when encoding conversion not available (r1503009)
+    * improve error messages when encoding conversion fails (r1503010)
+
+  - Client-side bugfixes:
+    * merge: rename 'automatic merge' to 'complete merge' (r1491432)
+    * mergeinfo: reduce network usage for '--show-revs' (r1492005)
+    * ra_serf: improve http status handling (r1495104)
+    * merge: avoid unneeded ra session (r1493475)
+    * merge: reduce network usage (r1478987)
+    * merge: remove duplicated ancestry check (r1493424, r1495597)
+    * ra_serf: fix 'Accept-Encoding' header for IIS interoperability (r1497551)
+    * svn status: improve documentation for lock columns (r1497318, r1497319)
+    * ra_serf: fix support for 'get-file-revs-reversed' capability (r1498456)
+    * log: reduce network usage on repository roots (r1496957)
+    * diff: avoid temporary files when calling external diff (issue #4382)
+    * upgrade: fix notification of 1.7.x working copies (r1493703, r1494171)
+    * fix crash during tree conflict resolution (issue #4388)
+    * interactive file merge: add two additional choices (r1491816, r1494089)
+    * diff: use local style paths in error messages (r1500680)
+    * resolve: improve the interactive conflict resolution menu (r1491739 et al)
+    * switch: use local style path in error message (r1500074)
+    * ra_serf: improve error output when receiving invalid XML (r1498851)
+    * svn cleanup: explain what the command does in help output (r1497310)
+    * blame: error on -r M:N where M>N unless server supports (r1498449 et al)
+    * gpg-agent auth: don't try to use agent when unavailable (r1500762 et al)
+    * gpg-agent auth: don't require GPG_TTY or TERM env vars (r1500801)
+    * update: fix some tree conflicts not triggering resolver (r1491868 et al)
+    * commit: remove stale entries from wc lock table when deleting (r1491756)
+    * merge: fix --record-only erroring out on renamed path (issue #4387)
+    * svnmucc: fix 'make install' symlink to work when DESTDIR is set (r1501072)
+    * wc: fix crash when target is symlink to a working copy root (issue #4383)
+    * ra_serf: change "internal malfunction" errors to normal errors (r1502577)
+    * ra_serf: handle proxies not supporting chunked requests (r1502401 et al)
+
+  - Server-side bugfixes:
+    * fsfs: resolve endless loop problem when repos/db/uuid has \r\n (r1492145)
+    * fsfs: remove revision property buffer limit (r1491770)
+    * mod_dav_svn: better status codes for anonymous user errors (r1495918)
+    * mod_dav_svn: better status codes for commit failures (r1490684)
+    * fix performance regression in 'svn log' against root (r1494913)
+    * allow deleting non-user-visible 'svn:' properties (r1495432)
+    * fsfs: fix crash on strict-alignment architectures (r1495806, r1495985)
+    * svnadmin upgrade: fix error of non-sharded fsfs repositories (r1494287)
+    * svnadmin create: deny '--fs-type=fsfs --compatible-version=1.0' (r1494223)
+    * svnadmin upgrade: fix data loss when cancelling in last stage (r1494298)
+    * mod_dav_svn: fix incorrect path canonicalization (r1503528)
+
+  - Other tool improvements and bugfixes:
+    * fsfs-stats (tool): resolve segfault when passing invalid path (r1492164)
+    * svn-bench: fix help output (r1493951)
+    * svnpubsub: add version header to server (r1491707)
+
+ Developer-visible changes
+  - General:
+    * ra_serf: fix some test runner issues on Windows (r1490679)
+    * fix two issues in reverse svn_ra_get_file_revs() (r1492148, et al)
+    * handle --compatible-version=1.8 in the C tests (r1494342)
+    * improve clang compatibility (r1480080 et al)
+    * use proper cancel baton when handling conflicts (r1495850)
+    * fs: BDB: provide proper error value from BDB (r1495428)
+    * ra_serf: tweak connection failed error value (r1496132, et al)
+    * svn_client_log5: resolve possible segfault (r1496110)
+    * fix metadata_only move to work when target is unversioned node (r1498564)
+    * ra_svn: fix segfault with a NULL commit message (r1498550, r1499727)
+    * Ev2: correctly initialize node kind in shims' change table (r1501058)
+    * Ev2: fix copyfrom URL construction in shims (r1500226)
+    * fs: improve test against newlines in filenames (r1498483 et al)
+    * make building with BDB 6 an opt-in feature (r1499438)
+    * sqlite: allow placing amalgamation in build dir (r1499034, r1500175) 
+    * ra_svn: make sessions usable after log callback early out (r1503554)
+
+  - Bindings:
+    * swig-rb: fix tests with out-of-tree-builds (r1492295)
+    * javahl: fix encoding of error messages produced by javahl (r1492264) 
+    * swig-pl: silence compiler warnings (r1487094)
+    * swig-pl: improve documentation (r1488693, r1490721, r1500904)
+
+
 Version 1.8.0
 (18 Jun 2013, from /branches/1.8.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.8.0
@@ -338,6 +426,25 @@ http://svn.apache.org/repos/asf/subversi
     * fix some reference counting bugs in swig-py bindings (r1464899, r1466524)
 
 
+Version 1.7.11
+(23 Jul 2013, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.11
+
+ User-visible changes:
+  - General
+    * translation updates for Simplified Chinese
+
+  - Server-side bugfixes:
+    * mod_dav_svn: fix incorrect path canonicalization (r1503528)
+
+  - Other tool improvements and bugfixes:
+    * fix argument processing in contrib hook scripts (r1485350)
+
+ Developer-visible changes:
+  - Bindings:
+    * javahl: fix bug in error constructing code (r1405922)
+
+
 Version 1.7.10
 (30 May 2013, from /branches/1.7.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.7.10

Propchange: subversion/branches/javahl-1.8-extensions/CHANGES
------------------------------------------------------------------------------
  Merged /subversion/branches/1.8.x/CHANGES:r1494631-1507165
  Merged /subversion/trunk/CHANGES:r1497998,1498028,1501807,1502724,1502727,1502729,1503782,1503795-1503796,1503849-1503850,1503905

Modified: subversion/branches/javahl-1.8-extensions/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/Makefile.in?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/Makefile.in (original)
+++ subversion/branches/javahl-1.8-extensions/Makefile.in Fri Jul 26 01:03:26 2013
@@ -903,5 +903,5 @@ INSTALL_EXTRA_TOOLS=\
   test -n "$$SVN_SVNMUCC_IS_SVNSYITF" && \
   ln -sf svnmucc$(EXEEXT) $(DESTDIR)$(bindir)/svnsyitf$(EXEEXT); \
   if test "$(DESTDIR)$(bindir)" != "$(DESTDIR)$(toolsdir)"; then \
-    ln -sf $(DESTDIR)$(bindir)/svnmucc$(EXEEXT) $(DESTDIR)$(toolsdir)/svnmucc$(EXEEXT); \
+    ln -sf $(bindir)/svnmucc$(EXEEXT) $(DESTDIR)$(toolsdir)/svnmucc$(EXEEXT); \
   fi

Modified: subversion/branches/javahl-1.8-extensions/build/ac-macros/berkeley-db.m4
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/build/ac-macros/berkeley-db.m4?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/build/ac-macros/berkeley-db.m4 (original)
+++ subversion/branches/javahl-1.8-extensions/build/ac-macros/berkeley-db.m4 Fri Jul 26 01:03:26 2013
@@ -48,7 +48,7 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB,
   AC_ARG_WITH(berkeley-db, [AS_HELP_STRING(
                                            [[--with-berkeley-db[=HEADER:INCLUDES:LIB_SEARCH_DIRS:LIBS]]], [
                           The Subversion Berkeley DB based filesystem library 
-                          requires Berkeley DB $db_version or newer.  If you
+                          requires Berkeley DB $db_version or $db_alt_version.  If you
                           specify `--without-berkeley-db', that library will
                           not be built.  If you omit the argument of this option
                           completely, the configure script will use Berkeley DB
@@ -126,22 +126,35 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB,
     svn_lib_berkeley_db=no
   else
     AC_MSG_CHECKING([for availability of Berkeley DB])
-    SVN_LIB_BERKELEY_DB_TRY($1, $2, $3)
+    AC_ARG_ENABLE(bdb6,
+      AS_HELP_STRING([--enable-bdb6],
+                     [Allow building against BDB 6+.
+                      See --with-berkeley-db for specifying the location of
+                      the Berkeley DB installation.  Using BDB 6 will fail if
+                      this option is not used.]),
+      [enable_bdb6=$enableval],[enable_bdb6=unspecified])
+
+    SVN_LIB_BERKELEY_DB_TRY($1, $2, $3, $enable_bdb6)
     if test "$svn_have_berkeley_db" = "yes"; then
       AC_MSG_RESULT([yes])
       svn_lib_berkeley_db=yes
     else
-      AC_MSG_RESULT([no])
+      if test "$svn_have_berkeley_db" = "no6"; then
+        AC_MSG_RESULT([no (found version 6, but --enable-bdb6 not specified)])
+        # A warning will be printed at the end of configure.ac.
+      else
+        AC_MSG_RESULT([no])
+      fi
       svn_lib_berkeley_db=no
       if test "$bdb_status" = "required"; then
-        AC_MSG_ERROR([Berkeley DB $db_version or newer wasn't found.])
+        AC_MSG_ERROR([Berkeley DB $db_version or $db_alt_version wasn't found.])
       fi
     fi
   fi
 ])
 
 
-dnl   SVN_LIB_BERKELEY_DB_TRY(major, minor, patch)
+dnl   SVN_LIB_BERKELEY_DB_TRY(major, minor, patch, enable_bdb6)
 dnl
 dnl   A subroutine of SVN_LIB_BERKELEY_DB.
 dnl
@@ -174,6 +187,7 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB_TRY,
     svn_check_berkeley_db_major=$1
     svn_check_berkeley_db_minor=$2
     svn_check_berkeley_db_patch=$3
+    enable_bdb6=$4
 
    if test -z "$SVN_DB_LIBS"; then
       # We pass --dbm-libs here since Debian has modified apu-config not
@@ -215,6 +229,7 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB_TRY,
 )
 
     AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <string.h>
 #include <stdlib.h>
 $svn_db_header
 
@@ -230,6 +245,12 @@ int main ()
       || patch != DB_VERSION_PATCH)
     exit (1);
 
+  /* Block Berkeley DB 6, because (a) we haven't tested with it, (b) 6.0.20
+     and newer are under the AGPL, and we want use of AGPL dependencies to be
+     opt-in. */
+  if (major >= 6 && strcmp("$enable_bdb6", "yes"))
+    exit(2);
+
   /* Run-time check:  ensure the library claims to be the correct version. */
 
   if (major < $svn_check_berkeley_db_major)
@@ -249,7 +270,11 @@ int main ()
 }
       ]])],
       [svn_have_berkeley_db=yes],
-      [svn_have_berkeley_db=no],
+      [rc=$?
+       svn_have_berkeley_db=no
+       if test $rc = 2; then
+         svn_have_berkeley_db=no6
+       fi],
       [svn_have_berkeley_db=yes]
     )
 

Modified: subversion/branches/javahl-1.8-extensions/build/ac-macros/sqlite.m4
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/build/ac-macros/sqlite.m4?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/build/ac-macros/sqlite.m4 (original)
+++ subversion/branches/javahl-1.8-extensions/build/ac-macros/sqlite.m4 Fri Jul 26 01:03:26 2013
@@ -78,6 +78,10 @@ AC_DEFUN(SVN_LIB_SQLITE,
     SVN_SQLITE_FILE_CONFIG($abs_srcdir/sqlite-amalgamation/sqlite3.c)
 
     if test -z "$svn_lib_sqlite"; then
+      SVN_SQLITE_FILE_CONFIG($abs_builddir/sqlite-amalgamation/sqlite3.c)
+    fi
+
+    if test -z "$svn_lib_sqlite"; then
       dnl check the "standard" location of /usr
       SVN_SQLITE_DIR_CONFIG()
     fi
@@ -246,6 +250,10 @@ AC_DEFUN(SVN_DOWNLOAD_SQLITE,
   echo "unpack the archive using unzip and rename the resulting"
   echo "directory to:"
   echo "$abs_srcdir/sqlite-amalgamation"
+  if test x"$abs_srcdir" != x"$abs_builddir"; then
+    echo "or to:"
+    echo "$abs_builddir/sqlite-amalgamation"
+  fi
   echo ""
   AC_MSG_ERROR([Subversion requires SQLite])
 ])

Modified: subversion/branches/javahl-1.8-extensions/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/build/generator/gen_win.py?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/build/generator/gen_win.py (original)
+++ subversion/branches/javahl-1.8-extensions/build/generator/gen_win.py Fri Jul 26 01:03:26 2013
@@ -212,6 +212,7 @@ class GeneratorBase(gen_base.GeneratorBa
 
   def _find_bdb(self):
     "Find the Berkeley DB library and version"
+    # Before adding "60" to this list, see build/ac-macros/berkeley-db.m4.
     for ver in ("53", "52", "51", "50", "48", "47", "46",
                 "45", "44", "43", "42", "41", "40"):
       lib = "libdb" + ver

Modified: subversion/branches/javahl-1.8-extensions/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/configure.ac?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/configure.ac (original)
+++ subversion/branches/javahl-1.8-extensions/configure.ac Fri Jul 26 01:03:26 2013
@@ -460,6 +460,7 @@ powerpc-apple-darwin*)
     SVN_FS_WANT_DB_PATCH=14
     ;;
 esac
+db_alt_version="5.x"
 # Look for libdb4.so first:
 SVN_LIB_BERKELEY_DB($SVN_FS_WANT_DB_MAJOR, $SVN_FS_WANT_DB_MINOR,
                     $SVN_FS_WANT_DB_PATCH, [db4 db])
@@ -1511,18 +1512,28 @@ dnl Configure is long - users tend to mi
 dnl Hence, print a warnings about what we did and didn't configure at the 
 dnl end, where people will actually see them.
 
-if test "$svn_lib_berkeley_db" = "no" && test "$with_berkeley_db" != "no"; then
-  db_version="$SVN_FS_WANT_DB_MAJOR.$SVN_FS_WANT_DB_MINOR.$SVN_FS_WANT_DB_PATCH"
-  AC_MSG_WARN([we have configured without BDB filesystem support
+if test "$svn_have_berkeley_db" = "no6" && test "$enable_bdb6" != "no"; then
+  AC_MSG_WARN([We have configured without BDB filesystem support
 
 
-You don't seem to have Berkeley DB version $db_version or newer
-installed and linked to APR-UTIL.  We have created a Makefile which will build
-Subversion without support for the Berkeley DB back-end.  You can find the
-latest version of Berkeley DB here:
+Berkeley DB 6 was found, but not used.  Please re-run configure (see
+./config.nice) with the '--enable-bdb6' flag to use it,
+or explicitly specify '--disable-bdb6' or '--without-berkeley-db'
+to silence this warning.
 
-  http://www.oracle.com/technetwork/products/berkeleydb/downloads/index.html
+Please note that some versions of Berkeley DB 6+ are under the GNU Affero
+General Public License, version 3:
+https://oss.oracle.com/pipermail/bdb/2013-June/000056.html
 
-or explicitly specify --without-berkeley-db to silence this warning.
+The AGPL-3.0 licence may impose special requirements for making available
+source code of server-side software.  The text of the licence is:
+https://www.gnu.org/licenses/agpl-3.0.html
+http://opensource.org/licenses/AGPL-3.0
+
+The Berkeley DB backend to Subversion is deprecated; see
+http://subversion.apache.org/docs/release-notes/1.8#bdb-deprecated
+
+The Subversion developers have not tested Subversion with Berkeley DB 6 for
+technical problems or bugs.
 ])
 fi

Propchange: subversion/branches/javahl-1.8-extensions/configure.ac
------------------------------------------------------------------------------
  Merged /subversion/branches/1.8.x-busted-proxy/configure.ac:r1499222-1502434
  Merged /subversion/trunk/configure.ac:r1499438,1499447,1499460,1500695,1500928
  Merged /subversion/branches/1.8.x/configure.ac:r1500367-1507165
  Merged /subversion/branches/1.8.x-tristate-chunked-request/configure.ac:r1502435-1503894

Modified: subversion/branches/javahl-1.8-extensions/get-deps.sh
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/get-deps.sh?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/get-deps.sh (original)
+++ subversion/branches/javahl-1.8-extensions/get-deps.sh Fri Jul 26 01:03:26 2013
@@ -37,7 +37,7 @@ SERF_VERSION=${SERF_VERSION:-"1.2.1"}
 ZLIB_VERSION=${ZLIB_VERSION:-"1.2.8"}
 SQLITE_VERSION=${SQLITE_VERSION:-"3.7.15.1"}
 GTEST_VERSION=${GTEST_VERSION:-"1.6.0"}
-HTTPD_VERSION=${HTTPD_VERSION:-"2.4.3"}
+HTTPD_VERSION=${HTTPD_VERSION:-"2.4.6"}
 APR_ICONV_VERSION=${APR_ICONV_VERSION:-"1.2.1"}
 
 APR=apr-${APR_VERSION}

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c Fri Jul 26 01:03:26 2013
@@ -29,6 +29,10 @@
 #include <perl.h>
 #include <XSUB.h>
 
+/* Perl defines a _ macro, but SVN uses it for translations.
+ * So undefine _ after including the Perl headers. */
+#undef _
+
 #include <stdarg.h>
 #ifdef WIN32
 #include <io.h>

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h Fri Jul 26 01:03:26 2013
@@ -29,6 +29,10 @@
 #include <perl.h>
 #include <XSUB.h>
 
+/* Perl defines a _ macro, but SVN uses it for translations.
+ * So undefine _ after including the Perl headers. */
+#undef _
+
 #include <apr.h>
 #include <apr_pools.h>
 #include <apr_strings.h>

Modified: subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/Client.pm
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/Client.pm?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/Client.pm (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/bindings/swig/perl/native/Client.pm Fri Jul 26 01:03:26 2013
@@ -8,25 +8,26 @@ package SVN::Client;
 my @_all_fns;
 BEGIN {
     @_all_fns =
-        qw( version diff_summarize_dup create_context checkout3
-            checkout2 checkout update4 update3 update2 update switch2 switch
-            add4 add3 add2 add mkdir4 mkdir3 mkdir2 mkdir delete3 delete2
-            delete import3 import2 import commit4 commit3 commit2
-            commit status4 status3 status2 status log5 log4 log3 log2 log 
-            blame4 blame3 blame2 blame diff4 diff3 diff2 diff diff_peg4
-            diff_peg3 diff_peg2 diff_peg diff_summarize2
-            diff_summarize diff_summarize_peg2 diff_summarize_peg
-            merge3 merge2 merge merge_peg3 merge_peg2 merge_peg
-            cleanup relocate revert2 revert resolve resolved copy4
-            copy3 copy2 copy move5 move4 move3 move2 move propset3
-            propset2 propset revprop_set propget3 propget2
-            propget revprop_get proplist3 proplist2 proplist
-            revprop_list export4 export3 export2 export list2 list
-            ls3 ls2 ls cat2 cat add_to_changelist
-            remove_from_changelist lock unlock info2 info
-            url_from_path uuid_from_url uuid_from_path open_ra_session
-            invoke_blame_receiver2 invoke_blame_receiver
-            invoke_diff_summarize_func
+        qw( add add2 add3 add4 add_to_changelist blame blame2 blame3 blame4
+            cat cat2 checkout checkout2 checkout3 cleanup
+            commit commit2 commit3 commit4 copy copy2 copy3 copy4
+            create_context delete delete2 delete3 diff diff2 diff3 diff4
+            diff_peg diff_peg2 diff_peg3 diff_peg4
+            diff_summarize diff_summarize2 diff_summarize_dup
+            diff_summarize_peg diff_summarize_peg2
+            export export2 export3 export4 import import2 import3
+            info info2 invoke_blame_receiver invoke_blame_receiver2
+            invoke_diff_summarize_func list list2 lock
+            log log2 log3 log4 log5 ls ls2 ls3
+            merge merge2 merge3 merge_peg merge_peg2 merge_peg3
+            mkdir mkdir2 mkdir3 mkdir4 move move2 move3 move4 move5
+            open_ra_session propget propget2 propget3
+            proplist proplist2 proplist3 propset propset2 propset3
+            relocate remove_from_changelist resolve resolved
+            revert revert2 revprop_get revprop_list revprop_set
+            status status2 status3 status4 switch switch2
+            unlock update update2 update3 update4
+            url_from_path uuid_from_path uuid_from_url version
           );
 
     require SVN::Base;
@@ -40,21 +41,18 @@ SVN::Client - Subversion client function
 =head1 SYNOPSIS
 
     use SVN::Client;
-    my $ctx = new SVN::Client(
-              auth => [SVN::Client::get_simple_provider(),
-              SVN::Client::get_simple_prompt_provider(\&simple_prompt,2),
-              SVN::Client::get_username_provider()]
-              );
+    my $client = new SVN::Client(
+      auth => [
+          SVN::Client::get_simple_provider(),
+          SVN::Client::get_simple_prompt_provider(\&simple_prompt,2),
+          SVN::Client::get_username_provider()
+      ]);
 
-    $ctx->cat(\*STDOUT, 'http://svn.apache.org/repos/asf/subversion/trunk/README',
-              'HEAD');
+    $client->cat(\*STDOUT, 
+              'http://svn.apache.org/repos/asf/subversion/trunk/README', 'HEAD');
 
     sub simple_prompt {
-      my $cred = shift;
-      my $realm = shift;
-      my $default_username = shift;
-      my $may_save = shift;
-      my $pool = shift;
+      my ($cred, $realm, $default_username, $may_save, $pool) = @_;
 
       print "Enter authentication info for realm: $realm\n";
       print "Username: ";
@@ -81,8 +79,8 @@ The Perl method calls take a SVN::Client
 This allows method call invocation of the methods to be possible.  For
 example, the following are equivalent:
 
-  SVN::Client::add($ctx,$path, $recursive, $pool);
-  $ctx->add($path, $recursive, $pool);
+  SVN::Client::add($client,$path, $recursive, $pool);
+  $client->add($path, $recursive, $pool);
 
 Many of the C API calls also take a apr_pool_t pointer as their last
 argument.  The Perl bindings generally deal with this for you and
@@ -103,7 +101,7 @@ the rules below or will be noted otherwi
 
 =over 4
 
-=item $ctx
+=item $client
 
 An SVN::Client object that you get from the constructor.
 
@@ -133,16 +131,17 @@ to an array of them.
 
 =item $revision
 
-This specifies a revision in the subversion repository.  You can specify a
+This specifies a revision in the Subversion repository.  You can specify a
 revision in several ways.  The easiest and most obvious is to directly
 provide the revision number.  You may also use the strings (aka revision
 keywords) 'HEAD', 'BASE', 'COMMITTED', and 'PREV' which have the same
 meanings as in the command line client.  When referencing a working copy
 you can use the string 'WORKING" to reference the BASE plus any local
-modifications.  undef may be used to specify an unspecified revision.
-Finally you may pass a date by specifying the date inside curly braces
+modifications.  C<undef> may be used to specify an unspecified revision.
+You may also pass a date by specifying the date inside curly braces
 '{}'.  The date formats accepted are the same as the command line client
-accepts.
+accepts. Finally a C<_p_svn_opt_revision_t> object is accepted
+(which may have been returned by some Subversion function).
 
 =item $recursive $nonrecursive.
 
@@ -163,7 +162,7 @@ The following methods are available:
 
 =over 4
 
-=item $ctx = SVN::Client-E<gt>new( %options );
+=item $client = SVN::Client-E<gt>new( %options );
 
 This class method constructs a new C<SVN::Client> object and returns
 a reference to it.
@@ -252,21 +251,21 @@ sub new
     return $self;
 }
 
-=item $ctx-E<gt>add($path, $recursive, $pool);
+=item $client-E<gt>add($path, $recursive, $pool);
 
-Similar to $ctx-E<gt>add2(), but with $force always set to FALSE.
+Similar to $client-E<gt>add2(), but with $force always set to FALSE.
 
-=item $ctx-E<gt>add2($path, $recursive, $force, $ctx, $pool);
+=item $client-E<gt>add2($path, $recursive, $force, $pool);
 
-Similar to $ctx-E<gt>add3(), but with $no_ignore always set to FALSE.
+Similar to $client-E<gt>add3(), but with $no_ignore always set to FALSE.
 
-=item $ctx-E<gt>add3($path, $recursive, $force, $no_ignore, $pool);
+=item $client-E<gt>add3($path, $recursive, $force, $no_ignore, $pool);
 
-Similar to $ctx-E<gt>add4(), but with $add_parents always set to FALSE and
+Similar to $client-E<gt>add4(), but with $add_parents always set to FALSE and
 $depth set according to $recursive; if TRUE, then depth is
 $SVN::Depth::infinity, if FALSE, then $SVN::Depth::empty.
 
-=item $ctx-E<gt>add4($path, $depth, $force, $no_ignore, $add_parents, $pool);
+=item $client-E<gt>add4($path, $depth, $force, $no_ignore, $add_parents, $pool);
 
 Schedule a working copy $path for addition to the repository.
 
@@ -289,7 +288,7 @@ Calls the notify callback for each added
 If $no_ignore is FALSE, don't add any file or directory (or recurse into any
 directory) that is unversioned and found by recursion (as opposed to being the
 explicit target $path) and whose name matches the svn:ignore property on its
-parent directory or the global-ignores list in $ctx->config.  If $no_ignore is
+parent directory or the global-ignores list in $client->config.  If $no_ignore is
 TRUE, do include such files and directories.  (Note that an svn:ignore property
 can influence this behaviour only when recursing into an already versioned
 directory with $force).
@@ -300,11 +299,11 @@ found return $SVN::Error::NO_VERSIONED_P
 
 Important: this is a B<scheduling> operation.  No changes will happen
 to the repository until a commit occurs.  This scheduling can be
-removed with $ctx-E<gt>revert().
+removed with $client-E<gt>revert().
 
 No return.
 
-=item $ctx-E<gt>blame($target, $start, $end, \&receiver, $pool);
+=item $client-E<gt>blame($target, $start, $end, \&receiver, $pool);
 
 Invoke \&receiver subroutine on each line-blame item associated with revision
 $end of $target, using $start as the default source of all blame.
@@ -324,7 +323,7 @@ The blame receiver subroutine can return
 to return an error.  All other returns will be ignored.
 You can create an svn_error_t object with SVN::Error::create().
 
-=item $ctx-E<gt>cat(\*FILEHANDLE, $target, $revision, $pool);
+=item $client-E<gt>cat(\*FILEHANDLE, $target, $revision, $pool);
 
 Outputs the content of the file identified by $target and $revision to the
 FILEHANDLE.  FILEHANDLE is a reference to a filehandle.
@@ -333,17 +332,17 @@ If $target is not a local path and if $r
 other kind that requires a local path), then an error will be raised,
 because the desired revision can not be determined.
 
-=item $ctx-E<gt>checkout($url, $path, $revision, $recursive, $pool);
+=item $client-E<gt>checkout($url, $path, $revision, $recursive, $pool);
 
-Similar to $ctx-E<gt>checkout2(), but with $peg_revision always set to undef (unspecified) and $ignore_externals always set to FALSE.
+Similar to $client-E<gt>checkout2(), but with $peg_revision always set to undef (unspecified) and $ignore_externals always set to FALSE.
 
-=item $ctx-E<gt>checkout2($url, $path, $peg_revision, $revision, $recursive, $ignore_externals, $pool);
+=item $client-E<gt>checkout2($url, $path, $peg_revision, $revision, $recursive, $ignore_externals, $pool);
 
-Similar to $ctx-E<gt>checkout3(), but with $allow_unver_obstructions always set
+Similar to $client-E<gt>checkout3(), but with $allow_unver_obstructions always set
 to FALSE, and $depth set according to $recurse: if $recurse is TRUE, $depth is
 $SVN::Depth::infinity, if $recurse is FALSE, set $depth to $SVN::Depth::files.
 
-=item $ctx-E<gt>checkout3($url, $path, $preg_revision, $revision, $depth, $ignore_externals, $allow_unver_obstructions, $pool);
+=item $client-E<gt>checkout3($url, $path, $preg_revision, $revision, $depth, $ignore_externals, $allow_unver_obstructions, $pool);
 
 Checkout a working copy of $url at $revision using $path as the root directory
 of the newly checked out working copy.
@@ -370,12 +369,12 @@ obstructing items.
 
 Returns the value of the revision actually checked out of the repository.
 
-=item $ctx-E<gt>cleanup($dir, $pool);
+=item $client-E<gt>cleanup($dir, $pool);
 
 Recursively cleanup a working copy directory, $dir, finishing any incomplete
 operations, removing lockfiles, etc.
 
-=item $ctx-E<gt>commit($targets, $nonrecursive, $pool);
+=item $client-E<gt>commit($targets, $nonrecursive, $pool);
 
 Commit files or directories referenced by target.  Will use the log_msg
 callback to obtain the log message for the commit.
@@ -397,7 +396,7 @@ Returns a svn_client_commit_info_t objec
 commit information object is $SVN::Core::INVALID_REVNUM and no error was
 raised, then the commit was a no-op; nothing needed to be committed.
 
-=item $ctx-E<gt>copy($src_target, $src_revision, $dst_target, $pool);
+=item $client-E<gt>copy($src_target, $src_revision, $dst_target, $pool);
 
 Copies $src_target to $dst_target.
 
@@ -412,15 +411,15 @@ to the repository.  The log_msg callback
 log message.  If the commit succeeds, return a svn_client_commit_info_t
 object.
 
-If $dst_target is not a URL, then this is just a variant of $ctx-E<gt>add(),
+If $dst_target is not a URL, then this is just a variant of $client-E<gt>add(),
 where the $dst_path items are scheduled for addition as copies.  No changes
 will happen to the repository until a commit occurs.  This scheduling can be
-removed with $ctx-E<gt>revert().  undef will be returned in this case.
+removed with $client-E<gt>revert().  undef will be returned in this case.
 
 Calls the notify callback for each item added at the new location, passing
 the new, relative path of the added item.
 
-=item $ctx-E<gt>delete($targets, $force, $pool);
+=item $client-E<gt>delete($targets, $force, $pool);
 
 Delete items from a repository or working copy.
 
@@ -433,7 +432,7 @@ repository.
 Else, schedule the working copy paths in $targets for removal from the
 repository.  Each path's parent must be under revision control.  This is
 just a B<scheduling> operation.  No changes will happen to the repository
-until a commit occurs.  This scheduling can be removed with $ctx-E<gt>revert().
+until a commit occurs.  This scheduling can be removed with $client-E<gt>revert().
 If a path is a file it is immediately removed from the working copy.  If
 the path is a directory it will remain in the working copy but all the files,
 and all unversioned items it contains will be removed.  If $force is not set
@@ -445,7 +444,7 @@ the deleted item.
 
 Has no return.
 
-=item $ctx-E<gt>diff($diff_options, $target1, $revision1, $target2, $revision2, $recursive, $ignore_ancestry, $no_diff_deleted, $outfile, $errfile, $pool);
+=item $client-E<gt>diff($diff_options, $target1, $revision1, $target2, $revision2, $recursive, $ignore_ancestry, $no_diff_deleted, $outfile, $errfile, $pool);
 
 Produces diff output which describes the delta between $target1 at
 $revision1 and $target2 at $revision2.  They both must represent the same
@@ -469,7 +468,7 @@ pass an empty array to return a unified 
 
 Has no return.
 
-=item $ctx-E<gt>diff_summarize($target1, $revision1, $target2, $revision2, $recursive, $ignore_ancestry, \&summarize_func, $pool);
+=item $client-E<gt>diff_summarize($target1, $revision1, $target2, $revision2, $recursive, $ignore_ancestry, \&summarize_func, $pool);
 
 Produce a diff summary which lists the changed items between $target1
 at $revision1 and $target2 at $revision2 without creating text deltas.
@@ -486,7 +485,7 @@ See diff() for a description of the othe
 
 Has no return.
 
-=item $ctx-E<gt>export($from, $to, $revision, $force, $pool);
+=item $client-E<gt>export($from, $to, $revision, $force, $pool);
 
 Export the contents of either a subversion repository or a subversion
 working copy into a 'clean' directory (meaning a directory with no
@@ -506,7 +505,7 @@ The notify callback will be called for t
 Returns the value of the revision actually exported or
 $SVN::Core::INVALID_REVNUM for local exports.
 
-=item $ctx-E<gt>import($path, $url, $nonrecursive, $pool);
+=item $client-E<gt>import($path, $url, $nonrecursive, $pool);
 
 Import file or directory $path into repository directory $url at head.
 
@@ -534,50 +533,147 @@ one is needed.
 
 Returns a svn_client_commit_info_t object.
 
-=item $ctx-E<gt>log($targets, $start, $end, $discover_changed_paths, $strict_node_history, \&log_receiver, $pool);
+=item $client-E<gt>info($path_or_url, $peg_revision, $revision, \&receiver, $recurse);
 
-Invoke the log_receiver subroutine on each log_message from $start to $end in
-turn, inclusive (but will never invoke receiver on a given log message more
+Invokes \&receiver passing it information about $path_or_url for $revision.
+The information returned is system-generated metadata, not the sort of
+"property" metadata created by users.  For methods available on the object
+passed to \&receiver, B<see svn_info_t>.
+
+If both revision arguments are either svn_opt_revision_unspecified or NULL,
+then information will be pulled solely from the working copy; no network
+connections will be made.
+
+Otherwise, information will be pulled from a repository.  The actual node
+revision selected is determined by the $path_or_url as it exists in
+$peg_revision.  If $peg_revision is undef, then it defaults to HEAD for URLs
+or WORKING for WC targets.
+
+If $path_or_url is not a local path, then if $revision is PREV (or some other
+kind that requires a local path), an error will be returned, because the
+desired revision cannot be determined.
+
+Uses the authentication baton cached in ctx to authenticate against the
+repository.
+
+If $recurse is true (and $path_or_url is a directory) this will be a recursive
+operation, invoking $receiver on each child.
+
+ my $receiver = sub {
+     my( $path, $info, $pool ) = @_;
+     print "Current revision of $path is ", $info->rev, "\n";
+ };
+ $client->info( 'foo/bar.c', undef, 'WORKING', $receiver, 0 );
+
+=item $client-E<gt>log5($targets, $peg_revision, $revision_ranges, $limit, $discover_changed_paths, $strict_node_history, $include_merged_revisions, $revprops, \&log_entry_receiver, $pool);
+
+Invoke C<log_entry_receiver> on each log message from
+each revision range in C<$revision_ranges> in turn,
+inclusive (but never invoke C<log_entry_receiver> on a given log message more
 than once).
 
-$targets is a reference to an array containing all the paths or URLs for
-which the log messages are desired.  The log_receiver is only invoked on
-messages whose revisions involved a change to some path in $targets.
+C<$targets> is a reference to an array of either a URL followed by zero 
+or more relative paths, or 1 working copy path, for which log
+messages are desired. If the array contains only a single element
+you may set C<$targets> to this element instead.
+C<log_entry_receiver> is invoked only on messages whose
+revisions involved a change to some path in C<$targets>.
+
+C<$peg_revision> indicates in which revision C<$targets> are valid. 
+If C<$peg_revision> is C<undef>, it defaults to 'HEAD'
+for URLs or 'WORKING' for WC paths.
+
+C<$revision_ranges> is either a single I<revision range> or a reference
+to an array of them. A I<revision range> may be specified
+as a reference to a two-element array C<[$start, $end]>
+of L<$revision|/$revision>s or a 
+L<SVN::Core::svn_opt_revision_range_t|SVN::Core/svn_opt_revision_range_t> 
+object. Examples:
+
+  $revision_ranges = ['HEAD', 1];
+  $revision_ranges = [[2, 3], [5, 8], [13, 21]];
+
+If C<$limit> is non-zero only invoke C<log_entry_receiver> 
+on the first C<$limit> logs.
+
+If C<$discover_changed_paths> is true, then the I<changed_paths2> field 
+in the C<$log_entry> argument to C<log_entry_receiver> will be
+populated on each invocation.  I<Note:> The I<text_modified> and
+I<props_modified> fields of the I<changed_paths2> structure may have the value
+C<$SVN::Tristate::unknown> if the repository does not report that information.
+
+If C<$strict_node_history> is true, copy history (if any exists) will
+not be traversed while harvesting revision logs for each target.
+
+If C<$include_merged_revisions> is true, log information for revisions
+which have been merged to C<$targets> will also be returned.
+
+If C<$revprops> is C<undef>, retrieve all revision properties.
+Otherwise C<$revpros> should be a reference to an array of
+property names and only these properties will be retrieved
+(i.e. none if the array is empty).
+
+Use C<$pool> for any temporary allocation.
+
+Calls the notify subroutine with a C<$SVN::Wc::Notify::Action::skip> 
+signal on any unversioned C<$targets>.
+
+The C<log_entry_receiver> takes the following arguments:
+C<$log_entry, $pool>.  C<$log_entry> is a 
+L<SVN::Core::svn_log_entry_t|SVN::Core/svn_log_entry_t> object.
+
+=item $client-E<gt>log4($targets, $peg_revision, $start, $end, $limit, $discover_changed_paths, $strict_node_history, $include_merged_revisions, $revprops, \&log_entry_receiver, $pool);
+
+Similar to C<$client-E<gt>log5()>, 
+but takes explicit C<$start> and C<$end> parameters
+instead of C<$revision_ranges>.
+
+Deprecated.
+
+=item $client-E<gt>log3($targets, $peg_revision, $start, $end, $limit, $discover_changed_paths, $strict_node_history, \&log_message_receiver, $pool);
+
+Similar to C<$client-E<gt>log4()>, but using C<log_message_receiver>
+instead of C<log_entry_receiver>.  Also, C<$include_merged_revisions> 
+is false and C<$revprops> is [qw( svn:author svn:date and svn:log )].
+
+The C<log_message_receiver> takes the following arguments:
+C<$changed_paths, $revision, $author, $date, $message, $pool>.
+It is called once for each log C<$message> from the C<$revision>
+on C<$date> by C<$author>.  C<$author>, C<$date> or C<$message> 
+may be C<undef>.
+
+If C<$changed_paths> is defined it references a hash with the keys
+every path committed in C<$revision>; the values are 
+L<SVN::Core::svn_log_changed_path_t|SVN::Core/svn_log_changed_path_t>
+objects.
+
+Deprecated.
 
-If $discover_changed_paths is set, then the changed_paths argument to the
-log_receiver routine will be passed on each invocation.
+=item $client-E<gt>log2($targets, $start, $end, $limit, $discover_changed_paths, $strict_node_history, \&log_message_receiver, $pool);
 
-If $strict_node_history is set, copy history (if any exists) will not be
-traversed while harvesting revision logs for each target.
+Similar to C<$client-E<gt>log3()>, but with C<$peg_revision> set to C<undef>.
 
-If $start or $end is undef the arp_err code will be set to:
-$SVN::Error::CLIENT_BAD_REVISION.
+Deprecated.
 
-Special case for repositories at revision 0:
+=item $client-E<gt>log($targets, $start, $end, $discover_changed_paths, $strict_node_history, \&log_message_receiver, $pool);
 
-If $start is 'HEAD' and $end is 1, then handle an empty (no revisions)
+Similar to C<$client-E<gt>log2()>, but with C<$limit> set to 0.
+
+I<Special case for repositories at revision 0:>
+If C<$start> is 'HEAD' and C<$end> is 1, then handle an empty (no revisions)
 repository specially: instead of erroring because requested revision 1
-when the highest revision is 0, just invoke $log_receiver on revision 0,
-passing undef to changed paths and empty strings for the author and date.
-This is because that particular combination of $start and $end usually indicates
+when the highest revision is 0, just invoke 
+C<log_message_receiver> on revision 0,
+passing C<undef> to C<$changed_paths> and empty strings for the author and date.
+This is because that particular combination of C<$start> 
+and C<$end> usually indicates
 the common case of log invocation; the user wants to see all log messages from
 youngest to oldest, where the oldest commit is revision 1.  That works fine,
 except there are no commits in the repository, hence this special case.
 
-Calls the notify subroutine with a $SVN::Wc::Notify::Action::skip signal on any
-unversioned targets.
-
-The log_receiver takes the following arguments:
-$changed_paths, $revision, $author, $date, $message, $pool
+Deprecated.
 
-It is called once for each log $message from the $revision
-on $date by $author.  $author, $date or $message may be undef.
-
-If $changed_paths is defined it references a hash with the keys
-every path committed in $revision; the values are svn_log_changed_path_t
-objects.
-
-=item $ctx-E<gt>ls($target, $revision, $recursive, $pool);
+=item $client-E<gt>ls($target, $revision, $recursive, $pool);
 
 Returns a hash of svn_dirent_t objects for $target at $revision.
 
@@ -589,7 +685,7 @@ If $target is a file only return an entr
 If $target is non-existent, raises the $SVN::Error::FS_NOT_FOUND
 error.
 
-=item $ctx-E<gt>merge($src1, $rev1, $src2, $rev2, $target_wcpath, $recursive, $ignore_ancestry, $force, $dry_run, $pool);
+=item $client-E<gt>merge($src1, $rev1, $src2, $rev2, $target_wcpath, $recursive, $ignore_ancestry, $force, $dry_run, $pool);
 
 Merge changes from $src1/$rev1 to $src2/$rev2 into the working-copy path
 $target_wcpath.
@@ -626,22 +722,22 @@ feedback is provided, but the working co
 
 Has no return.
 
-=item $ctx-E<gt>mkdir($targets, $pool);
+=item $client-E<gt>mkdir($targets, $pool);
 
-Similar to $ctx-E<gt>mkdir2() except it returns an svn_client_commit_info_t
+Similar to $client-E<gt>mkdir2() except it returns an svn_client_commit_info_t
 object instead of a svn_commit_info_t object.
 
-=item $ctx-E<gt>mkdir2($targets, $pool);
+=item $client-E<gt>mkdir2($targets, $pool);
 
-Similar to $ctx-E<gt>mkdir3(), but with $make_parents always FALSE, and
+Similar to $client-E<gt>mkdir3(), but with $make_parents always FALSE, and
 $revprop_hash always undef.
 
-=item $ctx-E<gt>mkdir3($targets, $make_parents, $revprop_hash, $pool);
+=item $client-E<gt>mkdir3($targets, $make_parents, $revprop_hash, $pool);
 
-Similar to $ctx-E<gt>mkdir4(), but returns a svn_commit_info_t object rather
+Similar to $client-E<gt>mkdir4(), but returns a svn_commit_info_t object rather
 than through a callback function.
 
-=item $ctx-E<gt>mkdir4($targets, $make_parents, $revprop_hash, \&commit_callback, $pool);
+=item $client-E<gt>mkdir4($targets, $make_parents, $revprop_hash, \&commit_callback, $pool);
 
 Create a directory, either in a repository or a working copy.
 
@@ -669,7 +765,7 @@ called for items added to the working co
 If \&commit_callback is not undef, then for each successful commit, call
 \&commit_callback with the svn_commit_info_t object for the commit.
 
-=item $ctx-E<gt>move($src_path, $src_revision, $dst_path, $force, $pool);
+=item $client-E<gt>move($src_path, $src_revision, $dst_path, $force, $pool);
 
 Move $src_path to $dst_path.
 
@@ -696,7 +792,7 @@ If $src_path is a working copy path
 not be called.
 
 * This is a scheduling operation.  No changes will happen to the repository
-until a commit occurs.  This scheduling can be removed with $ctx-E<gt>revert().
+until a commit occurs.  This scheduling can be removed with $client-E<gt>revert().
 If $src_path is a file it is removed from the working copy immediately.
 If $src_path is a directory it will remain in the working copy but all
 files, and unversioned items, it contains will be removed.
@@ -709,13 +805,13 @@ The notify callback will be called twice
 indicate the deletion of the moved node, and once to indicate the addition
 of the new location of the node.
 
-=item $ctx-E<gt>propget($propname, $target, $revision, $recursive, $pool);
+=item $client-E<gt>propget($propname, $target, $revision, $recursive, $pool);
 
 Returns a reference to a hash containing paths or URLs, prefixed by $target (a
 working copy or URL), of items for which the property $propname is set, and
 whose values represent the property value for $propname at that path.
 
-=item $ctx-E<gt>proplist($target, $revision, $recursive, $pool);
+=item $client-E<gt>proplist($target, $revision, $recursive, $pool);
 
 Returns a reference to an array of svn_client_proplist_item_t objects.
 
@@ -732,7 +828,7 @@ versioned entry below (and including) $t
 
 If $target is not found, raises the $SVN::Error::ENTRY_NOT_FOUND error.
 
-=item $ctx-E<gt>propset($propname, $propval, $target, $recursive, $pool);
+=item $client-E<gt>propset($propname, $propval, $target, $recursive, $pool);
 
 Set $propname to $propval on $target (a working copy or URL path).
 
@@ -746,7 +842,7 @@ If $propname is an svn-controlled proper
 then the caller is responsible for ensuring that $propval is UTF8-encoded
 and uses LF line-endings.
 
-=item $ctx-E<gt>relocate($dir, $from, $to, $recursive, $pool);
+=item $client-E<gt>relocate($dir, $from, $to, $recursive, $pool);
 
 Modify a working copy directory $dir, changing any repository URLs that
 begin with $from to begin with $to instead, recursing into subdirectories if
@@ -754,7 +850,7 @@ $recursive is true.
 
 Has no return.
 
-=item $ctx-E<gt>resolved($path, $recursive, $pool);
+=item $client-E<gt>resolved($path, $recursive, $pool);
 
 Removed the 'conflicted' state on a working copy path.
 
@@ -768,7 +864,7 @@ If $path is not in a state of conflict t
 If $path's conflict state is removed, call the notify callback with the
 $path.
 
-=item $ctx-E<gt>revert($paths, $recursive, $pool);
+=item $client-E<gt>revert($paths, $recursive, $pool);
 
 Restore the pristine version of a working copy $paths, effectively undoing
 any local mods.
@@ -776,28 +872,28 @@ any local mods.
 For each path in $paths, if it is a directory and $recursive
 is true, this will be a recursive operation.
 
-=item $ctx-E<gt>revprop_get($propname, $url, $revision, $pool);
+=item $client-E<gt>revprop_get($propname, $url, $revision, $pool);
 
 Returns two values, the first of which is the value of $propname on revision
 $revision in the repository represented by $url.  The second value is the
 actual revision queried.
 
-Note that unlike its cousin $ctx-E<gt>propget(), this routine doesn't affect
+Note that unlike its cousin $client-E<gt>propget(), this routine doesn't affect
 working copy at all; it's a pure network operation that queries an
 B<unversioned> property attached to a revision.  This can be used to query
 log messages, dates, authors, and the like.
 
-=item $ctx-E<gt>revprop_list($url, $revision, $pool);
+=item $client-E<gt>revprop_list($url, $revision, $pool);
 
 Returns two values, the first of which is a reference to a hash containing
 the properties attached to $revision in the repository represented by $url.
 The second value is the actual revision queried.
 
-Note that unlike its cousin $ctx-E<gt>proplist(), this routine doesn't read a
+Note that unlike its cousin $client-E<gt>proplist(), this routine doesn't read a
 working copy at all; it's a pure network operation that reads B<unversioned>
 properties attached to a revision.
 
-=item $ctx-E<gt>revprop_set($propname, $propval, $url, $revision, $force, $pool);
+=item $client-E<gt>revprop_set($propname, $propval, $url, $revision, $force, $pool);
 
 Set $propname to $propval on revision $revision in the repository represented
 by $url.
@@ -811,7 +907,7 @@ If $propname is an svn-controlled proper
 the caller is responsible for ensuring that the value is UTF8-encoded and
 uses LF line-endings.
 
-Note that unlike its cousin $ctx-E<gt>propset(), this routine doesn't affect
+Note that unlike its cousin $client-E<gt>propset(), this routine doesn't affect
 the working copy at all; it's a pure network operation that changes an
 B<unversioned> property attached to a revision.  This can be used to tweak
 log messages, dates, authors, and the like.  Be careful: it's a lossy
@@ -821,19 +917,19 @@ with no way to retrieve the prior value.
 Also note that unless the administrator creates a pre-revprop-change hook
 in the repository, this feature will fail.
 
-=item $ctx-E<gt>status($path, $revision, \&status_func, $recursive, $get_all, $update, $no_ignore, $pool);
+=item $client-E<gt>status($path, $revision, \&status_func, $recursive, $get_all, $update, $no_ignore, $pool);
 
-Similar to $ctx-E<gt>status2(), but with ignore_externals always set to FALSE, and with the status_func receiving a svn_wc_status2_t instead of a svn_wc_status_t object.
+Similar to $client-E<gt>status2(), but with ignore_externals always set to FALSE, and with the status_func receiving a svn_wc_status2_t instead of a svn_wc_status_t object.
 
-=item $ctx-E<gt>status2($path, $revision, \&status_func, $recursive, $get_all, $update, $no_ignore, $ignore_externals, $pool);
+=item $client-E<gt>status2($path, $revision, \&status_func, $recursive, $get_all, $update, $no_ignore, $ignore_externals, $pool);
 
-Similar to $ctx-E<gt>status3(), but with the changelists passed as undef, and with recursive instead of depth.
+Similar to $client-E<gt>status3(), but with the changelists passed as undef, and with recursive instead of depth.
 
-=item $ctx-E<gt>status3($path, $revision, \&status_func, $depth, $get_all, $update, $no_ignore, $ignore_externals, $changelists, $pool);
+=item $client-E<gt>status3($path, $revision, \&status_func, $depth, $get_all, $update, $no_ignore, $ignore_externals, $changelists, $pool);
 
-Similar to $ctx-E<gt>status4(), without the pool parameter to the callback and the return of the callback is ignored. 
+Similar to $client-E<gt>status4(), without the pool parameter to the callback and the return of the callback is ignored. 
 
-=item $ctx-E<gt>status4($path, $revision, \&status_func, $depth, $get_all, $update, $no_ignore, $ignore_externals, $changelists, $pool);
+=item $client-E<gt>status4($path, $revision, \&status_func, $depth, $get_all, $update, $no_ignore, $ignore_externals, $changelists, $pool);
 
 Given $path to a working copy directory (or single file), call status_func()
 with a set of svn_wc_status2_t objects which describe the status of $path and
@@ -867,39 +963,7 @@ object which is cleaned beteween invocat
 The return of the status_func subroutine can be a svn_error_t object created by
 SVN::Error::create in order to propogate an error up.
 
-=item $ctx-E<gt>info($path_or_url, $peg_revision, $revision, \&receiver, $recurse);
-
-Invokes \&receiver passing it information about $path_or_url for $revision.
-The information returned is system-generated metadata, not the sort of
-"property" metadata created by users.  For methods available on the object
-passed to \&receiver, B<see svn_info_t>.
-
-If both revision arguments are either svn_opt_revision_unspecified or NULL,
-then information will be pulled solely from the working copy; no network
-connections will be made.
-
-Otherwise, information will be pulled from a repository.  The actual node
-revision selected is determined by the $path_or_url as it exists in
-$peg_revision.  If $peg_revision is undef, then it defaults to HEAD for URLs
-or WORKING for WC targets.
-
-If $path_or_url is not a local path, then if $revision is PREV (or some other
-kind that requires a local path), an error will be returned, because the
-desired revision cannot be determined.
-
-Uses the authentication baton cached in ctx to authenticate against the
-repository.
-
-If $recurse is true (and $path_or_url is a directory) this will be a recursive
-operation, invoking $receiver on each child.
-
- my $receiver = sub {
-     my( $path, $info, $pool ) = @_;
-     print "Current revision of $path is ", $info->rev, "\n";
- };
- $ctx->info( 'foo/bar.c', undef, 'WORKING', $receiver, 0 );
-
-=item $ctx-E<gt>switch($path, $url, $revision, $recursive, $pool);
+=item $client-E<gt>switch($path, $url, $revision, $recursive, $pool);
 
 Switch working tree $path to $url at $revision.
 
@@ -918,24 +982,24 @@ scratch.
 Returns the value of the revision to which the working copy was actually
 switched.
 
-=item $ctx-E<gt>update($path, $revision, $recursive, $pool)
+=item $client-E<gt>update($path, $revision, $recursive, $pool)
 
-Similar to $ctx-E<gt>update2() except that it accepts only a single target in
+Similar to $client-E<gt>update2() except that it accepts only a single target in
 $path, returns a single revision, and $ignore_externals is always set to FALSE.
 
-=item $ctx-E<gt>update2($paths, $revision, $recursive, $ignore_externals, $pool)
+=item $client-E<gt>update2($paths, $revision, $recursive, $ignore_externals, $pool)
 
-Similar to $ctx-E<gt>update3() but with $allow_unver_obstructions always set to
+Similar to $client-E<gt>update3() but with $allow_unver_obstructions always set to
 FALSE, $depth_is_sticky to FALSE, and $depth set according to $recursive: if
 $recursive is TRUE, set $depth to $SVN::Depth::infinity, if $recursive is
 FALSE, set $depth to $SVN::Depth::files.
 
-=item $ctx-E<gt>update3($paths, $revision, $depth, $depth_is_sticky, $ignore_externals, $allow_unver_obstructions, $pool)
+=item $client-E<gt>update3($paths, $revision, $depth, $depth_is_sticky, $ignore_externals, $allow_unver_obstructions, $pool)
 
-Similar to $ctx-E<gt>update4() but with $make_parents always set to FALSE and
+Similar to $client-E<gt>update4() but with $make_parents always set to FALSE and
 $adds_as_modification set to TRUE.
 
-=item $ctx-E<gt>update4($paths, $revision, $depth, $depth_is_sticky, $ignore_externals, $allow_unver_obstructions, $adds_as_modification, $make_parents)
+=item $client-E<gt>update4($paths, $revision, $depth, $depth_is_sticky, $ignore_externals, $allow_unver_obstructions, $adds_as_modification, $make_parents)
 
 Update working trees $paths to $revision.
 
@@ -989,7 +1053,7 @@ set to the revision to which $revision w
 element of $paths.
 
 
-=item $ctx-E<gt>url_from_path($target, $pool); or SVN::Client::url_from_path($target, $pool);
+=item $client-E<gt>url_from_path($target, $pool); or SVN::Client::url_from_path($target, $pool);
 
 Returns the URL for $target.
 
@@ -999,21 +1063,21 @@ If $target is a versioned item, it retur
 
 If $target is unversioned (has no entry), returns undef.
 
-=item $ctx-E<gt>uuid_from_path($path, $adm_access, $pool);
+=item $client-E<gt>uuid_from_path($path, $adm_access, $pool);
 
 Return the repository uuid for working-copy $path, allocated in $pool.
 
 Use $adm_access to retrieve the uuid from $path's entry; if not present in the
-entry, then call $ctx-E<gt>uuid_from_url() to retrieve, using the entry's URL.
+entry, then call $client-E<gt>uuid_from_url() to retrieve, using the entry's URL.
 
-Note: The only reason this function falls back on $ctx-E<gt>uuid_from_url is for
+Note: The only reason this function falls back on $client-E<gt>uuid_from_url is for
 compatibility purposes.  Old working copies may not have uuids in the entries
 files.
 
 Note: This method probably doesn't work right now without a lot of pain,
 because SVN::Wc is incomplete and it requires an adm_access object from it.
 
-=item $ctx-E<gt>uuid_from_url($url, $pool);
+=item $client-E<gt>uuid_from_url($url, $pool);
 
 Return repository uuid for url.
 
@@ -1022,7 +1086,7 @@ Return repository uuid for url.
 =cut
 
 # import methods into our name space and wrap them in a closure
-# to support method calling style $ctx->log()
+# to support method calling style $client->log()
 foreach my $function (@_all_fns)
 {
     no strict 'refs';
@@ -1102,7 +1166,7 @@ current value.
 
 =over 4
 
-=item $ctx-E<gt>auth(SVN::Client::get_username_provider());
+=item $client-E<gt>auth(SVN::Client::get_username_provider());
 
 Provides access to the auth_baton in the svn_client_ctx_t attached to the
 SVN::Client object.
@@ -1143,7 +1207,7 @@ sub auth
     return $self->{'ctx'}->auth_baton();
 }
 
-=item $ctx-E<gt>notify(\&notify);
+=item $client-E<gt>notify(\&notify);
 
 Sets the notify callback for the client context to a code reference that
 you pass.  It always returns the current codereference set.
@@ -1174,7 +1238,7 @@ sub notify {
     return ${$self->{'notify_callback'}};
 }
 
-=item $ctx-E<gt>log_msg(\&log_msg)
+=item $client-E<gt>log_msg(\&log_msg)
 
 Sets the log_msg callback for the client context to a code reference that you
 pass.  It always returns the current codereference set.
@@ -1207,7 +1271,7 @@ sub log_msg {
     return ${$self->{'log_msg_callback'}};
 }
 
-=item $ctx-E<gt>cancel(\&cancel)
+=item $client-E<gt>cancel(\&cancel)
 
 Sets the cancellation callback for the client context to a code reference that you
 pass.  It always returns the current codereference set.
@@ -1240,7 +1304,7 @@ sub cancel {
     return ${$self->{'cancel_callback'}};
 }
 
-=item $ctx-E<gt>pool(new SVN::Pool);
+=item $client-E<gt>pool(new SVN::Pool);
 
 Method that sets or gets the default pool that is passed to method calls
 requiring a pool, but which were not explicitly passed one.
@@ -1261,7 +1325,7 @@ sub pool
         return $self->{'pool'} = shift;
     }
 }
-=item $ctx-E<gt>config(SVN::Core::config_get_config(undef));
+=item $client-E<gt>config(SVN::Core::config_get_config(undef));
 
 Method that allows access to the config member of the svn_client_ctx_t.
 Accepts a Perl hash to set, which is what functions like
@@ -1509,11 +1573,11 @@ use SVN::Base qw(Client svn_client_commi
 
 =over 8
 
-=item $citem-E<gt>path()
+=item $commit_item-E<gt>path()
 
 Absolute working-copy path of item.
 
-=item $citem-E<gt>kind()
+=item $commit_item-E<gt>kind()
 
 An integer representing the type of node it is (file/dir).
 Can be one of the following constants:
@@ -1522,19 +1586,19 @@ $SVN::Node::file
 $SVN::Node::dir
 $SVN::Node::unknown
 
-=item $citem-E<gt>url()
+=item $commit_item-E<gt>url()
 
 Commit URL for this item.
 
-=item $citem-E<gt>revision()
+=item $commit_item-E<gt>revision()
 
 Revision (copyfrom_rev if state_flags has IS_COPY set).
 
-=item $citem-E<gt>copyform_url();
+=item $commit_item-E<gt>copyform_url();
 
 CopyFrom URL
 
-=item $citem-E<gt>state_flags();
+=item $commit_item-E<gt>state_flags();
 
 One of several state flags:
 $SVN::Client::COMMIT_ITEM_ADD
@@ -1543,12 +1607,12 @@ $SVN::Client::COMMIT_ITEM_TEXT_MODS
 $SVN::Client::COMMIT_ITEM_PROP_MODS
 $SVN::Client::COMMIT_ITEM_IS_COPY
 
-=item $citem-E<gt>incoming_prop_changes()
+=item $commit_item-E<gt>incoming_prop_changes()
 
 A reference to an array of svn_prop_t objects representing changes to
 WC properties.
 
-=item $citem-E<gt>outgoing_prop_changes()
+=item $commit_item-E<gt>outgoing_prop_changes()
 
 A reference to an array of svn_prop_t objects representing extra
 changes to properties in the repository (which are not necessarily
@@ -1565,15 +1629,15 @@ use SVN::Base qw(Client svn_client_commi
 
 =over 4
 
-=item $cinfo-E<gt>revision()
+=item $commit_info-E<gt>revision()
 
 Just committed revision.
 
-=item $cinfo-E<gt>date()
+=item $commit_info-E<gt>date()
 
 Server-Side date of the commit as a string.
 
-=item $cinfo-E<gt>author()
+=item $commit_info-E<gt>author()
 
 Author of the commit.
 
@@ -1641,6 +1705,136 @@ File or dir?
 
 =back
 
+=head2 ADDITIONAL METHODS
+
+The following methods work, but are not currently documented in this
+file.  Please consult the svn_client.h section in the Subversion API
+for more details.
+
+=over 4
+
+=item $client-E<gt>add_to_changelist(...)
+
+=item $client-E<gt>blame2(...)
+
+=item $client-E<gt>blame3(...)
+
+=item $client-E<gt>blame4(...)
+
+=item $client-E<gt>cat2(...)
+
+=item $client-E<gt>commit2(...)
+
+=item $client-E<gt>commit3(...)
+
+=item $client-E<gt>commit4(...)
+
+=item $client-E<gt>copy2(...)
+
+=item $client-E<gt>copy3(...)
+
+=item $client-E<gt>copy4(...)
+
+=item $client-E<gt>create_context(...)
+
+=item $client-E<gt>delete2(...)
+
+=item $client-E<gt>delete3(...)
+
+=item $client-E<gt>diff2(...)
+
+=item $client-E<gt>diff3(...)
+
+=item $client-E<gt>diff4(...)
+
+=item $client-E<gt>diff_peg(...)
+
+=item $client-E<gt>diff_peg2(...)
+
+=item $client-E<gt>diff_peg3(...)
+
+=item $client-E<gt>diff_peg4(...)
+
+=item $client-E<gt>diff_summarize2(...)
+
+=item $client-E<gt>diff_summarize_dup(...)
+
+=item $client-E<gt>diff_summarize_peg(...)
+
+=item $client-E<gt>diff_summarize_peg2(...)
+
+=item $client-E<gt>export2(...)
+
+=item $client-E<gt>export3(...)
+
+=item $client-E<gt>export4(...)
+
+=item $client-E<gt>import2(...)
+
+=item $client-E<gt>import3(...)
+
+=item $client-E<gt>info2(...)
+
+=item $client-E<gt>invoke_blame_receiver(...)
+
+=item $client-E<gt>invoke_blame_receiver2(...)
+
+=item $client-E<gt>invoke_diff_summarize_func(...)
+
+=item $client-E<gt>list(...)
+
+=item $client-E<gt>list2(...)
+
+=item $client-E<gt>ls2(...)
+
+=item $client-E<gt>ls3(...)
+
+=item $client-E<gt>merge2(...)
+
+=item $client-E<gt>merge3(...)
+
+=item $client-E<gt>merge_peg(...)
+
+=item $client-E<gt>merge_peg2(...)
+
+=item $client-E<gt>merge_peg3(...)
+
+=item $client-E<gt>move2(...)
+
+=item $client-E<gt>move3(...)
+
+=item $client-E<gt>move4(...)
+
+=item $client-E<gt>move5(...)
+
+=item $client-E<gt>open_ra_session(...)
+
+=item $client-E<gt>propget2(...)
+
+=item $client-E<gt>propget3(...)
+
+=item $client-E<gt>proplist2(...)
+
+=item $client-E<gt>proplist3(...)
+
+=item $client-E<gt>propset2(...)
+
+=item $client-E<gt>propset3(...)
+
+=item $client-E<gt>remove_from_changelist(...)
+
+=item $client-E<gt>resolve(...)
+
+=item $client-E<gt>revert2(...)
+
+=item $client-E<gt>switch2(...)
+
+=item $client-E<gt>unlock(...)
+
+=item $client-E<gt>version(...)
+
+=back
+
 =head1 TODO
 
 * Better support for the config.

Modified: subversion/branches/javahl-1.8-extensions/subversion/include/svn_version.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/include/svn_version.h?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/include/svn_version.h (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/include/svn_version.h Fri Jul 26 01:03:26 2013
@@ -72,7 +72,7 @@ extern "C" {
  *
  * @since New in 1.1.
  */
-#define SVN_VER_PATCH      1
+#define SVN_VER_PATCH      2
 
 
 /** @deprecated Provided for backward compatibility with the 1.0 API. */

Modified: subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/commit.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/commit.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/commit.c Fri Jul 26 01:03:26 2013
@@ -240,6 +240,13 @@ post_process_commit_item(svn_wc_committe
   remove_lock = (! keep_locks && (item->state_flags
                                        & SVN_CLIENT_COMMIT_ITEM_LOCK_TOKEN));
 
+  /* When the node was deleted (or replaced), we need to always remove the 
+     locks, as they're invalidated on the server. We cannot honor the 
+     SVN_CLIENT_COMMIT_ITEM_LOCK_TOKEN flag here because it does not tell
+     us whether we have locked children. */
+  if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_DELETE)
+    remove_lock = TRUE;
+
   return svn_wc_queue_committed3(queue, wc_ctx, item->path,
                                  loop_recurse, item->incoming_prop_changes,
                                  remove_lock, !keep_changelists,

Modified: subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/diff_local.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/diff_local.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/diff_local.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/diff_local.c Fri Jul 26 01:03:26 2013
@@ -607,7 +607,10 @@ svn_client__arbitrary_nodes_diff(const c
   if (kind1 != kind2)
     return svn_error_createf(SVN_ERR_NODE_UNEXPECTED_KIND, NULL,
                              _("'%s' is not the same node kind as '%s'"),
-                             local_abspath1, local_abspath2);
+                             svn_dirent_local_style(local_abspath1,
+                                                    scratch_pool),
+                             svn_dirent_local_style(local_abspath2,
+                                                    scratch_pool));
 
   if (depth == svn_depth_unknown)
     depth = svn_depth_infinity;
@@ -627,7 +630,10 @@ svn_client__arbitrary_nodes_diff(const c
   else
     return svn_error_createf(SVN_ERR_NODE_UNEXPECTED_KIND, NULL,
                              _("'%s' is not a file or directory"),
-                             kind1 == svn_node_none ?
-                              local_abspath1 : local_abspath2);
+                             kind1 == svn_node_none
+                               ? svn_dirent_local_style(local_abspath1,
+                                                        scratch_pool)
+                               : svn_dirent_local_style(local_abspath2,
+                                                        scratch_pool));
   return SVN_NO_ERROR;
 }

Modified: subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/merge.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/merge.c Fri Jul 26 01:03:26 2013
@@ -1307,6 +1307,9 @@ record_tree_conflict(merge_cmd_baton_t *
 {
   svn_wc_context_t *wc_ctx = merge_b->ctx->wc_ctx;
 
+  if (merge_b->record_only)
+    return SVN_NO_ERROR;
+
   if (merge_b->merge_source.ancestral
       || merge_b->reintegrate_merge)
     {
@@ -1316,8 +1319,7 @@ record_tree_conflict(merge_cmd_baton_t *
   alloc_and_store_path(&merge_b->conflicted_paths, local_abspath,
                        merge_b->pool);
 
-
-  if (!merge_b->record_only && !merge_b->dry_run)
+  if (!merge_b->dry_run)
     {
        svn_wc_conflict_description2_t *conflict;
        const svn_wc_conflict_version_t *left;

Modified: subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/switch.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/switch.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/switch.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/libsvn_client/switch.c Fri Jul 26 01:03:26 2013
@@ -241,7 +241,7 @@ switch_internal(svn_revnum_t *result_rev
         return svn_error_createf(SVN_ERR_CLIENT_UNRELATED_RESOURCES, NULL,
                                  _("'%s' shares no common ancestry with '%s'"),
                                  switch_url,
-                                 svn_dirent_dirname(local_abspath, pool));
+                                 svn_dirent_local_style(local_abspath, pool));
     }
 
   wcroot_iprops = apr_hash_make(pool);

Modified: subversion/branches/javahl-1.8-extensions/subversion/libsvn_fs_fs/tree.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/libsvn_fs_fs/tree.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/libsvn_fs_fs/tree.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/libsvn_fs_fs/tree.c Fri Jul 26 01:03:26 2013
@@ -151,7 +151,7 @@ typedef struct cache_entry_t
 {
   /* hash value derived from PATH, REVISION.
      Used to short-circuit failed lookups. */
-  long int hash_value;
+  apr_uint32_t hash_value;
 
   /* revision to which the NODE belongs */
   svn_revnum_t revision;
@@ -340,7 +340,12 @@ cache_lookup( fs_fs_dag_cache_t *cache
 {
   apr_size_t i, bucket_index;
   apr_size_t path_len = strlen(path);
-  long int hash_value = revision;
+  apr_uint32_t hash_value = (apr_uint32_t)revision;
+
+#if SVN_UNALIGNED_ACCESS_IS_OK
+  /* "randomizing" / distributing factor used in our hash function */
+  const apr_uint32_t factor = 0xd1f3da69;
+#endif
 
   /* optimistic lookup: hit the same bucket again? */
   cache_entry_t *result = &cache->buckets[cache->last_hit];
@@ -353,11 +358,25 @@ cache_lookup( fs_fs_dag_cache_t *cache
 
   /* need to do a full lookup.  Calculate the hash value
      (HASH_VALUE has been initialized to REVISION). */
-  for (i = 0; i + 4 <= path_len; i += 4)
-    hash_value = hash_value * 0xd1f3da69 + *(const apr_uint32_t*)(path + i);
+  i = 0;
+#if SVN_UNALIGNED_ACCESS_IS_OK
+  /* We relax the dependency chain between iterations by processing
+     two chunks from the input per hash_value self-multiplication.
+     The HASH_VALUE update latency is now 1 MUL latency + 1 ADD latency
+     per 2 chunks instead of 1 chunk.
+   */
+  for (; i + 8 <= path_len; i += 8)
+    hash_value = hash_value * factor * factor
+               + (  *(const apr_uint32_t*)(path + i) * factor
+                  + *(const apr_uint32_t*)(path + i + 4));
+#endif
 
   for (; i < path_len; ++i)
-    hash_value = hash_value * 33 + path[i];
+    /* Help GCC to minimize the HASH_VALUE update latency by splitting the
+       MUL 33 of the naive implementation: h = h * 33 + path[i].  This
+       shortens the dependency chain from 1 shift + 2 ADDs to 1 shift + 1 ADD.
+     */
+    hash_value = hash_value * 32 + (hash_value + (unsigned char)path[i]);
 
   bucket_index = hash_value + (hash_value >> 16);
   bucket_index = (bucket_index + (bucket_index >> 8)) % BUCKET_COUNT;

Modified: subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra/util.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra/util.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra/util.c Fri Jul 26 01:03:26 2013
@@ -38,6 +38,26 @@
 #include "svn_private_config.h"
 #include "private/svn_ra_private.h"
 
+static const char *
+get_path(const char *path_or_url,
+         svn_ra_session_t *ra_session,
+         apr_pool_t *pool)
+{
+  if (path_or_url == NULL)
+    {
+      svn_error_t *err = svn_ra_get_session_url(ra_session, &path_or_url,
+                                                pool);
+      if (err)
+        {
+          /* The SVN_ERR_UNSUPPORTED_FEATURE error in the caller is more
+             important, so dummy up the session's URL and chuck this error. */
+          svn_error_clear(err);
+          return _("<repository>");
+        }
+    }
+  return path_or_url;
+}
+
 svn_error_t *
 svn_ra__assert_mergeinfo_capable_server(svn_ra_session_t *ra_session,
                                         const char *path_or_url,
@@ -48,18 +68,7 @@ svn_ra__assert_mergeinfo_capable_server(
                                 SVN_RA_CAPABILITY_MERGEINFO, pool));
   if (! mergeinfo_capable)
     {
-      if (path_or_url == NULL)
-        {
-          svn_error_t *err = svn_ra_get_session_url(ra_session, &path_or_url,
-                                                    pool);
-          if (err)
-            {
-              /* The SVN_ERR_UNSUPPORTED_FEATURE error is more important,
-                 so dummy up the session's URL and chuck this error. */
-              svn_error_clear(err);
-              path_or_url = "<repository>";
-            }
-        }
+      path_or_url = get_path(path_or_url, ra_session, pool);
       return svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
                                _("Retrieval of mergeinfo unsupported by '%s'"),
                                svn_path_is_url(path_or_url)
@@ -84,12 +93,16 @@ svn_ra__assert_capable_server(svn_ra_ses
       svn_boolean_t has;
       SVN_ERR(svn_ra_has_capability(ra_session, &has, capability, pool));
       if (! has)
-        return svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
-                               _("The '%s' feature is not supported by '%s'"),
-                               capability,
-                               svn_path_is_url(path_or_url)
-                                  ? path_or_url
-                                  : svn_dirent_local_style(path_or_url, pool));
+        {
+          path_or_url = get_path(path_or_url, ra_session, pool);
+          return svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
+                                 _("The '%s' feature is not supported by '%s'"),
+                                 capability,
+                                 svn_path_is_url(path_or_url)
+                                    ? path_or_url
+                                    : svn_dirent_local_style(path_or_url,
+                                                             pool));
+        }
     }
   return SVN_NO_ERROR;
 }

Modified: subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/commit.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/commit.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/commit.c Fri Jul 26 01:03:26 2013
@@ -2269,7 +2269,9 @@ abort_edit(void *edit_baton,
       && handler->sline.code != 404
       )
     {
-      SVN_ERR_MALFUNCTION();
+      return svn_error_createf(SVN_ERR_RA_DAV_MALFORMED_DATA, NULL,
+                               _("DELETE returned unexpected status: %d"),
+                               handler->sline.code);
     }
 
   return SVN_NO_ERROR;

Modified: subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/options.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/options.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/options.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/options.c Fri Jul 26 01:03:26 2013
@@ -520,6 +520,65 @@ svn_ra_serf__exchange_capabilities(svn_r
 }
 
 
+static svn_error_t *
+create_simple_options_body(serf_bucket_t **body_bkt,
+                           void *baton,
+                           serf_bucket_alloc_t *alloc,
+                           apr_pool_t *pool)
+{
+  serf_bucket_t *body;
+  serf_bucket_t *s;
+
+  body = serf_bucket_aggregate_create(alloc);
+  svn_ra_serf__add_xml_header_buckets(body, alloc);
+
+  s = SERF_BUCKET_SIMPLE_STRING("<D:options xmlns:D=\"DAV:\" />", alloc);
+  serf_bucket_aggregate_append(body, s);
+
+  *body_bkt = body;
+  return SVN_NO_ERROR;
+}
+
+
+svn_error_t *
+svn_ra_serf__probe_proxy(svn_ra_serf__session_t *serf_sess,
+                         apr_pool_t *scratch_pool)
+{
+  svn_ra_serf__handler_t *handler;
+
+  handler = apr_pcalloc(scratch_pool, sizeof(*handler));
+  handler->handler_pool = scratch_pool;
+  handler->method = "OPTIONS";
+  handler->path = serf_sess->session_url.path;
+  handler->conn = serf_sess->conns[0];
+  handler->session = serf_sess;
+
+  /* We don't care about the response body, so discard it.  */
+  handler->response_handler = svn_ra_serf__handle_discard_body;
+
+  /* We need a simple body, in order to send it in chunked format.  */
+  handler->body_delegate = create_simple_options_body;
+
+  /* No special headers.  */
+
+  SVN_ERR(svn_ra_serf__context_run_one(handler, scratch_pool));
+  /* Some versions of nginx in reverse proxy mode will return 411. They want
+     a Content-Length header, rather than chunked requests. We can keep other
+     HTTP/1.1 features, but will disable the chunking.  */
+  if (handler->sline.code == 411)
+    {
+      serf_sess->using_chunked_requests = FALSE;
+
+      return SVN_NO_ERROR;
+    }
+  SVN_ERR(svn_ra_serf__error_on_status(handler->sline,
+                                       handler->path,
+                                       handler->location));
+
+  return SVN_NO_ERROR;
+}
+
+
 svn_error_t *
 svn_ra_serf__has_capability(svn_ra_session_t *ra_session,
                             svn_boolean_t *has,

Modified: subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/ra_serf.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/ra_serf.h?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/ra_serf.h (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/libsvn_ra_serf/ra_serf.h Fri Jul 26 01:03:26 2013
@@ -144,6 +144,13 @@ struct svn_ra_serf__session_t {
      HTTP/1.0. Thus, we cannot send chunked requests.  */
   svn_boolean_t http10;
 
+  /* Should we use Transfer-Encoding: chunked for HTTP/1.1 servers. */
+  svn_boolean_t using_chunked_requests;
+
+  /* Do we need to detect whether the connection supports chunked requests?
+     i.e. is there a (reverse) proxy that does not support them?  */
+  svn_boolean_t detect_chunking;
+
   /* Our Version-Controlled-Configuration; may be NULL until we know it. */
   const char *vcc_url;
 
@@ -186,7 +193,7 @@ struct svn_ra_serf__session_t {
   const char *activity_collection_url;
 
   /* Are we using a proxy? */
-  int using_proxy;
+  svn_boolean_t using_proxy;
 
   const char *proxy_username;
   const char *proxy_password;
@@ -1334,6 +1341,14 @@ svn_ra_serf__run_merge(const svn_commit_
 
 /** OPTIONS-related functions **/
 
+/* When running with a proxy, we may need to detect and correct for problems.
+   This probing function will send a simple OPTIONS request to detect problems
+   with the connection.  */
+svn_error_t *
+svn_ra_serf__probe_proxy(svn_ra_serf__session_t *serf_sess,
+                         apr_pool_t *scratch_pool);
+
+
 /* On HTTPv2 connections, run an OPTIONS request over CONN to fetch the
    current youngest revnum, returning it in *YOUNGEST.