You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2013/10/30 02:33:40 UTC

svn commit: r1536950 [1/6] - in /subversion/branches/log-addressing: ./ build/ build/ac-macros/ build/generator/ notes/http-and-webdav/ subversion/bindings/javahl/ subversion/bindings/javahl/native/ subversion/bindings/javahl/src/org/apache/subversion/...

Author: stefan2
Date: Wed Oct 30 01:33:37 2013
New Revision: 1536950

URL: http://svn.apache.org/r1536950
Log:
On the fsfs-improvements branch: sync with parent branch.
Resolved a few minor conflicts in the testing code.

Added:
    subversion/branches/log-addressing/subversion/tests/libsvn_subr/sqlite-test.c
      - copied unchanged from r1536949, subversion/branches/fsfs-improvements/subversion/tests/libsvn_subr/sqlite-test.c
Removed:
    subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIThreadData.cpp
    subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIThreadData.h
    subversion/branches/log-addressing/subversion/bindings/javahl/native/libsvnjavahl.la.c
Modified:
    subversion/branches/log-addressing/   (props changed)
    subversion/branches/log-addressing/CHANGES
    subversion/branches/log-addressing/Makefile.in
    subversion/branches/log-addressing/build.conf
    subversion/branches/log-addressing/build/ac-macros/compiler.m4
    subversion/branches/log-addressing/build/generator/gen_win_dependencies.py
    subversion/branches/log-addressing/build/run_ctypesgen.sh
    subversion/branches/log-addressing/configure.ac
    subversion/branches/log-addressing/gen-make.py
    subversion/branches/log-addressing/notes/http-and-webdav/webdav-protocol
    subversion/branches/log-addressing/subversion/bindings/javahl/README
    subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIStackElement.cpp
    subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIStackElement.h
    subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIUtil.cpp
    subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIUtil.h
    subversion/branches/log-addressing/subversion/bindings/javahl/native/OperationContext.cpp
    subversion/branches/log-addressing/subversion/bindings/javahl/native/SVNClient.cpp
    subversion/branches/log-addressing/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.cpp
    subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java
    subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
    subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/RequestChannel.java
    subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ResponseChannel.java
    subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/TunnelChannel.java
    subversion/branches/log-addressing/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
    subversion/branches/log-addressing/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java
    subversion/branches/log-addressing/subversion/bindings/swig/perl/native/Makefile.PL.in
    subversion/branches/log-addressing/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
    subversion/branches/log-addressing/subversion/include/private/svn_auth_private.h
    subversion/branches/log-addressing/subversion/include/private/svn_dep_compat.h
    subversion/branches/log-addressing/subversion/include/private/svn_sqlite.h
    subversion/branches/log-addressing/subversion/include/private/svn_subr_private.h
    subversion/branches/log-addressing/subversion/include/private/svn_utf_private.h
    subversion/branches/log-addressing/subversion/include/svn_dirent_uri.h
    subversion/branches/log-addressing/subversion/include/svn_fs.h
    subversion/branches/log-addressing/subversion/include/svn_path.h
    subversion/branches/log-addressing/subversion/include/svn_ra.h
    subversion/branches/log-addressing/subversion/include/svn_types.h
    subversion/branches/log-addressing/subversion/include/svn_xml.h
    subversion/branches/log-addressing/subversion/libsvn_client/cmdline.c
    subversion/branches/log-addressing/subversion/libsvn_client/commit_util.c
    subversion/branches/log-addressing/subversion/libsvn_client/list.c
    subversion/branches/log-addressing/subversion/libsvn_client/merge.c
    subversion/branches/log-addressing/subversion/libsvn_client/mergeinfo.c
    subversion/branches/log-addressing/subversion/libsvn_client/patch.c
    subversion/branches/log-addressing/subversion/libsvn_delta/compat.c
    subversion/branches/log-addressing/subversion/libsvn_fs/editor.c
    subversion/branches/log-addressing/subversion/libsvn_fs/fs-loader.c
    subversion/branches/log-addressing/subversion/libsvn_fs_base/bdb/locks-table.c
    subversion/branches/log-addressing/subversion/libsvn_fs_base/lock.c
    subversion/branches/log-addressing/subversion/libsvn_fs_fs/caching.c
    subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs.c
    subversion/branches/log-addressing/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/log-addressing/subversion/libsvn_fs_fs/lock.c
    subversion/branches/log-addressing/subversion/libsvn_fs_fs/transaction.c
    subversion/branches/log-addressing/subversion/libsvn_fs_fs/tree.c
    subversion/branches/log-addressing/subversion/libsvn_fs_fs/util.c
    subversion/branches/log-addressing/subversion/libsvn_fs_x/   (props changed)
    subversion/branches/log-addressing/subversion/libsvn_fs_x/caching.c
    subversion/branches/log-addressing/subversion/libsvn_fs_x/changes.c
    subversion/branches/log-addressing/subversion/libsvn_fs_x/fs.c
    subversion/branches/log-addressing/subversion/libsvn_fs_x/fs_x.c
    subversion/branches/log-addressing/subversion/libsvn_fs_x/index.c
    subversion/branches/log-addressing/subversion/libsvn_fs_x/lock.c
    subversion/branches/log-addressing/subversion/libsvn_fs_x/noderevs.c
    subversion/branches/log-addressing/subversion/libsvn_fs_x/transaction.c
    subversion/branches/log-addressing/subversion/libsvn_fs_x/tree.c
    subversion/branches/log-addressing/subversion/libsvn_fs_x/util.c
    subversion/branches/log-addressing/subversion/libsvn_ra_local/ra_plugin.c
    subversion/branches/log-addressing/subversion/libsvn_ra_serf/commit.c
    subversion/branches/log-addressing/subversion/libsvn_ra_serf/getlocks.c
    subversion/branches/log-addressing/subversion/libsvn_ra_serf/locks.c
    subversion/branches/log-addressing/subversion/libsvn_ra_serf/log.c
    subversion/branches/log-addressing/subversion/libsvn_ra_serf/property.c
    subversion/branches/log-addressing/subversion/libsvn_ra_serf/serf.c
    subversion/branches/log-addressing/subversion/libsvn_ra_serf/update.c
    subversion/branches/log-addressing/subversion/libsvn_ra_serf/util.c
    subversion/branches/log-addressing/subversion/libsvn_ra_serf/util_error.c
    subversion/branches/log-addressing/subversion/libsvn_ra_svn/client.c
    subversion/branches/log-addressing/subversion/libsvn_ra_svn/cyrus_auth.c
    subversion/branches/log-addressing/subversion/libsvn_ra_svn/deprecated.c
    subversion/branches/log-addressing/subversion/libsvn_ra_svn/marshal.c
    subversion/branches/log-addressing/subversion/libsvn_repos/authz.c
    subversion/branches/log-addressing/subversion/libsvn_repos/commit.c
    subversion/branches/log-addressing/subversion/libsvn_repos/config_pool.c
    subversion/branches/log-addressing/subversion/libsvn_repos/dump.c
    subversion/branches/log-addressing/subversion/libsvn_repos/hooks.c
    subversion/branches/log-addressing/subversion/libsvn_repos/log.c
    subversion/branches/log-addressing/subversion/libsvn_repos/reporter.c
    subversion/branches/log-addressing/subversion/libsvn_repos/rev_hunt.c
    subversion/branches/log-addressing/subversion/libsvn_subr/auth.c
    subversion/branches/log-addressing/subversion/libsvn_subr/cache-memcache.c
    subversion/branches/log-addressing/subversion/libsvn_subr/checksum.c
    subversion/branches/log-addressing/subversion/libsvn_subr/cmdline.c
    subversion/branches/log-addressing/subversion/libsvn_subr/config.c
    subversion/branches/log-addressing/subversion/libsvn_subr/config_file.c
    subversion/branches/log-addressing/subversion/libsvn_subr/config_win.c
    subversion/branches/log-addressing/subversion/libsvn_subr/dirent_uri.c
    subversion/branches/log-addressing/subversion/libsvn_subr/error.c
    subversion/branches/log-addressing/subversion/libsvn_subr/file.c
    subversion/branches/log-addressing/subversion/libsvn_subr/io.c
    subversion/branches/log-addressing/subversion/libsvn_subr/log.c
    subversion/branches/log-addressing/subversion/libsvn_subr/mergeinfo.c
    subversion/branches/log-addressing/subversion/libsvn_subr/named_atomic.c
    subversion/branches/log-addressing/subversion/libsvn_subr/nls.c
    subversion/branches/log-addressing/subversion/libsvn_subr/opt.c
    subversion/branches/log-addressing/subversion/libsvn_subr/path.c
    subversion/branches/log-addressing/subversion/libsvn_subr/sqlite.c
    subversion/branches/log-addressing/subversion/libsvn_subr/sysinfo.c
    subversion/branches/log-addressing/subversion/libsvn_subr/time.c
    subversion/branches/log-addressing/subversion/libsvn_subr/utf.c
    subversion/branches/log-addressing/subversion/libsvn_subr/win32_crypto.c
    subversion/branches/log-addressing/subversion/libsvn_subr/win32_xlate.c
    subversion/branches/log-addressing/subversion/libsvn_wc/adm_files.c
    subversion/branches/log-addressing/subversion/libsvn_wc/externals.c
    subversion/branches/log-addressing/subversion/libsvn_wc/old-and-busted.c
    subversion/branches/log-addressing/subversion/libsvn_wc/relocate.c
    subversion/branches/log-addressing/subversion/libsvn_wc/upgrade.c
    subversion/branches/log-addressing/subversion/libsvn_wc/wc-queries.sql
    subversion/branches/log-addressing/subversion/libsvn_wc/wc_db.c
    subversion/branches/log-addressing/subversion/libsvn_wc/wc_db_pristine.c
    subversion/branches/log-addressing/subversion/mod_authz_svn/mod_authz_svn.c
    subversion/branches/log-addressing/subversion/mod_dav_svn/authz.c
    subversion/branches/log-addressing/subversion/mod_dav_svn/lock.c
    subversion/branches/log-addressing/subversion/mod_dav_svn/merge.c
    subversion/branches/log-addressing/subversion/mod_dav_svn/mirror.c
    subversion/branches/log-addressing/subversion/mod_dav_svn/mod_dav_svn.c
    subversion/branches/log-addressing/subversion/mod_dav_svn/reports/log.c
    subversion/branches/log-addressing/subversion/mod_dav_svn/reports/replay.c
    subversion/branches/log-addressing/subversion/mod_dav_svn/reports/update.c
    subversion/branches/log-addressing/subversion/mod_dav_svn/repos.c
    subversion/branches/log-addressing/subversion/mod_dav_svn/version.c
    subversion/branches/log-addressing/subversion/svn/conflict-callbacks.c
    subversion/branches/log-addressing/subversion/svn/info-cmd.c
    subversion/branches/log-addressing/subversion/svn/notify.c
    subversion/branches/log-addressing/subversion/svn/status.c
    subversion/branches/log-addressing/subversion/svnauth/svnauth.c
    subversion/branches/log-addressing/subversion/svndumpfilter/svndumpfilter.c
    subversion/branches/log-addressing/subversion/svnmucc/svnmucc.c
    subversion/branches/log-addressing/subversion/svnserve/serve.c
    subversion/branches/log-addressing/subversion/tests/cmdline/diff_tests.py
    subversion/branches/log-addressing/subversion/tests/cmdline/entries-dump.c
    subversion/branches/log-addressing/subversion/tests/cmdline/log_tests.py
    subversion/branches/log-addressing/subversion/tests/cmdline/merge_tests.py
    subversion/branches/log-addressing/subversion/tests/cmdline/move_tests.py
    subversion/branches/log-addressing/subversion/tests/cmdline/svnadmin_tests.py
    subversion/branches/log-addressing/subversion/tests/cmdline/svntest/main.py
    subversion/branches/log-addressing/subversion/tests/libsvn_client/   (props changed)
    subversion/branches/log-addressing/subversion/tests/libsvn_client/client-test.c
    subversion/branches/log-addressing/subversion/tests/libsvn_delta/random-test.c
    subversion/branches/log-addressing/subversion/tests/libsvn_diff/   (props changed)
    subversion/branches/log-addressing/subversion/tests/libsvn_diff/diff-diff3-test.c
    subversion/branches/log-addressing/subversion/tests/libsvn_fs_fs/   (props changed)
    subversion/branches/log-addressing/subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
    subversion/branches/log-addressing/subversion/tests/libsvn_fs_x/   (props changed)
    subversion/branches/log-addressing/subversion/tests/libsvn_fs_x/fs-x-pack-test.c
    subversion/branches/log-addressing/subversion/tests/libsvn_ra_local/ra-local-test.c
    subversion/branches/log-addressing/subversion/tests/libsvn_repos/repos-test.c
    subversion/branches/log-addressing/subversion/tests/libsvn_subr/   (props changed)
    subversion/branches/log-addressing/subversion/tests/libsvn_subr/auth-test.c
    subversion/branches/log-addressing/subversion/tests/libsvn_subr/config-test.c
    subversion/branches/log-addressing/subversion/tests/libsvn_subr/dirent_uri-test.c
    subversion/branches/log-addressing/subversion/tests/libsvn_subr/path-test.c
    subversion/branches/log-addressing/subversion/tests/libsvn_subr/translate-test.c
    subversion/branches/log-addressing/subversion/tests/libsvn_wc/entries-compat.c
    subversion/branches/log-addressing/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/log-addressing/subversion/tests/libsvn_wc/utils.c
    subversion/branches/log-addressing/subversion/tests/libsvn_wc/wc-queries-test.c
    subversion/branches/log-addressing/subversion/tests/svn_test.h
    subversion/branches/log-addressing/subversion/tests/svn_test_main.c
    subversion/branches/log-addressing/tools/client-side/svn-bench/notify.c
    subversion/branches/log-addressing/tools/dev/fsfs-reorg.c
    subversion/branches/log-addressing/tools/dev/unix-build/Makefile.svn
    subversion/branches/log-addressing/tools/server-side/fsfs-stats.c
    subversion/branches/log-addressing/tools/server-side/svn-populate-node-origins-index.c
    subversion/branches/log-addressing/tools/server-side/svn-rep-sharing-stats.c

Propchange: subversion/branches/log-addressing/
------------------------------------------------------------------------------
  Merged /subversion/branches/fsfs-improvements:r1532584-1536949
  Merged /subversion/trunk:r1532580-1536946

Modified: subversion/branches/log-addressing/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/CHANGES?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/CHANGES (original)
+++ subversion/branches/log-addressing/CHANGES Wed Oct 30 01:33:37 2013
@@ -26,6 +26,43 @@ http://svn.apache.org/repos/asf/subversi
   - Bindings:
 
 
+Version 1.8.4
+(29 October 2013, from /branches/1.8.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.8.4
+
+ User-visible changes:
+  - Client- and server-side bugfixes:
+    * fix assertion on urls of the form 'file://./' (r1516806)
+    * stop linking against psapi.dll on Windows (r1534102)
+    * translation updates for Swedish
+
+  - Client-side bugfixes:
+    * revert: fix problems reverting moves (issue #4436)
+    * update: fix assertion when file external access is denied (issue #4422)
+    * merge: reduce network connections for automatic merge (r1468980 et al)
+    * merge: fix path corruption during reintegration (r1523666)
+    * mergeinfo: fix crash (r1519955)
+    * ra_serf: verify the result of xml parsing (r1501199 et al)
+    * ra_serf: improve error messages during commit (r1526439)
+    * ra_local: fix error with repository in Windows drive root (r1518184)
+    * fix crash on windows when piped command is interrupted (r1522892)
+    * fix crash in the crash handler on windows (r1532023)
+    * fix assertion when upgrading old working copies (r1520529)
+
+  - Server-side bugfixes:
+    * hotcopy: cleanup unpacked revprops with '--incremental' (r1512300 et al)
+    * fix OOM on concurrent requests at threaded server start (r1527103 et al)
+    * fsfs: improve error message when unsupported fsfs format found (r1534158)
+    * fix memory problem in 3rd party FS module loader (r1519615 et al)
+
+ Developer-visible changes:
+  - General:
+    * allow compiling against serf 1.3 and later on Windows (r1517123)
+
+  - Bindings:
+    * javahl: canonicalize path for streamFileContent method (r1524869)
+
+
 Version 1.8.3
 (29 August 2013, from /branches/1.8.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.8.3

Modified: subversion/branches/log-addressing/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/Makefile.in?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/Makefile.in (original)
+++ subversion/branches/log-addressing/Makefile.in Wed Oct 30 01:33:37 2013
@@ -108,6 +108,7 @@ PACKAGE_VERSION=@PACKAGE_VERSION@
 
 CC = @CC@
 CXX = @CXX@
+CPP = @CPP@
 EXEEXT = @EXEEXT@
 
 SHELL = @SHELL@
@@ -181,6 +182,7 @@ CXXMAINTAINERFLAGS = @CXXMAINTAINERFLAGS
 CPPFLAGS = @CPPFLAGS@ $(EXTRA_CPPFLAGS)
 LDFLAGS = @LDFLAGS@ $(EXTRA_LDFLAGS)
 SWIG_LDFLAGS = @SWIG_LDFLAGS@ $(EXTRA_SWIG_LDFLAGS)
+SWIG_CPPFLAGS = @SWIG_CPPFLAGS@ $(EXTRA_CPPFLAGS)
 
 COMPILE = $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CMAINTAINERFLAGS) $(CFLAGS) $(INCLUDES)
 COMPILE_NOWARN = $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CNOWARNFLAGS) $(CFLAGS) $(INCLUDES)
@@ -205,6 +207,19 @@ COMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXF
 COMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS)
 COMPILE_JAVAHL_JAVAH = $(JAVAH)
 
+# export an env variable so that the tests can run without being installed
+TEST_SHLIB_VAR_JAVAHL=\
+  if [ "@SVN_APR_SHLIB_PATH_VAR@" = "DYLD_LIBRARY_PATH" ]; then \
+    for d in $(abs_builddir)/subversion/libsvn_*; do \
+      if [ -n "$$DYLD_LIBRARY_PATH" ]; then \
+        @SVN_APR_SHLIB_PATH_VAR@="$$@SVN_APR_SHLIB_PATH_VAR@:$$d/.libs"; \
+      else \
+        @SVN_APR_SHLIB_PATH_VAR@="$$d/.libs"; \
+      fi; \
+    done; \
+    export @SVN_APR_SHLIB_PATH_VAR@; \
+  fi;
+
 # special compilation for files destined for cxxhl
 COMPILE_CXXHL_CXX = $(LT_COMPILE_CXX) $(CXXHL_INCLUDES) -o $@ -c
 COMPILE_GMOCK_CXX = $(LT_COMPILE_CXX_NOWARN) $(GMOCK_INCLUDES) -o $@ -c
@@ -340,7 +355,7 @@ INSTALL_EXTRA_SWIG_RB=\
 # export an env variable so that the tests can run without being installed
 TEST_SHLIB_VAR_SWIG_RB=\
   if [ "@SVN_APR_SHLIB_PATH_VAR@" = "DYLD_LIBRARY_PATH" ]; then \
-    for d in $(SWIG_PY_DIR)/libsvn_swig_rb $(SWIG_PY_DIR)/../../../libsvn_*; do \
+    for d in $(SWIG_RB_DIR)/libsvn_swig_ruby $(SWIG_RB_DIR)/../../../libsvn_*; do \
       if [ -n "$$DYLD_LIBRARY_PATH" ]; then \
         @SVN_APR_SHLIB_PATH_VAR@="$$@SVN_APR_SHLIB_PATH_VAR@:$$d/.libs"; \
       else \
@@ -473,11 +488,13 @@ clean-javahl:
 
 check-tigris-javahl: javahl-compat
 	@FIX_JAVAHL_LIB@
-	$(JAVA) "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" -Djava.library.path=@JAVAHL_OBJDIR@:$(libdir) -classpath $(javahl_compat_tests_PATH):$(javahl_tests_CLASSPATH) "-Dtest.tests=$(JAVAHL_TESTS)" org.tigris.subversion.javahl.RunTests
+	$(TEST_SHLIB_VAR_JAVAHL) \
+	$(JAVA) "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_compat_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.tests=$(JAVAHL_TESTS)" org.tigris.subversion.javahl.RunTests
 
 check-apache-javahl: javahl
 	@FIX_JAVAHL_LIB@
-	$(JAVA) "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" -Djava.library.path=@JAVAHL_OBJDIR@:$(libdir) -classpath $(javahl_tests_PATH):$(javahl_tests_CLASSPATH) "-Dtest.tests=$(JAVAHL_TESTS)" org.apache.subversion.javahl.RunTests
+	$(TEST_SHLIB_VAR_JAVAHL) \
+	$(JAVA) "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)" -classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)" "-Dtest.tests=$(JAVAHL_TESTS)" org.apache.subversion.javahl.RunTests
 
 check-javahl: check-apache-javahl
 
@@ -894,7 +911,7 @@ install-swig-rb-doc:
 
 # ctypes-python make targets
 ctypes-python: local-all
-	$(SHELL) $(abs_srcdir)/build/run_ctypesgen.sh "$(LT_EXECUTE)" "$(CPPFLAGS)" "$(EXTRA_CTYPES_LDFLAGS)" "$(PYTHON)" "$(CTYPESGEN)" "$(abs_srcdir)" "$(abs_builddir)" "$(libdir)" "$(SVN_APR_CONFIG)" "$(SVN_APRUTIL_CONFIG)"
+	$(SHELL) $(abs_srcdir)/build/run_ctypesgen.sh "$(LT_EXECUTE)" "$(CPPFLAGS)" "$(EXTRA_CTYPES_LDFLAGS)" "$(PYTHON)" "$(CTYPESGEN)" "$(abs_srcdir)" "$(abs_builddir)" "$(libdir)" "$(SVN_APR_CONFIG)" "$(SVN_APRUTIL_CONFIG)" "$(CPP)"
 
 install-ctypes-python: ctypes-python
 	cd $(CTYPES_PYTHON_SRC_DIR); \

Modified: subversion/branches/log-addressing/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/build.conf?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/build.conf (original)
+++ subversion/branches/log-addressing/build.conf Wed Oct 30 01:33:37 2013
@@ -88,9 +88,9 @@ test-scripts =
 
 bdb-test-scripts =
 
-swig-python-opts = $(CPPFLAGS) -python -classic
-swig-perl-opts = $(CPPFLAGS) -perl -nopm -noproxy
-swig-ruby-opts = $(CPPFLAGS) -ruby
+swig-python-opts = $(SWIG_CPPFLAGS) -python -classic
+swig-perl-opts = $(SWIG_CPPFLAGS) -perl -nopm -noproxy
+swig-ruby-opts = $(SWIG_CPPFLAGS) -ruby
 swig-languages = python perl ruby
 swig-dirs = 
         subversion/bindings/swig/python
@@ -357,7 +357,7 @@ install = fsmod-lib
 path = subversion/libsvn_subr
 libs = aprutil apriconv apr xml zlib apr_memcache sqlite magic intl
 msvc-libs = kernel32.lib advapi32.lib shfolder.lib ole32.lib
-            crypt32.lib version.lib psapi.lib
+            crypt32.lib version.lib
 msvc-export = 
         svn_auth.h svn_base64.h svn_cache_config.h svn_checksum.h svn_cmdline.h
         svn_compat.h svn_config.h svn_ctype.h svn_dirent_uri.h svn_dso.h 
@@ -686,7 +686,7 @@ type = lib
 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 *.c
+sources = *.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)
@@ -1051,6 +1051,14 @@ sources = string-test.c
 install = test
 libs = libsvn_test libsvn_subr apriconv apr
 
+[sqlite-test]
+description = Test stream library
+type = exe
+path = subversion/tests/libsvn_subr
+sources = sqlite-test.c
+install = test
+libs = libsvn_test libsvn_subr apriconv apr
+
 [time-test]
 description = Test time functions
 type = exe
@@ -1209,7 +1217,7 @@ msvc-force-static = yes
 description = Test Sqlite query evaluation
 type = exe
 path = subversion/tests/libsvn_wc
-sources = wc-queries-test.c
+sources = wc-queries-test.c ../../libsvn_subr/sqlite3wrapper.c
 install = test
 libs = libsvn_test libsvn_subr apriconv apr sqlite
 
@@ -1411,6 +1419,7 @@ libs = __ALL__
        diff-diff3-test
        ra-test
        ra-local-test
+       sqlite-test
        svndiff-test vdelta-test
        entries-dump atomic-ra-revprop-change wc-lock-tester wc-incomplete-tester
        client-test

Modified: subversion/branches/log-addressing/build/ac-macros/compiler.m4
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/build/ac-macros/compiler.m4?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/build/ac-macros/compiler.m4 (original)
+++ subversion/branches/log-addressing/build/ac-macros/compiler.m4 Wed Oct 30 01:33:37 2013
@@ -102,7 +102,7 @@ AC_DEFUN([SVN_CXX_MODE_SETUP],
     SVN_CXXFLAGS_ADD_IFELSE([-std=c++98])
   fi
 
-  CXXMODEFLAGS="$CFLAGS"
+  CXXMODEFLAGS="$CXXFLAGS"
   CXXFLAGS=""
 
   if test "$GXX" = "yes"; then

Modified: subversion/branches/log-addressing/build/generator/gen_win_dependencies.py
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/build/generator/gen_win_dependencies.py?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/build/generator/gen_win_dependencies.py (original)
+++ subversion/branches/log-addressing/build/generator/gen_win_dependencies.py Wed Oct 30 01:33:37 2013
@@ -252,9 +252,14 @@ class GenDependenciesBase(gen_base.Gener
           self.sln_version = '12.00'
           self.vcproj_version = '11.0'
           self.vcproj_extension = '.vcxproj'
+        elif val == '2013' or val == '12':
+          self.vs_version = '2013'
+          self.sln_version = '12.00'
+          self.vcproj_version = '12.0'
+          self.vcproj_extension = '.vcxproj'          
         elif re.match('^1\d+$', val):
           self.vsversion = val
-          self.sln_version = '12.00'
+          self.sln_version = val + '.00'
           self.vcproj_version = val + '.0'
           self.vcproj_extension = '.vcxproj'
         else:

Modified: subversion/branches/log-addressing/build/run_ctypesgen.sh
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/build/run_ctypesgen.sh?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/build/run_ctypesgen.sh (original)
+++ subversion/branches/log-addressing/build/run_ctypesgen.sh Wed Oct 30 01:33:37 2013
@@ -36,6 +36,7 @@ abs_builddir="$7"
 svn_libdir="$8"
 apr_config="$9"
 apu_config="${10}"
+cpp="${11}"
 
 cp_relpath="subversion/bindings/ctypes-python"
 output="$cp_relpath/svn_all.py"
@@ -57,7 +58,6 @@ apu_cppflags="`$apu_config --includes`" 
 apu_include_dir="`$apu_config --includedir`"
 apu_ldflags="`$apu_config --ldflags --link-ld`"
 
-cpp="`$apr_config --cpp`"
 ### end
 
 cppflags="$apr_cppflags $apu_cppflags -I$svn_includes"

Modified: subversion/branches/log-addressing/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/configure.ac?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/configure.ac (original)
+++ subversion/branches/log-addressing/configure.ac Wed Oct 30 01:33:37 2013
@@ -1129,7 +1129,6 @@ if test "$enable_optimization" = "yes"; 
             SVN_CFLAGS_ADD_IFELSE([-O])])])])
       SVN_CFLAGS_ADD_IFELSE([-Wno-clobbered])
       SVN_CFLAGS_ADD_IFELSE([-flto])
-      SVN_CFLAGS_ADD_IFELSE([-fwhole-program])
     fi
   fi
   if test -z ["`echo $CXXUSERFLAGS' ' | $EGREP -- '-O[^ ]* '`"]; then
@@ -1146,7 +1145,6 @@ if test "$enable_optimization" = "yes"; 
             SVN_CXXFLAGS_ADD_IFELSE([-O])])])])
       SVN_CXXFLAGS_ADD_IFELSE([-Wno-clobbered])
       SVN_CXXFLAGS_ADD_IFELSE([-flto])
-      SVN_CXXFLAGS_ADD_IFELSE([-fwhole-program])
     fi
   fi
 elif test "$enable_optimization" = "no"; then
@@ -1492,6 +1490,11 @@ if test "$CC" = "clang"; then
   SVN_STRIP_FLAG(CPPFLAGS, [-no-cpp-precomp ])
 fi
 
+# Need to strip '-no-cpp-precomp' from CPPFLAGS for SWIG as well.
+SWIG_CPPFLAGS="$CPPFLAGS"
+SVN_STRIP_FLAG(SWIG_CPPFLAGS, [-no-cpp-precomp ])
+AC_SUBST([SWIG_CPPFLAGS])
+
 dnl Since this is used only on Unix-y systems, define the path separator as '/'
 AC_DEFINE_UNQUOTED(SVN_PATH_LOCAL_SEPARATOR, '/',
         [Defined to be the path separator used on your local filesystem])

Modified: subversion/branches/log-addressing/gen-make.py
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/gen-make.py?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/gen-make.py (original)
+++ subversion/branches/log-addressing/gen-make.py Wed Oct 30 01:33:37 2013
@@ -209,7 +209,8 @@ def _usage_exit(err=None):
   print("           Use static openssl")
   print("")
   print("  --vsnet-version=VER")
-  print("           generate for VS.NET version VER (2002, 2003, 2005, 2008, 2010 or 2012)")
+  print("           generate for VS.NET version VER (2002, 2003, 2005, 2008,")
+  print("           2010, 2012 or 2013)")
   print("           [only valid in combination with '-t vcproj']")
   print("")
   print("  --with-apr_memcache=DIR")

Modified: subversion/branches/log-addressing/notes/http-and-webdav/webdav-protocol
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/notes/http-and-webdav/webdav-protocol?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/notes/http-and-webdav/webdav-protocol (original)
+++ subversion/branches/log-addressing/notes/http-and-webdav/webdav-protocol Wed Oct 30 01:33:37 2013
@@ -354,6 +354,7 @@ Request:
     <S:discover-changed-paths/> (optional)
     <S:strict-node-history/> (optional)
     <S:include-merged-revisions/> (optional)
+    <S:move-behavior>0</S:move-behavior> (optional, see below for values)
     <S:encode-binary-props> (optional)
     <S:revprop>REVPROP</S:revprop>... | <S:all-revprops/> | <S:no-revprops/>
       ('revprop', 'all-revprops', and 'no-revprops' are all optional)
@@ -374,12 +375,21 @@ Response:
       <S:has-children/> (optional)
       <S:added-path( copyfrom-path="PATH" copyfrom-rev="REVNUM">PATH</S:added-path>... (optional)
       <S:replaced-path( copyfrom-path="PATH" copyfrom-rev="REVNUM">PATH</S:replaced-path>... (optional)
+      <S:moved-path( copyfrom-path="PATH" copyfrom-rev="REVNUM">PATH</S:moved-path>... (optional)
+      <S:replaced-by-moved-path( copyfrom-path="PATH" copyfrom-rev="REVNUM">PATH</S:replaced-by-moved-path>... (optional)
       <S:deleted-path>PATH</S:deleted-path>... (optional)
       <S:modified-path>PATH</S:modified-path>... (optional)
     </S:log-item>
     ...multiple log-items for each returned revision...
   </S:log-report>
 
+Move behavior values (see svn_move_behavior_t in svn_types.h):
+
+  0 .. send all moves as adds / replaces (default if not specified)
+  1 .. send moves only when stored as such in the repository
+  2 .. send moves as stored in the repository and also send send
+       suitable adds / replacements as moves
+
 mergeinfo-report
 ----------------
 
@@ -452,4 +462,4 @@ Request:
 
 Response:
 
-  ### TODO ###
\ No newline at end of file
+  ### TODO ###

Modified: subversion/branches/log-addressing/subversion/bindings/javahl/README
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/javahl/README?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/javahl/README (original)
+++ subversion/branches/log-addressing/subversion/bindings/javahl/README Wed Oct 30 01:33:37 2013
@@ -33,10 +33,9 @@ javahl                build javahl
 install-javahl        install javahl
 check-javahl          run javahl tests
 
-(In order to run check-javahl, you must have already installed JavaHL,
-and you must have specified a path to a JUnit jar file with
---with-junit when running configure; JUnit version 3.8.1 has been
-tested.  JUnit can be downloaded from http://junit.sf.net/ .)
+(In order to run check-javahl, you must have specified a path to a JUnit
+jar file with --with-junit when running configure; JUnit version 3.8.1
+has been tested.  JUnit can be downloaded from http://junit.org/ .)
 
 
 MacOS X:

Modified: subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIStackElement.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIStackElement.cpp?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIStackElement.cpp (original)
+++ subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIStackElement.cpp Wed Oct 30 01:33:37 2013
@@ -27,7 +27,6 @@
 #include "JNIStackElement.h"
 #include "JNIUtil.h"
 #include "JNIStringHolder.h"
-#include "JNIThreadData.h"
 #include <apr_strings.h>
 
 /**
@@ -74,7 +73,7 @@ JNIStackElement::JNIStackElement(JNIEnv 
 
           // Copy the result to a buffer.
           JNIStringHolder name(reinterpret_cast<jstring>(oStr));
-          strncat(m_objectID, name, JNIUtil::formatBufferSize -1);
+          strncat(m_objectID, name, sizeof(m_objectID) - 1);
           env->DeleteLocalRef(oStr);
         }
 
@@ -86,8 +85,8 @@ JNIStackElement::JNIStackElement(JNIEnv 
       m_method = method;
 
       // Generate the log message.
-      char *buffer = JNIUtil::getFormatBuffer();
-      apr_snprintf(buffer, JNIUtil::formatBufferSize,
+      char buffer[2048];
+      apr_snprintf(buffer, sizeof(buffer),
                    "entry class %s method %s object %s", m_clazz, m_method,
                    m_objectID);
       JNIUtil::logMessage(buffer);
@@ -110,11 +109,10 @@ JNIStackElement::~JNIStackElement()
   if (m_clazz != NULL)
     {
       // Generate a log message.
-      char *buffer = JNIUtil::getFormatBuffer();
-      apr_snprintf(buffer, JNIUtil::formatBufferSize,
+      char buffer[2048];
+      apr_snprintf(buffer, sizeof(buffer),
                    "exit class %s method %s object %s", m_clazz,
                    m_method, m_objectID);
       JNIUtil::logMessage(buffer);
     }
-  JNIThreadData::popThreadData();
 }

Modified: subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIStackElement.h
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIStackElement.h?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIStackElement.h (original)
+++ subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIStackElement.h Wed Oct 30 01:33:37 2013
@@ -73,7 +73,7 @@ class JNIStackElement
    * A buffer for the result for jthis.toString to identify the
    * object.
    */
-  char m_objectID[JNIUtil::formatBufferSize];
+  char m_objectID[2048];
 };
 
 #endif // JNISTACKELEMENT_H

Modified: subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIUtil.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIUtil.cpp (original)
+++ subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIUtil.cpp Wed Oct 30 01:33:37 2013
@@ -54,24 +54,16 @@
 #include "svn_path.h"
 #include "svn_cache_config.h"
 #include "private/svn_atomic.h"
+#include "private/svn_utf_private.h"
 #include "svn_private_config.h"
-#ifdef WIN32
-/* FIXME: We're using an internal APR header here, which means we
-   have to build Subversion with APR sources. This being Win32-only,
-   that should be fine for now, but a better solution must be found in
-   combination with issue #850. */
-extern "C" {
-#include <arch/win32/apr_arch_utf8.h>
-};
-#endif
 
 #include "SVNBase.h"
 #include "JNIMutex.h"
 #include "JNICriticalSection.h"
-#include "JNIThreadData.h"
 #include "JNIStringHolder.h"
 #include "Pool.h"
 
+
 // Static members of JNIUtil are allocated here.
 apr_pool_t *JNIUtil::g_pool = NULL;
 std::list<SVNBase*> JNIUtil::g_finalizedObjects;
@@ -81,10 +73,39 @@ JNIMutex *JNIUtil::g_configMutex = NULL;
 bool JNIUtil::g_initException;
 bool JNIUtil::g_inInit;
 JNIEnv *JNIUtil::g_initEnv;
-char JNIUtil::g_initFormatBuffer[formatBufferSize];
 int JNIUtil::g_logLevel = JNIUtil::noLog;
 std::ofstream JNIUtil::g_logStream;
 
+namespace {
+JavaVM *g_jvm = NULL;
+} // anonymous namespace
+
+extern "C" JNIEXPORT jint JNICALL
+JNI_OnLoad(JavaVM *jvm, void*)
+{
+  g_jvm = jvm;
+  return JNI_VERSION_1_2;
+}
+
+extern "C" JNIEXPORT void JNICALL
+JNI_OnUnload(JavaVM*, void*)
+{}
+
+/**
+ * Return the JNI environment to use
+ * @return the JNI environment
+ */
+JNIEnv *JNIUtil::getEnv()
+{
+  // During init -> look into the global variable.
+  if (g_inInit)
+    return g_initEnv;
+
+  void* penv;
+  g_jvm->GetEnv(&penv, JNI_VERSION_1_2);
+  return static_cast<JNIEnv*>(penv);
+}
+
 /**
  * Initialize the environment for all requests.
  * @param env   the JNI environment for this request
@@ -94,9 +115,6 @@ bool JNIUtil::JNIInit(JNIEnv *env)
   // Clear all standing exceptions.
   env->ExceptionClear();
 
-  // Remember the env parameter for the remainder of the request.
-  setEnv(env);
-
   // Lock the list of finalized objects.
   JNICriticalSection cs(*g_finalizedObjectsMutex) ;
   if (isExceptionThrown())
@@ -288,30 +306,22 @@ bool JNIUtil::JNIGlobalInit(JNIEnv *env)
     WCHAR ucs2_path[MAX_PATH];
     char *utf8_path;
     const char *internal_path;
-    apr_pool_t *pool;
-    apr_status_t apr_err;
-    apr_size_t inwords, outbytes;
-    unsigned int outlength;
+    svn_error_t *err;
+    apr_pool_t *pool = svn_pool_create(g_pool);
 
-    pool = svn_pool_create(g_pool);
     /* get dll name - our locale info will be in '../share/locale' */
-    inwords = sizeof(ucs2_path) / sizeof(ucs2_path[0]);
     HINSTANCE moduleHandle = GetModuleHandle("libsvnjavahl-1");
-    GetModuleFileNameW(moduleHandle, ucs2_path, inwords);
-    inwords = lstrlenW(ucs2_path);
-    outbytes = outlength = 3 * (inwords + 1);
-    utf8_path = reinterpret_cast<char *>(apr_palloc(pool, outlength));
-    apr_err = apr_conv_ucs2_to_utf8((const apr_wchar_t *) ucs2_path,
-                                    &inwords, utf8_path, &outbytes);
-    if (!apr_err && (inwords > 0 || outbytes == 0))
-      apr_err = APR_INCOMPLETE;
-    if (apr_err)
+    GetModuleFileNameW(moduleHandle, ucs2_path,
+                       sizeof(ucs2_path) / sizeof(ucs2_path[0]));
+    err = svn_utf__win32_utf16_to_utf8(&utf8_path, ucs2_path, NULL, pool);
+    if (err)
       {
         if (stderr)
-          fprintf(stderr, "Can't convert module path to UTF-8");
-        return FALSE;
+          svn_handle_error2(err, stderr, false, "svn: ");
+        svn_error_clear(err);
+        return false;
       }
-    utf8_path[outlength - outbytes] = '\0';
+
     internal_path = svn_dirent_internal_style(utf8_path, pool);
     /* get base path name */
     internal_path = svn_dirent_dirname(internal_path, pool);
@@ -361,14 +371,6 @@ bool JNIUtil::JNIGlobalInit(JNIEnv *env)
   if (isExceptionThrown())
     return false;
 
-  // initialized the thread local storage
-  if (!JNIThreadData::initThreadData())
-    return false;
-
-  setEnv(env);
-  if (isExceptionThrown())
-    return false;
-
   g_initEnv = NULL;
   g_inInit = false;
 
@@ -399,8 +401,6 @@ void JNIUtil::raiseThrowable(const char 
     return;
 
   env->ThrowNew(clazz, message);
-  setExceptionThrown();
-  env->DeleteLocalRef(clazz);
 }
 
 void
@@ -825,80 +825,15 @@ void JNIUtil::enqueueForDeletion(SVNBase
  */
 void JNIUtil::handleAPRError(int error, const char *op)
 {
-  char *buffer = getFormatBuffer();
-  if (buffer == NULL)
-    return;
+  char buffer[2048];
 
-  apr_snprintf(buffer, formatBufferSize,
+  apr_snprintf(buffer, sizeof(buffer),
                _("an error occurred in function %s with return value %d"),
                op, error);
 
   throwError(buffer);
 }
 
-/**
- * Return if an exception has been detected.
- * @return a exception has been detected
- */
-bool JNIUtil::isExceptionThrown()
-{
-  // During init -> look in the global member.
-  if (g_inInit)
-    return g_initException;
-
-  // Look in the thread local storage.
-  JNIThreadData *data = JNIThreadData::getThreadData();
-  return data == NULL || data->m_exceptionThrown;
-}
-
-/**
- * Store the JNI environment for this request in the thread local
- * storage.
- * @param env   the JNI environment
- */
-void JNIUtil::setEnv(JNIEnv *env)
-{
-  JNIThreadData::pushNewThreadData();
-  JNIThreadData *data = JNIThreadData::getThreadData();
-  data->m_env = env;
-  data->m_exceptionThrown = false;
-}
-
-/**
- * Return the JNI environment to use
- * @return the JNI environment
- */
-JNIEnv *JNIUtil::getEnv()
-{
-  // During init -> look into the global variable.
-  if (g_inInit)
-    return g_initEnv;
-
-  // Look in the thread local storage.
-  JNIThreadData *data = JNIThreadData::getThreadData();
-  return data->m_env;
-}
-
-/**
- * Check if a Java exception has been thrown.
- * @return is a Java exception has been thrown
- */
-bool JNIUtil::isJavaExceptionThrown()
-{
-  JNIEnv *env = getEnv();
-  if (env->ExceptionCheck())
-    {
-      // Retrieving the exception removes it so we rethrow it here.
-      jthrowable exp = env->ExceptionOccurred();
-      env->ExceptionDescribe();
-      env->Throw(exp);
-      env->DeleteLocalRef(exp);
-      setExceptionThrown();
-      return true;
-    }
-  return false;
-}
-
 namespace {
 const char* known_exception_to_cstring(apr_pool_t* pool)
 {
@@ -984,25 +919,6 @@ jstring JNIUtil::makeJString(const char 
   return env->NewStringUTF(txt);
 }
 
-void
-JNIUtil::setExceptionThrown(bool flag)
-{
-  if (g_inInit)
-    {
-      // During global initialization, store any errors that occur
-      // in a global variable (since thread-local storage may not
-      // yet be available).
-      g_initException = flag;
-    }
-  else
-    {
-      // When global initialization is complete, thread-local
-      // storage should be available, so store the error there.
-      JNIThreadData *data = JNIThreadData::getThreadData();
-      data->m_exceptionThrown = flag;
-    }
-}
-
 /**
  * Initialite the log file.
  * @param level the log level
@@ -1026,23 +942,6 @@ void JNIUtil::initLogFile(int level, jst
 }
 
 /**
- * Returns a buffer to format error messages.
- * @return a buffer for formating error messages
- */
-char *JNIUtil::getFormatBuffer()
-{
-  if (g_inInit) // during init -> use the global buffer
-    return g_initFormatBuffer;
-
-  // use the buffer in the thread local storage
-  JNIThreadData *data = JNIThreadData::getThreadData();
-  if (data == NULL) // if that does not exists -> use the global buffer
-    return g_initFormatBuffer;
-
-  return data->m_formatBuffer;
-}
-
-/**
  * Returns the current log level.
  * @return the log level
  */
@@ -1182,8 +1081,6 @@ void JNIUtil::throwNullPointerException(
     return;
 
   env->ThrowNew(clazz, message);
-  setExceptionThrown();
-  env->DeleteLocalRef(clazz);
 }
 
 svn_error_t *JNIUtil::preprocessPath(const char *&path, apr_pool_t *pool)

Modified: subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIUtil.h
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIUtil.h?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIUtil.h (original)
+++ subversion/branches/log-addressing/subversion/bindings/javahl/native/JNIUtil.h Wed Oct 30 01:33:37 2013
@@ -73,17 +73,18 @@ class JNIUtil
   static apr_time_t getDate(jobject jdate);
   static void logMessage(const char *message);
   static int getLogLevel();
-  static char *getFormatBuffer();
   static void initLogFile(int level, jstring path);
   static jstring makeJString(const char *txt);
-  static bool isJavaExceptionThrown();
   static JNIEnv *getEnv();
-  static void setEnv(JNIEnv *);
 
   /**
    * @return Whether any Throwable has been raised.
    */
-  static bool isExceptionThrown();
+  static bool isExceptionThrown() { return isJavaExceptionThrown(); }
+  static bool isJavaExceptionThrown()
+    {
+      return getEnv()->ExceptionCheck();
+    }
 
   static void handleAPRError(int error, const char *op);
 
@@ -149,7 +150,6 @@ class JNIUtil
   static bool JNIGlobalInit(JNIEnv *env);
   static bool JNIInit(JNIEnv *env);
   static bool initializeJNIRuntime();
-  enum { formatBufferSize = 2048 };
   enum { noLog, errorLog, exceptionLog, entryLog } LogLevel;
 
   /**
@@ -161,11 +161,6 @@ class JNIUtil
   static void wrappedHandleSVNError(svn_error_t *err);
   static void putErrorsInTrace(svn_error_t *err,
                                std::vector<jobject> &stackTrace);
-  /**
-   * Set the appropriate global or thread-local flag that an exception
-   * has been thrown to @a flag.
-   */
-  static void setExceptionThrown(bool flag = true);
 
   /**
    * The log level of this module.
@@ -210,11 +205,6 @@ class JNIUtil
   static JNIEnv *g_initEnv;
 
   /**
-   * Fuffer the format error messages during initialization.
-   */
-  static char g_initFormatBuffer[formatBufferSize];
-
-  /**
    * The stream to write log messages to.
    */
   static std::ofstream g_logStream;

Modified: subversion/branches/log-addressing/subversion/bindings/javahl/native/OperationContext.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/javahl/native/OperationContext.cpp?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/javahl/native/OperationContext.cpp (original)
+++ subversion/branches/log-addressing/subversion/bindings/javahl/native/OperationContext.cpp Wed Oct 30 01:33:37 2013
@@ -153,10 +153,10 @@ OperationContext::getAuthBaton(SVN::Pool
 
       /* Use the prompter (if available) to prompt for password and cert
        * caching. */
-      svn_auth_plaintext_prompt_func_t plaintext_prompt_func = NULL;
-      void *plaintext_prompt_baton = NULL;
+      svn_auth_plaintext_prompt_func_t plaintext_prompt_func;
+      void *plaintext_prompt_baton;
       svn_auth_plaintext_passphrase_prompt_func_t plaintext_passphrase_prompt_func;
-      void *plaintext_passphrase_prompt_baton = NULL;
+      void *plaintext_passphrase_prompt_baton;
 
       if (m_prompter != NULL)
         {
@@ -165,6 +165,13 @@ OperationContext::getAuthBaton(SVN::Pool
           plaintext_passphrase_prompt_func = Prompter::plaintext_passphrase_prompt;
           plaintext_passphrase_prompt_baton = m_prompter;
         }
+      else
+        {
+          plaintext_prompt_func = NULL;
+          plaintext_prompt_baton = NULL;
+          plaintext_passphrase_prompt_func = NULL;
+          plaintext_passphrase_prompt_baton = NULL;
+        }
 
       /* The main disk-caching auth providers, for both
        * 'username/password' creds and 'username' creds.  */
@@ -176,15 +183,6 @@ OperationContext::getAuthBaton(SVN::Pool
       svn_auth_get_username_provider(&provider, pool);
       APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
 
-      /* The server-cert, client-cert, and client-cert-password providers. */
-      SVN_JNI_ERR(
-          svn_auth_get_platform_specific_provider(
-              &provider, "windows", "ssl_server_trust", pool),
-          NULL);
-
-      if (provider)
-        APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
-
       svn_auth_get_ssl_server_trust_file_provider(&provider, pool);
       APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
       svn_auth_get_ssl_client_cert_file_provider(&provider, pool);
@@ -494,6 +492,12 @@ public:
 #endif
     }
 
+  ~TunnelContext()
+    {
+      apr_file_close(request_out);
+      apr_file_close(response_in);
+    }
+
   apr_file_t *request_in;
   apr_file_t *request_out;
   apr_file_t *response_in;
@@ -566,6 +570,7 @@ OperationContext::openTunnel(apr_file_t 
           svn_error_wrap_apr(tc->status, _("Could not open tunnel streams")));
     }
 
+  *tunnel_context = tc;
   *request = tc->request_out;
   *response = tc->response_in;
 
@@ -607,7 +612,6 @@ OperationContext::openTunnel(apr_file_t 
                           jtunnel_name, juser, jhostname, jint(port)),
       SVN_ERR_BASE);
 
-  *tunnel_context = NULL;
   return SVN_NO_ERROR;
 }
 

Modified: subversion/branches/log-addressing/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/javahl/native/SVNClient.cpp?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/log-addressing/subversion/bindings/javahl/native/SVNClient.cpp Wed Oct 30 01:33:37 2013
@@ -1343,10 +1343,10 @@ jstring SVNClient::getVersionInfo(const 
         }
         else
         {
-            char *message = JNIUtil::getFormatBuffer();
-            apr_snprintf(message, JNIUtil::formatBufferSize,
+            char buffer[2048];
+            apr_snprintf(buffer, sizeof(buffer),
                          _("'%s' not versioned, and not exported\n"), path);
-            return JNIUtil::makeJString(message);
+            return JNIUtil::makeJString(buffer);
         }
     }
 

Modified: subversion/branches/log-addressing/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.cpp?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.cpp (original)
+++ subversion/branches/log-addressing/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.cpp Wed Oct 30 01:33:37 2013
@@ -55,12 +55,14 @@ apr_file_t* get_file_descriptor(jlong jf
 
 void throw_IOException(const char* message, apr_status_t status)
 {
-  char buf[1024];
-  apr_strerror(status, buf, sizeof(buf) - 1);
-
   std::string msg(message);
-  msg += ": ";
-  msg += buf;
+  if (status)
+    {
+      char buf[1024];
+      apr_strerror(status, buf, sizeof(buf) - 1);
+      msg += ": ";
+      msg += buf;
+    }
   JNIUtil::raiseThrowable("java/io/IOException", msg.c_str());
 }
 

Modified: subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java (original)
+++ subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java Wed Oct 30 01:33:37 2013
@@ -612,7 +612,16 @@ public class ClientNotifyInformation ext
 
         /** A move in the working copy has been broken
          * @since New in 1.8. */
-        move_broken ("move broken");
+        move_broken ("move broken"),
+
+        /** Running cleanup on an external module.
+         * @since New in 1.9. */
+        cleanup_external ("cleanup external"),
+
+        /** The operation failed because the operation (E.g. commit)
+         * is only valid if the operation includes this path.
+         * @since New in 1.9. */
+        failed_requires_target ("failed requires target");
 
         /**
          * The description of the action.

Modified: subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java (original)
+++ subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java Wed Oct 30 01:33:37 2013
@@ -81,6 +81,7 @@ public class Revision implements java.io
             case head : return "HEAD";
             case previous : return "PREV";
             case working : return "WORKING";
+            case unspecified: return "UNSPECIFIED";
         }
         return super.toString();
     }
@@ -155,6 +156,11 @@ public class Revision implements java.io
     public static final Revision START = new Revision(Kind.unspecified);
 
     /**
+     * unspecified revision
+     */
+    public static final Revision UNSPECIFIED = START;
+
+    /**
      * last committed revision, needs working copy
      */
     public static final Revision COMMITTED = new Revision(Kind.committed);

Modified: subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/RequestChannel.java
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/RequestChannel.java?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/RequestChannel.java (original)
+++ subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/RequestChannel.java Wed Oct 30 01:33:37 2013
@@ -26,6 +26,7 @@ package org.apache.subversion.javahl.uti
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.nio.channels.ReadableByteChannel;
+import java.nio.channels.ClosedChannelException;
 
 /* The following channel subclasses are used by the native
    implementation of the tunnel management code. */
@@ -41,7 +42,15 @@ class RequestChannel
 
     public int read(ByteBuffer dst) throws IOException
     {
-        return nativeRead(nativeChannel, dst);
+        long channel = nativeChannel.get();
+        if (channel != 0)
+            try {
+                return nativeRead(channel, dst);
+            } catch (IOException ex) {
+                nativeChannel.set(0); // Close the channel
+                throw ex;
+            }
+        throw new ClosedChannelException();
     }
 
     private static native int nativeRead(long nativeChannel, ByteBuffer dst)

Modified: subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ResponseChannel.java
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ResponseChannel.java?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ResponseChannel.java (original)
+++ subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ResponseChannel.java Wed Oct 30 01:33:37 2013
@@ -26,6 +26,7 @@ package org.apache.subversion.javahl.uti
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.nio.channels.WritableByteChannel;
+import java.nio.channels.ClosedChannelException;
 
 /* The following channel subclasses are used by the native
    implementation of the tunnel management code. */
@@ -41,7 +42,15 @@ class ResponseChannel
 
     public int write(ByteBuffer src) throws IOException
     {
-        return nativeWrite(nativeChannel, src);
+        long channel = this.nativeChannel.get();
+        if (channel != 0)
+            try {
+                return nativeWrite(channel, src);
+            } catch (IOException ex) {
+                nativeChannel.set(0); // Close the channel
+                throw ex;
+            }
+        throw new ClosedChannelException();
     }
 
     private static native int nativeWrite(long nativeChannel, ByteBuffer src)

Modified: subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/TunnelChannel.java
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/TunnelChannel.java?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/TunnelChannel.java (original)
+++ subversion/branches/log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/TunnelChannel.java Wed Oct 30 01:33:37 2013
@@ -26,6 +26,7 @@ package org.apache.subversion.javahl.uti
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.nio.channels.Channel;
+import java.util.concurrent.atomic.AtomicLong;
 
 /* The following channel subclasses are used by the native
    implementation of the tunnel management code. */
@@ -34,22 +35,23 @@ abstract class TunnelChannel implements 
 {
     protected TunnelChannel(long nativeChannel)
     {
-        this.nativeChannel = nativeChannel;
+        this.nativeChannel = new AtomicLong(nativeChannel);
     }
 
     public boolean isOpen()
     {
-        return (nativeChannel != 0);
+        return (nativeChannel.get() != 0);
     }
 
     public void close() throws IOException
     {
-        nativeClose(nativeChannel);
-        nativeChannel = 0;
+        long channel = nativeChannel.getAndSet(0);
+        if (channel != 0)
+            nativeClose(channel);
     }
 
     private native static void nativeClose(long nativeChannel)
         throws IOException;
 
-    protected long nativeChannel;
+    protected AtomicLong nativeChannel;
 }

Modified: subversion/branches/log-addressing/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/log-addressing/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Wed Oct 30 01:33:37 2013
@@ -1058,6 +1058,37 @@ public class BasicTests extends SVNTests
     }
 
     /**
+     * Check that half a move cannot be committed.
+     * @since 1.9
+     */
+    public void testCommitPartialMove() throws Throwable
+    {
+        OneTest thisTest = new OneTest();
+        String root = thisTest.getWorkingCopy().getAbsolutePath();
+        ClientException caught = null;
+
+        Set<String> srcPaths = new HashSet<String>(1);
+        srcPaths.add(root + "/A/B/E/alpha");
+        client.move(srcPaths, root + "/moved-alpha",
+                    false, false, false, false, false, null, null, null);
+
+        try {
+            client.commit(srcPaths, Depth.infinity, false, false, null, null,
+                          new ConstMsg("Commit half of a move"), null);
+        } catch (ClientException ex) {
+            caught = ex;
+        }
+
+        assertNotNull("Commit of partial move did not fail", caught);
+
+        List<ClientException.ErrorMessage> msgs = caught.getAllMessages();
+        assertTrue(msgs.size() >= 3);
+        assertTrue(msgs.get(0).getMessage().startsWith("Illegal target"));
+        assertTrue(msgs.get(1).getMessage().startsWith("Commit failed"));
+        assertTrue(msgs.get(2).getMessage().startsWith("Cannot commit"));
+    }
+
+    /**
      * Assert that the first merge source suggested for
      * <code>destPath</code> at {@link Revision#WORKING} and {@link
      * Revision#HEAD} is equivalent to <code>expectedSrc</code>.

Modified: subversion/branches/log-addressing/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java (original)
+++ subversion/branches/log-addressing/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java Wed Oct 30 01:33:37 2013
@@ -28,8 +28,6 @@ import java.io.FileOutputStream;
 import java.io.ByteArrayOutputStream;
 import java.util.Arrays;
 
-import org.junit.Assert;
-
 /**
  * Tests the JavaHL SVNUtil APIs.
  */
@@ -100,7 +98,7 @@ public class UtilTests extends SVNTests
                                  "-original\n" +
                                  "+modified\n" +
                                  " \n N-3\n N-2\n").getBytes();
-        Assert.assertArrayEquals(expected, result.toByteArray());
+        assertTrue(Arrays.equals(expected, result.toByteArray()));
     }
 
     public void testFileMerge() throws Throwable
@@ -135,6 +133,6 @@ public class UtilTests extends SVNTests
                                  "latest\n" +
                                  ">>>>>>> local\n" +
                                  "\nN-3\nN-2\nN-1\nN\n").getBytes();
-        Assert.assertArrayEquals(expected, result.toByteArray());
+        assertTrue(Arrays.equals(expected, result.toByteArray()));
     }
 }

Modified: subversion/branches/log-addressing/subversion/bindings/swig/perl/native/Makefile.PL.in
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/swig/perl/native/Makefile.PL.in?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/swig/perl/native/Makefile.PL.in (original)
+++ subversion/branches/log-addressing/subversion/bindings/swig/perl/native/Makefile.PL.in Wed Oct 30 01:33:37 2013
@@ -40,7 +40,7 @@ my @modules = qw/client delta fs ra repo
 my @ldpaths = (abs_path($swig_builddir) . "/perl/libsvn_swig_perl/.libs",
                map { abs_path($svnlib_builddir) . "/libsvn_$_/.libs" }
                    @modules, qw/diff subr ra_local ra_svn ra_serf
-                                fs_base fs_util fs_fs/);
+                                fs_base fs_util fs_fs fs_x/);
 
 my @ldmodules = map {"-lsvn_$_-1"} (@modules, qw/diff subr/);
 

Modified: subversion/branches/log-addressing/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c (original)
+++ subversion/branches/log-addressing/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c Wed Oct 30 01:33:37 2013
@@ -1645,13 +1645,13 @@ static VALUE
 invoke_callback(VALUE baton, VALUE pool)
 {
   callback_baton_t *cbb = (callback_baton_t *)baton;
-  VALUE sub_pool;
+  VALUE subpool;
   VALUE argv[1];
 
   argv[0] = pool;
-  svn_swig_rb_get_pool(1, argv, Qnil, &sub_pool, NULL);
-  cbb->pool = sub_pool;
-  return rb_ensure(callback, baton, callback_ensure, sub_pool);
+  svn_swig_rb_get_pool(1, argv, Qnil, &subpool, NULL);
+  cbb->pool = subpool;
+  return rb_ensure(callback, baton, callback_ensure, subpool);
 }
 
 static VALUE

Modified: subversion/branches/log-addressing/subversion/include/private/svn_auth_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/include/private/svn_auth_private.h?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/include/private/svn_auth_private.h (original)
+++ subversion/branches/log-addressing/subversion/include/private/svn_auth_private.h Wed Oct 30 01:33:37 2013
@@ -37,6 +37,24 @@
 extern "C" {
 #endif /* __cplusplus */
 
+/** SSL server authority verification credential type.
+ *
+ * The followin auth parameters are available to the providers:
+ *
+ * - @c SVN_AUTH_PARAM_SSL_SERVER_FAILURES (@c apr_uint32_t*)
+ * - @c SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO
+ *      (@c svn_auth_ssl_server_cert_info_t*)
+ *
+ * The following optional auth parameters are relevant to the providers:
+ *
+ * - @c SVN_AUTH_PARAM_NO_AUTH_CACHE (@c void*)
+ *
+ * @since New in 1.9.
+ */
+#define SVN_AUTH_CRED_SSL_SERVER_AUTHORITY "svn.ssl.server.authority"
+
+
+
 /* If you add a password type for a provider which stores
  * passwords on disk in encrypted form, remember to update
  * svn_auth__simple_save_creds_helper. Otherwise it will be
@@ -213,6 +231,25 @@ svn_auth__ssl_client_cert_pw_set(svn_boo
                                  svn_boolean_t non_interactive,
                                  apr_pool_t *pool);
 
+#if (defined(WIN32) && !defined(__MINGW32__)) || defined(DOXYGEN)
+/**
+ * Set @a *provider to an authentication provider that implements
+ * ssl authority verification via the Windows CryptoApi.
+ *
+ * This provider automatically validates authority certificates with
+ * the CryptoApi, like Internet Explorer and the Windows network API do.
+ * This allows the rollout of root certificates via Windows Domain
+ * policies, instead of Subversion specific configuration.
+ *
+ * @note This function is only available on Windows.
+ */
+void
+svn_auth__get_windows_ssl_server_authority_provider(
+                            svn_auth_provider_object_t **provider,
+                            apr_pool_t *pool);
+#endif
+
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/branches/log-addressing/subversion/include/private/svn_dep_compat.h
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/include/private/svn_dep_compat.h?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/include/private/svn_dep_compat.h (original)
+++ subversion/branches/log-addressing/subversion/include/private/svn_dep_compat.h Wed Oct 30 01:33:37 2013
@@ -115,6 +115,19 @@ typedef apr_uint32_t apr_uintptr_t;
 #endif
 
 /**
+ * APR keeps a few interesting defines hidden away in its private
+ * headers apr_arch_file_io.h, so we redefined them here.
+ *
+ * @since New in 1.9
+ */
+#ifndef APR_FREADONLY
+#define APR_FREADONLY 0x10000000
+#endif
+#ifndef APR_OPENINFO
+#define APR_OPENINFO  0x00100000
+#endif
+
+/**
  * Check at compile time if the Serf version is at least a certain
  * level.
  * @param major The major version component of the version checked

Modified: subversion/branches/log-addressing/subversion/include/private/svn_sqlite.h
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/include/private/svn_sqlite.h?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/include/private/svn_sqlite.h (original)
+++ subversion/branches/log-addressing/subversion/include/private/svn_sqlite.h Wed Oct 30 01:33:37 2013
@@ -372,6 +372,9 @@ svn_sqlite__result_null(svn_sqlite__cont
 void
 svn_sqlite__result_int64(svn_sqlite__context_t *sctx, apr_int64_t val);
 
+void
+svn_sqlite__result_error(svn_sqlite__context_t *sctx, const char *msg, int num);
+
 
 /* --------------------------------------------------------------------- */
 

Modified: subversion/branches/log-addressing/subversion/include/private/svn_subr_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/include/private/svn_subr_private.h?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/include/private/svn_subr_private.h (original)
+++ subversion/branches/log-addressing/subversion/include/private/svn_subr_private.h Wed Oct 30 01:33:37 2013
@@ -521,8 +521,21 @@ svn_root_pools__release_pool(apr_pool_t 
  */
 
 /* Future attempts to modify CFG will trigger an assertion. */
-void svn_config__set_read_only(svn_config_t *cfg,
-                               apr_pool_t *scratch_pool);
+void
+svn_config__set_read_only(svn_config_t *cfg,
+                          apr_pool_t *scratch_pool);
+
+/* Return TRUE, if CFG cannot be modified. */
+svn_boolean_t
+svn_config__is_read_only(svn_config_t *cfg);
+
+/* Return TRUE, if OPTION in SECTION in CFG exists and does not require
+ * further expansion (due to either containing no placeholders or already
+ * having been expanded). */
+svn_boolean_t
+svn_config__is_expanded(svn_config_t *cfg,
+                        const char *section,
+                        const char *option);
 
 /** @} */
 

Modified: subversion/branches/log-addressing/subversion/include/private/svn_utf_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/include/private/svn_utf_private.h?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/include/private/svn_utf_private.h (original)
+++ subversion/branches/log-addressing/subversion/include/private/svn_utf_private.h Wed Oct 30 01:33:37 2013
@@ -93,6 +93,28 @@ svn_utf__cstring_from_utf8_fuzzy(const c
                                                const char *,
                                                apr_pool_t *));
 
+
+#if defined(WIN32)
+/* On Windows: Convert the UTF-8 string SRC to UTF-16.
+   If PREFIX is not NULL, prepend it to the converted result.
+   The result, if not empty, will be allocated in RESULT_POOL. */
+svn_error_t *
+svn_utf__win32_utf8_to_utf16(const WCHAR **result,
+                             const char *src,
+                             const WCHAR *prefix,
+                             apr_pool_t *result_pool);
+
+/* On Windows: Convert the UTF-16 string SRC to UTF-8.
+   If PREFIX is not NULL, prepend it to the converted result.
+   The result, if not empty, will be allocated in RESULT_POOL. */
+svn_error_t *
+svn_utf__win32_utf16_to_utf8(const char **result,
+                             const WCHAR *src,
+                             const char *prefix,
+                             apr_pool_t *result_pool);
+#endif /* WIN32*/
+
+
 /* A constant used for many length parameters in the utf8proc wrappers
  * to indicate that the length of a string is unknonw. */
 #define SVN_UTF__UNKNOWN_LENGTH ((apr_size_t) -1)

Modified: subversion/branches/log-addressing/subversion/include/svn_dirent_uri.h
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/include/svn_dirent_uri.h?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/include/svn_dirent_uri.h (original)
+++ subversion/branches/log-addressing/subversion/include/svn_dirent_uri.h Wed Oct 30 01:33:37 2013
@@ -202,7 +202,7 @@ svn_dirent_join(const char *base,
                 apr_pool_t *result_pool);
 
 /** Join multiple components onto a @a base dirent. The components are
- * terminated by a @c NULL.
+ * terminated by a @c SVN_VA_NULL.
  *
  * If any component is the empty string, it will be ignored.
  *

Modified: subversion/branches/log-addressing/subversion/include/svn_fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/include/svn_fs.h?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/include/svn_fs.h (original)
+++ subversion/branches/log-addressing/subversion/include/svn_fs.h Wed Oct 30 01:33:37 2013
@@ -1399,8 +1399,6 @@ svn_fs_path_change2_create(const svn_fs_
  * Allocate and return a hash @a *changed_paths2_p containing descriptions
  * of the paths changed under @a root.  The hash is keyed with
  * <tt>const char *</tt> paths, and has #svn_fs_path_change2_t * values.
- * @a move_behavior determines how moves are being detected and reported;
- * see #svn_fs_move_behavior_t for the various options.
  *
  * Callers can assume that this function takes time proportional to
  * the amount of data output, and does not need to do tree crawls;
@@ -1410,22 +1408,8 @@ svn_fs_path_change2_create(const svn_fs_
  *
  * Use @a pool for all allocations, including the hash and its values.
  *
- * @since New in 1.9.
- */
-svn_error_t *
-svn_fs_paths_changed3(apr_hash_t **changed_paths2_p,
-                      svn_fs_root_t *root,
-                      svn_move_behavior_t move_behavior,
-                      apr_pool_t *pool);
-
-
-/** Same as svn_fs_paths_changed3 but with @a move_behavior set to
- * #svn_fs_move_behavior_no_moves.
- *
- * @deprecated Provided for backward compatibility with the 1.8 API.
  * @since New in 1.6.
  */
-SVN_DEPRECATED
 svn_error_t *
 svn_fs_paths_changed2(apr_hash_t **changed_paths2_p,
                       svn_fs_root_t *root,

Modified: subversion/branches/log-addressing/subversion/include/svn_path.h
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/include/svn_path.h?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/include/svn_path.h (original)
+++ subversion/branches/log-addressing/subversion/include/svn_path.h Wed Oct 30 01:33:37 2013
@@ -114,7 +114,7 @@ char *
 svn_path_join(const char *base, const char *component, apr_pool_t *pool);
 
 /** Join multiple components onto a @a base path, allocated in @a pool. The
- * components are terminated by a @c NULL.
+ * components are terminated by a @c SVN_VA_NULL.
  *
  * If any component is the empty string, it will be ignored.
  *

Modified: subversion/branches/log-addressing/subversion/include/svn_ra.h
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/include/svn_ra.h?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/include/svn_ra.h (original)
+++ subversion/branches/log-addressing/subversion/include/svn_ra.h Wed Oct 30 01:33:37 2013
@@ -1621,7 +1621,7 @@ svn_ra_get_log3(svn_ra_session_t *sessio
 
 /**
  * Similar to svn_ra_get_log3(), but with @a move_behavior being set to
- * #svn_fs_move_behavior_no_moves.
+ * #svn_move_behavior_no_moves.
  *
  * @since New in 1.5.
  * @deprecated Provided for backward compatibility with the 1.8 API.

Modified: subversion/branches/log-addressing/subversion/include/svn_types.h
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/include/svn_types.h?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/include/svn_types.h (original)
+++ subversion/branches/log-addressing/subversion/include/svn_types.h Wed Oct 30 01:33:37 2013
@@ -70,7 +70,13 @@ extern "C" {
  */
 #ifndef SVN_EXPERIMENTAL
 # if !defined(SWIGPERL) && !defined(SWIGPYTHON) && !defined(SWIGRUBY)
-#  if !defined(__clang__) && defined(__GNUC__) \
+#  if defined(__has_attribute)
+#    if __has_attribute(__warning__)
+#      define SVN_EXPERIMENTAL __attribute__((warning("experimental function used")))
+#    else
+#      define SVN_EXPERIMENTAL
+#    endif
+#  elif !defined(__llvm__) && defined(__GNUC__) \
       && (__GNUC__ >= 4 || (__GNUC__==3 && __GNUC_MINOR__>=1))
 #   define SVN_EXPERIMENTAL __attribute__((warning("experimental function used")))
 #  elif defined(_MSC_VER) && _MSC_VER >= 1300
@@ -125,6 +131,15 @@ typedef int svn_boolean_t;
 
 
 
+/** Declaration of the null pointer constant type. */
+struct svn_null_pointer_constant_stdarg_sentinel_t;
+
+/** Null pointer constant used as a sentinel in variable argument lists. */
+#define SVN_VA_NULL ((struct svn_null_pointer_constant_stdarg_sentinel_t*)0)
+/* See? (char*)NULL -- They have the same length, but the cast looks ugly. */
+
+
+
 /** Subversion error object.
  *
  * Defined here, rather than in svn_error.h, to avoid a recursive @#include

Modified: subversion/branches/log-addressing/subversion/include/svn_xml.h
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/include/svn_xml.h?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/include/svn_xml.h (original)
+++ subversion/branches/log-addressing/subversion/include/svn_xml.h Wed Oct 30 01:33:37 2013
@@ -312,7 +312,7 @@ svn_xml_make_header(svn_stringbuf_t **st
  * If @a *str is @c NULL, set @a *str to a new stringbuf allocated
  * in @a pool, else append to the existing stringbuf there.
  *
- * Take the tag's attributes from varargs, a NULL-terminated list of
+ * Take the tag's attributes from varargs, a SVN_VA_NULL-terminated list of
  * alternating <tt>char *</tt> key and <tt>char *</tt> val.  Do xml-escaping
  * on each val.
  *

Modified: subversion/branches/log-addressing/subversion/libsvn_client/cmdline.c
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/libsvn_client/cmdline.c?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/libsvn_client/cmdline.c (original)
+++ subversion/branches/log-addressing/subversion/libsvn_client/cmdline.c Wed Oct 30 01:33:37 2013
@@ -278,7 +278,7 @@ svn_client_args_to_target_array2(apr_arr
                 }
             }
 
-          target = apr_pstrcat(pool, true_target, peg_rev, (char *)NULL);
+          target = apr_pstrcat(pool, true_target, peg_rev, SVN_VA_NULL);
 
           if (rel_url_found)
             {
@@ -338,7 +338,7 @@ svn_client_args_to_target_array2(apr_arr
               SVN_ERR(svn_opt__arg_canonicalize_url(&true_target, abs_target,
                                                     pool));
 
-              target = apr_pstrcat(pool, true_target, peg_rev, (char *)NULL);
+              target = apr_pstrcat(pool, true_target, peg_rev, SVN_VA_NULL);
             }
 
           APR_ARRAY_PUSH(*targets_p, const char *) = target;

Modified: subversion/branches/log-addressing/subversion/libsvn_client/commit_util.c
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/libsvn_client/commit_util.c?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/libsvn_client/commit_util.c (original)
+++ subversion/branches/log-addressing/subversion/libsvn_client/commit_util.c Wed Oct 30 01:33:37 2013
@@ -966,17 +966,19 @@ struct handle_descendants_baton
   void *cancel_baton;
   svn_client__check_url_kind_t check_url_func;
   void *check_url_baton;
+  svn_client__committables_t *committables;
 };
 
 /* Helper for the commit harvesters */
 static svn_error_t *
 handle_descendants(void *baton,
-                       const void *key, apr_ssize_t klen, void *val,
-                       apr_pool_t *pool)
+                   const void *key, apr_ssize_t klen, void *val,
+                   apr_pool_t *pool)
 {
   struct handle_descendants_baton *hdb = baton;
   apr_array_header_t *commit_items = val;
   apr_pool_t *iterpool = svn_pool_create(pool);
+  const char *repos_root_url = key;
   int i;
 
   for (i = 0; i < commit_items->nelts; i++)
@@ -1002,32 +1004,64 @@ handle_descendants(void *baton,
 
       for (j = 0; j < absent_descendants->nelts; j++)
         {
-          int k;
-          svn_boolean_t found_item = FALSE;
           svn_node_kind_t kind;
+          svn_client_commit_item3_t *desc_item;
           const char *relpath = APR_ARRAY_IDX(absent_descendants, j,
                                               const char *);
           const char *local_abspath = svn_dirent_join(item->path, relpath,
                                                       iterpool);
 
-          /* If the path has a commit operation, we do nothing.
-             (It will be deleted by the operation) */
-          for (k = 0; k < commit_items->nelts; k++)
+          /* ### Need a sub-iterpool? */
+
+
+          /* We found a 'not present' descendant during a copy (at op_depth>0),
+             this is most commonly caused by copying some mixed revision tree.
+
+             In this case not present can imply that the node does not exist
+             in the parent revision, or that the node does. But we want to copy
+             the working copy state in which it does not exist, but might be
+             replaced. */
+
+          desc_item = svn_hash_gets(hdb->committables->by_path, local_abspath);
+
+          /* If the path has a commit operation (possibly at an higher
+             op_depth, we might want to turn an add in a replace. */
+          if (desc_item)
             {
-              svn_client_commit_item3_t *cmt_item =
-                 APR_ARRAY_IDX(commit_items, k, svn_client_commit_item3_t *);
+              const char *dir;
+              svn_boolean_t found_intermediate = FALSE;
+
+              if (desc_item->state_flags & SVN_CLIENT_COMMIT_ITEM_DELETE)
+                continue; /* We already have a delete or replace */
+              else if (!(desc_item->state_flags & SVN_CLIENT_COMMIT_ITEM_ADD))
+                continue; /* Not a copy/add, just a modification */
 
-              if (! strcmp(cmt_item->path, local_abspath))
+              dir = svn_dirent_dirname(local_abspath, iterpool);
+
+              while (strcmp(dir, item->path))
                 {
-                  found_item = TRUE;
-                  break;
+                  svn_client_commit_item3_t *i_item;
+
+                  i_item = svn_hash_gets(hdb->committables->by_path, dir);
+
+                  if (i_item)
+                    {
+                      if ((i_item->state_flags & SVN_CLIENT_COMMIT_ITEM_DELETE)
+                          || (i_item->state_flags & SVN_CLIENT_COMMIT_ITEM_ADD))
+                        {
+                          found_intermediate = TRUE;
+                          break;
+                        }
+                    }
+                  dir = svn_dirent_dirname(dir, iterpool);
                 }
-            }
 
-          if (found_item)
-            continue; /* We have an explicit delete or replace for this path */
+              if (found_intermediate)
+                continue; /* Some intermediate ancestor is an add or delete */
 
-          /* ### Need a sub-iterpool? */
+              /* Fall through to detect if we need to turn the add in a
+                 replace. */
+            }
 
           if (hdb->check_url_func)
             {
@@ -1045,25 +1079,35 @@ handle_descendants(void *baton,
           else
             kind = svn_node_unknown; /* 'Ok' for a delete of something */
 
-          {
-            /* Add a new commit item that describes the delete */
-            apr_pool_t *result_pool = commit_items->pool;
-            svn_client_commit_item3_t *new_item
-                  = svn_client_commit_item3_create(result_pool);
-
-            new_item->path = svn_dirent_join(item->path, relpath,
-                                             result_pool);
-            new_item->kind = kind;
-            new_item->url = svn_path_url_add_component2(item->url, relpath,
-                                                        result_pool);
-            new_item->revision = SVN_INVALID_REVNUM;
-            new_item->state_flags = SVN_CLIENT_COMMIT_ITEM_DELETE;
-            new_item->incoming_prop_changes = apr_array_make(result_pool, 1,
-                                                 sizeof(svn_prop_t *));
-
-            APR_ARRAY_PUSH(commit_items, svn_client_commit_item3_t *)
-                  = new_item;
-          }
+          if (desc_item)
+            {
+              /* Extend the existing add/copy item to create a replace */
+              desc_item->state_flags |= SVN_CLIENT_COMMIT_ITEM_DELETE;
+              continue;
+            }
+
+          /* Add a new commit item that describes the delete */
+
+          SVN_ERR(add_committable(hdb->committables,
+                                  svn_dirent_join(item->path, relpath,
+                                                  iterpool),
+                                  kind,
+                                  repos_root_url,
+                                  svn_uri_skip_ancestor(
+                                        repos_root_url,
+                                        svn_path_url_add_component2(item->url,
+                                                                    relpath,
+                                                                    iterpool),
+                                        iterpool),
+                                  SVN_INVALID_REVNUM,
+                                  NULL /* copyfrom_relpath */,
+                                  SVN_INVALID_REVNUM,
+                                  NULL /* moved_from_abspath */,
+                                  SVN_CLIENT_COMMIT_ITEM_DELETE,
+                                  NULL /* lock tokens */,
+                                  NULL /* lock */,
+                                  commit_items->pool,
+                                  iterpool));
         }
       }
 
@@ -1181,6 +1225,7 @@ svn_client__harvest_committables(svn_cli
   hdb.cancel_baton = ctx->cancel_baton;
   hdb.check_url_func = check_url_func;
   hdb.check_url_baton = check_url_baton;
+  hdb.committables = *committables;
 
   SVN_ERR(svn_iter_apr_hash(NULL, (*committables)->by_repository,
                             handle_descendants, &hdb, iterpool));
@@ -1274,6 +1319,7 @@ harvest_copy_committables(void *baton, v
   hdb.cancel_baton = btn->ctx->cancel_baton;
   hdb.check_url_func = btn->check_url_func;
   hdb.check_url_baton = btn->check_url_baton;
+  hdb.committables = btn->committables;
 
   SVN_ERR(svn_iter_apr_hash(NULL, btn->committables->by_repository,
                             handle_descendants, &hdb, pool));

Modified: subversion/branches/log-addressing/subversion/libsvn_client/list.c
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/libsvn_client/list.c?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/libsvn_client/list.c (original)
+++ subversion/branches/log-addressing/subversion/libsvn_client/list.c Wed Oct 30 01:33:37 2013
@@ -128,6 +128,10 @@ get_dir_contents(apr_uint32_t dirent_fie
     }
   SVN_ERR(err);
 
+ /* Locks will often be empty.  Prevent pointless lookups in that case. */
+ if (locks && apr_hash_count(locks) == 0)
+   locks = NULL;
+
  /* Filter out svn:externals from all properties hash. */
   if (prop_hash)
     prop_val = svn_hash_gets(prop_hash, SVN_PROP_EXTERNALS);

Modified: subversion/branches/log-addressing/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/log-addressing/subversion/libsvn_client/merge.c?rev=1536950&r1=1536949&r2=1536950&view=diff
==============================================================================
--- subversion/branches/log-addressing/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/log-addressing/subversion/libsvn_client/merge.c Wed Oct 30 01:33:37 2013
@@ -6729,7 +6729,7 @@ merge_range_find_extremes(svn_revnum_t *
     }
 }
 
-/* Wrapper around svn_ra_get_log2(). Invoke RECEIVER with RECEIVER_BATON
+/* Wrapper around svn_ra_get_log3(). Invoke RECEIVER with RECEIVER_BATON
  * on each commit from YOUNGEST_REV to OLDEST_REV in which TARGET_RELPATH
  * changed.  TARGET_RELPATH is relative to RA_SESSION's URL.
  * Important: Revision properties are not retrieved by this function for
@@ -6753,10 +6753,11 @@ get_log(svn_ra_session_t *ra_session,
 
   revprops = apr_array_make(pool, 0, sizeof(const char *));
 
-  SVN_ERR(svn_ra_get_log2(ra_session, log_targets, youngest_rev,
+  SVN_ERR(svn_ra_get_log3(ra_session, log_targets, youngest_rev,
                           oldest_rev, 0 /* limit */, discover_changed_paths,
                           FALSE /* strict_node_history */,
                           FALSE /* include_merged_revisions */,
+                          svn_move_behavior_no_moves, /* ### really? */
                           revprops, receiver, receiver_baton, pool));
 
   return SVN_NO_ERROR;