You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by gb...@apache.org on 2013/10/24 17:11:08 UTC

svn commit: r1535404 [1/3] - in /subversion/branches/invoke-diff-cmd-feature: ./ build/generator/ notes/http-and-webdav/ subversion/bindings/javahl/native/ subversion/bindings/javahl/src/org/apache/subversion/javahl/types/ subversion/bindings/swig/ruby...

Author: gbg
Date: Thu Oct 24 15:11:06 2013
New Revision: 1535404

URL: http://svn.apache.org/r1535404
Log:
On the invoke-diff-cmd-feature branch: trunk revision 1535399 merged into branch revision 1533871.

Modified:
    subversion/branches/invoke-diff-cmd-feature/   (props changed)
    subversion/branches/invoke-diff-cmd-feature/CHANGES
    subversion/branches/invoke-diff-cmd-feature/Makefile.in
    subversion/branches/invoke-diff-cmd-feature/build.conf
    subversion/branches/invoke-diff-cmd-feature/build/generator/gen_win_dependencies.py
    subversion/branches/invoke-diff-cmd-feature/configure.ac
    subversion/branches/invoke-diff-cmd-feature/gen-make.py
    subversion/branches/invoke-diff-cmd-feature/notes/http-and-webdav/webdav-protocol
    subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/JNIUtil.cpp
    subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/OperationContext.cpp
    subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
    subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
    subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_auth_private.h
    subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_dep_compat.h
    subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_utf_private.h
    subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_fs.h
    subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_ra.h
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/merge.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/mergeinfo.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_delta/compat.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs/editor.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs/fs-loader.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/caching.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/lock.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/transaction.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/util.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/   (props changed)
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/changes.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/index.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/lock.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/noderevs.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/transaction.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/util.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/commit.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/log.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/util.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/util_error.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_svn/deprecated.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_svn/marshal.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_repos/commit.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_repos/log.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/auth.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/cmdline.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/config.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/config_file.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/config_win.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/dirent_uri.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/error.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/io.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/named_atomic.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/nls.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/sysinfo.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/utf.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/win32_crypto.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/win32_xlate.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_wc/adm_files.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_wc/upgrade.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_wc/wc_db.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_wc/wc_db_pristine.c
    subversion/branches/invoke-diff-cmd-feature/subversion/mod_authz_svn/mod_authz_svn.c
    subversion/branches/invoke-diff-cmd-feature/subversion/mod_dav_svn/authz.c
    subversion/branches/invoke-diff-cmd-feature/subversion/mod_dav_svn/merge.c
    subversion/branches/invoke-diff-cmd-feature/subversion/mod_dav_svn/reports/log.c
    subversion/branches/invoke-diff-cmd-feature/subversion/mod_dav_svn/repos.c
    subversion/branches/invoke-diff-cmd-feature/subversion/svn/info-cmd.c
    subversion/branches/invoke-diff-cmd-feature/subversion/svnauth/svnauth.c
    subversion/branches/invoke-diff-cmd-feature/subversion/svnserve/serve.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/cmdline/entries-dump.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/cmdline/log_tests.py
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/cmdline/svntest/main.py
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_client/client-test.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_fs_x/   (props changed)
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_fs_x/fs-x-pack-test.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_subr/auth-test.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_subr/dirent_uri-test.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_subr/path-test.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_wc/entries-compat.c
    subversion/branches/invoke-diff-cmd-feature/tools/dev/fsfs-reorg.c
    subversion/branches/invoke-diff-cmd-feature/tools/server-side/fsfs-stats.c
    subversion/branches/invoke-diff-cmd-feature/tools/server-side/svn-populate-node-origins-index.c
    subversion/branches/invoke-diff-cmd-feature/tools/server-side/svn-rep-sharing-stats.c

Propchange: subversion/branches/invoke-diff-cmd-feature/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1533867-1535403

Modified: subversion/branches/invoke-diff-cmd-feature/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/CHANGES?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/CHANGES (original)
+++ subversion/branches/invoke-diff-cmd-feature/CHANGES Thu Oct 24 15:11:06 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/invoke-diff-cmd-feature/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/Makefile.in?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/Makefile.in (original)
+++ subversion/branches/invoke-diff-cmd-feature/Makefile.in Thu Oct 24 15:11:06 2013
@@ -205,6 +205,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 +353,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 +486,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
 

Modified: subversion/branches/invoke-diff-cmd-feature/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/build.conf?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/build.conf (original)
+++ subversion/branches/invoke-diff-cmd-feature/build.conf Thu Oct 24 15:11:06 2013
@@ -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 

Modified: subversion/branches/invoke-diff-cmd-feature/build/generator/gen_win_dependencies.py
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/build/generator/gen_win_dependencies.py?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/build/generator/gen_win_dependencies.py (original)
+++ subversion/branches/invoke-diff-cmd-feature/build/generator/gen_win_dependencies.py Thu Oct 24 15:11:06 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/invoke-diff-cmd-feature/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/configure.ac?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/configure.ac (original)
+++ subversion/branches/invoke-diff-cmd-feature/configure.ac Thu Oct 24 15:11:06 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

Modified: subversion/branches/invoke-diff-cmd-feature/gen-make.py
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/gen-make.py?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/gen-make.py (original)
+++ subversion/branches/invoke-diff-cmd-feature/gen-make.py Thu Oct 24 15:11:06 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/invoke-diff-cmd-feature/notes/http-and-webdav/webdav-protocol
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/notes/http-and-webdav/webdav-protocol?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/notes/http-and-webdav/webdav-protocol (original)
+++ subversion/branches/invoke-diff-cmd-feature/notes/http-and-webdav/webdav-protocol Thu Oct 24 15:11:06 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/invoke-diff-cmd-feature/subversion/bindings/javahl/native/JNIUtil.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/JNIUtil.cpp (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/JNIUtil.cpp Thu Oct 24 15:11:06 2013
@@ -54,16 +54,8 @@
 #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"
@@ -314,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);

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/OperationContext.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/OperationContext.cpp?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/OperationContext.cpp (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/OperationContext.cpp Thu Oct 24 15:11:06 2013
@@ -176,15 +176,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);

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java Thu Oct 24 15:11:06 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/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c Thu Oct 24 15:11:06 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/invoke-diff-cmd-feature/subversion/include/private/svn_auth_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_auth_private.h?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_auth_private.h (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_auth_private.h Thu Oct 24 15:11:06 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/invoke-diff-cmd-feature/subversion/include/private/svn_dep_compat.h
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_dep_compat.h?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_dep_compat.h (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_dep_compat.h Thu Oct 24 15:11:06 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/invoke-diff-cmd-feature/subversion/include/private/svn_utf_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_utf_private.h?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_utf_private.h (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_utf_private.h Thu Oct 24 15:11:06 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/invoke-diff-cmd-feature/subversion/include/svn_fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_fs.h?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_fs.h (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_fs.h Thu Oct 24 15:11:06 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/invoke-diff-cmd-feature/subversion/include/svn_ra.h
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_ra.h?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_ra.h (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_ra.h Thu Oct 24 15:11:06 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/invoke-diff-cmd-feature/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/merge.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/merge.c Thu Oct 24 15:11:06 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;

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/mergeinfo.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/mergeinfo.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/mergeinfo.c Thu Oct 24 15:11:06 2013
@@ -1566,13 +1566,14 @@ logs_for_mergeinfo_rangelist(const char 
     target = apr_array_make(scratch_pool, 1, sizeof(const char *));
     APR_ARRAY_PUSH(target, const char *) = "";
 
-    SVN_ERR(svn_ra_get_log2(ra_session, target,
+    SVN_ERR(svn_ra_get_log3(ra_session, target,
                             oldest_revs_first ? oldest_rev : youngest_rev,
                             oldest_revs_first ? youngest_rev : oldest_rev,
                             0 /* limit */,
                             discover_changed_paths,
                             FALSE /* strict_node_history */,
                             FALSE /* include_merged_revisions */,
+                            svn_move_behavior_no_moves, /* ### really? */
                             revprops,
                             filter_log_entry_with_rangelist, &fleb,
                             scratch_pool));

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_delta/compat.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_delta/compat.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_delta/compat.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_delta/compat.c Thu Oct 24 15:11:06 2013
@@ -1628,7 +1628,7 @@ apply_change(void **dir_baton,
               /* Make this an FS path by prepending "/" */
               if (copyfrom_url[0] != '/')
                 copyfrom_url = apr_pstrcat(scratch_pool, "/",
-                                           copyfrom_url, NULL);
+                                           copyfrom_url, (char *)NULL);
             }
 
           copyfrom_rev = change->copyfrom_rev;

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs/editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs/editor.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs/editor.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs/editor.c Thu Oct 24 15:11:06 2013
@@ -62,7 +62,7 @@ struct edit_baton {
   svn_fs_root_t *root;
 };
 
-#define FSPATH(relpath, pool) apr_pstrcat(pool, "/", relpath, NULL)
+#define FSPATH(relpath, pool) apr_pstrcat(pool, "/", relpath, (char *)NULL)
 #define UNUSED(x) ((void)(x))
 
 

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs/fs-loader.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs/fs-loader.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs/fs-loader.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs/fs-loader.c Thu Oct 24 15:11:06 2013
@@ -989,177 +989,12 @@ svn_fs_revision_root_revision(svn_fs_roo
   return root->is_txn_root ? SVN_INVALID_REVNUM : root->rev;
 }
 
-/* Return TRUE, if CHANGE deleted the node previously found at its target
-   path. */
-static svn_boolean_t
-is_deletion(svn_fs_path_change2_t *change)
-{
-  return change->change_kind == svn_fs_path_change_movereplace
-      || change->change_kind == svn_fs_path_change_replace
-      || change->change_kind == svn_fs_path_change_delete;
-}
-
-/* Change all moves in CHANGES to ADD.  Use POOL for temporary allocations.
- */
-static void
-turn_moves_into_copies(apr_hash_t *changes,
-                       apr_pool_t *pool)
-{
-  apr_hash_index_t *hi;
-  for (hi = apr_hash_first(pool, changes); hi; hi = apr_hash_next(hi))
-    {
-      const char *key;
-      apr_ssize_t klen;
-      svn_fs_path_change2_t *change;
-      apr_hash_this(hi, (const void **)&key, &klen, (void**)&change);
-
-      switch (change->change_kind)
-        {
-          case svn_fs_path_change_move:
-            change->change_kind = svn_fs_path_change_add;
-            break;
-
-          case svn_fs_path_change_movereplace:
-            change->change_kind = svn_fs_path_change_replace;
-            break;
-
-          default:
-            break;
-        }
-    }
-}
-
-/* Replace ADDs with MOVes, if they are unique, have a matching deletion
- * and if the copy-from revision is REVISION-1.  Use POOL for temporary
- * allocations.
- */
-static void
-turn_unique_copies_into_moves(apr_hash_t *changes,
-                              svn_revnum_t revision,
-                              apr_pool_t *pool)
-{
-  apr_hash_index_t *hi;
-  apr_hash_t *unique_copy_sources;
-  const char **sources;
-  int i;
-
-  /* find all copy-from paths (ADD and MOV alike) */
-
-  svn_boolean_t any_deletion = FALSE;
-  apr_array_header_t *copy_sources
-    = apr_array_make(pool, apr_hash_count(changes), sizeof(const char*));
-
-  for (hi = apr_hash_first(pool, changes); hi; hi = apr_hash_next(hi))
-    {
-      svn_fs_path_change2_t *change;
-      apr_hash_this(hi, NULL, NULL, (void**)&change);
-
-      if (change->copyfrom_path && change->copyfrom_rev == revision-1)
-        APR_ARRAY_PUSH(copy_sources, const char *)
-          = change->copyfrom_path;
-
-      any_deletion |= is_deletion(change);
-    }
-
-  /* no suitable copy-from or no deletion -> no moves */
-
-  if (!copy_sources->nelts || !any_deletion)
-    return;
-
-  /* identify copy-from paths that have been mentioned exactly once */
-
-  sources = (const char **)copy_sources->elts;
-  qsort(sources, copy_sources->nelts, copy_sources->elt_size,
-        (int (*)(const void *, const void *))svn_sort_compare_paths);
-
-  unique_copy_sources = apr_hash_make(pool);
-  for (i = 0; i < copy_sources->nelts; ++i)
-    if (   (i == 0 || strcmp(sources[i-1], sources[i]))
-        && (i == copy_sources->nelts-1 || strcmp(sources[i+1], sources[i])))
-      {
-        apr_hash_set(unique_copy_sources, sources[i],
-                     APR_HASH_KEY_STRING, sources[i]);
-      }
-
-  /* no unique copy-from paths -> no moves */
-
-  if (!apr_hash_count(unique_copy_sources))
-    return;
-
-  /* Replace all additions, replacements with a unique copy-from path,
-     the correct copy-from rev and a matching deletion in this revision,
-     with moves and move-replacements, respectively. */
-
-  for (hi = apr_hash_first(pool, changes); hi; hi = apr_hash_next(hi))
-    {
-      const char *key;
-      apr_ssize_t klen;
-      svn_fs_path_change2_t *change, *copy_from_change;
-
-      apr_hash_this(hi, (const void **)&key, &klen, (void**)&change);
-      if (   change->copyfrom_rev != revision-1
-          || !change->copyfrom_path
-          || !apr_hash_get(unique_copy_sources, change->copyfrom_path,
-                           APR_HASH_KEY_STRING))
-        continue;
-
-      copy_from_change = apr_hash_get(changes, change->copyfrom_path,
-                                      APR_HASH_KEY_STRING);
-      if (!copy_from_change || !is_deletion(copy_from_change))
-        continue;
-
-      /* There is a deletion of the ADD's copy-from path in *REVISION*.
-         This can either be the same as in REVISION-1 (o.k.) or must have
-         been replaced by some other node.  However, that would imply that
-         it still got deleted as part of the replacement, i.e. both cases
-         are o.k. */
-
-      switch (change->change_kind)
-        {
-          case svn_fs_path_change_add:
-            change->change_kind = svn_fs_path_change_move;
-            break;
-
-          case svn_fs_path_change_replace:
-            change->change_kind = svn_fs_path_change_movereplace;
-            break;
-
-          default:
-            break;
-        }
-    }
-}
-
 svn_error_t *
-svn_fs_paths_changed3(apr_hash_t **changed_paths_p,
+svn_fs_paths_changed2(apr_hash_t **changed_paths_p,
                       svn_fs_root_t *root,
-                      svn_move_behavior_t move_behavior,
-                      apr_pool_t *pool)
-{
-  SVN_ERR(root->vtable->paths_changed(changed_paths_p, root, pool));
-  switch(move_behavior)
-    {
-      case svn_move_behavior_no_moves:
-        turn_moves_into_copies(*changed_paths_p, pool);
-        break;
-
-      case svn_move_behavior_auto_moves:
-        turn_unique_copies_into_moves(*changed_paths_p, root->rev, pool);
-        break;
-
-      default:
-        break;
-    }
-
-  return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_fs_paths_changed2(apr_hash_t **changed_paths_p, svn_fs_root_t *root,
                       apr_pool_t *pool)
 {
-  return svn_fs_paths_changed3(changed_paths_p, root,
-                               svn_move_behavior_no_moves, pool);
+  return root->vtable->paths_changed(changed_paths_p, root, pool);
 }
 
 svn_error_t *
@@ -1169,8 +1004,7 @@ svn_fs_paths_changed(apr_hash_t **change
   apr_hash_t *changed_paths_new_structs;
   apr_hash_index_t *hi;
 
-  SVN_ERR(svn_fs_paths_changed3(&changed_paths_new_structs, root,
-                                svn_move_behavior_no_moves, pool));
+  SVN_ERR(svn_fs_paths_changed2(&changed_paths_new_structs, root, pool));
   *changed_paths_p = apr_hash_make(pool);
   for (hi = apr_hash_first(pool, changed_paths_new_structs);
        hi;

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/caching.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/caching.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/caching.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/caching.c Thu Oct 24 15:11:06 2013
@@ -394,7 +394,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                       fs,
                       pool));
 
-  prefix = apr_pstrcat(pool, "ns:", cache_namespace, ":", prefix, NULL);
+  prefix = apr_pstrcat(pool, "ns:", cache_namespace, ":", prefix, (char *)NULL);
 
   membuffer = svn_cache__get_global_membuffer_cache();
 

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/fs_fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/fs_fs.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/fs_fs.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/fs_fs.c Thu Oct 24 15:11:06 2013
@@ -245,6 +245,31 @@ check_format_file_buffer_numeric(const c
                                               pool);
 }
 
+/* Return the error SVN_ERR_FS_UNSUPPORTED_FORMAT if FS's format
+   number is not the same as a format number supported by this
+   Subversion. */
+static svn_error_t *
+check_format(int format)
+{
+  /* Blacklist.  These formats may be either younger or older than
+     SVN_FS_FS__FORMAT_NUMBER, but we don't support them. */
+  if (format == SVN_FS_FS__PACKED_REVPROP_SQLITE_DEV_FORMAT)
+    return svn_error_createf(SVN_ERR_FS_UNSUPPORTED_FORMAT, NULL,
+                             _("Found format '%d', only created by "
+                               "unreleased dev builds; see "
+                               "http://subversion.apache.org"
+                               "/docs/release-notes/1.7#revprop-packing"),
+                             format);
+
+  /* We support all formats from 1-current simultaneously */
+  if (1 <= format && format <= SVN_FS_FS__FORMAT_NUMBER)
+    return SVN_NO_ERROR;
+
+  return svn_error_createf(SVN_ERR_FS_UNSUPPORTED_FORMAT, NULL,
+     _("Expected FS format between '1' and '%d'; found format '%d'"),
+     SVN_FS_FS__FORMAT_NUMBER, format);
+}
+
 /* Read the format number and maximum number of files per directory
    from PATH and return them in *PFORMAT and *MAX_FILES_PER_DIR
    respectively.
@@ -295,6 +320,9 @@ read_format(int *pformat, int *max_files
   SVN_ERR(check_format_file_buffer_numeric(buf->data, 0, path, pool));
   SVN_ERR(svn_cstring_atoi(pformat, buf->data));
 
+  /* Check that we support this format at all */
+  SVN_ERR(check_format(*pformat));
+
   /* Set the default values for anything that can be set via an option. */
   *max_files_per_dir = 0;
 
@@ -377,31 +405,6 @@ svn_fs_fs__write_format(svn_fs_t *fs,
   return svn_io_set_file_read_only(path, FALSE, pool);
 }
 
-/* Return the error SVN_ERR_FS_UNSUPPORTED_FORMAT if FS's format
-   number is not the same as a format number supported by this
-   Subversion. */
-static svn_error_t *
-check_format(int format)
-{
-  /* Blacklist.  These formats may be either younger or older than
-     SVN_FS_FS__FORMAT_NUMBER, but we don't support them. */
-  if (format == SVN_FS_FS__PACKED_REVPROP_SQLITE_DEV_FORMAT)
-    return svn_error_createf(SVN_ERR_FS_UNSUPPORTED_FORMAT, NULL,
-                             _("Found format '%d', only created by "
-                               "unreleased dev builds; see "
-                               "http://subversion.apache.org"
-                               "/docs/release-notes/1.7#revprop-packing"),
-                             format);
-
-  /* We support all formats from 1-current simultaneously */
-  if (1 <= format && format <= SVN_FS_FS__FORMAT_NUMBER)
-    return SVN_NO_ERROR;
-
-  return svn_error_createf(SVN_ERR_FS_UNSUPPORTED_FORMAT, NULL,
-     _("Expected FS format between '1' and '%d'; found format '%d'"),
-     SVN_FS_FS__FORMAT_NUMBER, format);
-}
-
 svn_boolean_t
 svn_fs_fs__fs_supports_mergeinfo(svn_fs_t *fs)
 {
@@ -633,7 +636,6 @@ svn_fs_fs__open(svn_fs_t *fs, const char
   /* Read the FS format number. */
   SVN_ERR(read_format(&format, &max_files_per_dir,
                       path_format(fs, pool), pool));
-  SVN_ERR(check_format(format));
 
   /* Now we've got a format number no matter what. */
   ffd->format = format;
@@ -698,7 +700,6 @@ upgrade_body(void *baton, apr_pool_t *po
 
   /* Read the FS format number and max-files-per-dir setting. */
   SVN_ERR(read_format(&format, &max_files_per_dir, format_path, pool));
-  SVN_ERR(check_format(format));
 
   /* If the config file does not exist, create one. */
   SVN_ERR(svn_io_check_path(svn_dirent_join(fs->path, PATH_CONFIG, pool),

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/lock.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/lock.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/lock.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/lock.c Thu Oct 24 15:11:06 2013
@@ -133,7 +133,7 @@ digest_path_from_digest(const char *fs_p
 {
   return svn_dirent_join_many(pool, fs_path, PATH_LOCKS_DIR,
                               apr_pstrmemdup(pool, digest, DIGEST_SUBDIR_LEN),
-                              digest, NULL);
+                              digest, (char *)NULL);
 }
 
 
@@ -151,7 +151,7 @@ digest_path_from_path(const char **diges
   *digest_path = svn_dirent_join_many(pool, fs_path, PATH_LOCKS_DIR,
                                       apr_pstrmemdup(pool, digest,
                                                      DIGEST_SUBDIR_LEN),
-                                      digest, NULL);
+                                      digest, (char *)NULL);
   return SVN_NO_ERROR;
 }
 

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/transaction.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/transaction.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/transaction.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/transaction.c Thu Oct 24 15:11:06 2013
@@ -1000,7 +1000,7 @@ create_txn_dir(const char **id_p,
                                  PATH_TXNS_DIR,
                                  apr_pstrcat(pool, *id_p, PATH_EXT_TXN,
                                              (char *)NULL),
-                                 NULL);
+                                 (char *)NULL);
 
   return svn_io_dir_make(txn_dir, APR_OS_DEFAULT, pool);
 }
@@ -1024,7 +1024,7 @@ create_txn_dir_pre_1_5(const char **id_p
 
   /* Try to create directories named "<txndir>/<rev>-<uniqueifier>.txn". */
   prefix = svn_dirent_join_many(pool, fs->path, PATH_TXNS_DIR,
-                                apr_psprintf(pool, "%ld", rev), NULL);
+                                apr_psprintf(pool, "%ld", rev), (char *)NULL);
 
   subpool = svn_pool_create(pool);
   for (i = 1; i <= 99999; i++)
@@ -2883,23 +2883,23 @@ verify_locks(svn_fs_t *fs,
    Allocate the hashed strings in POOL. */
 static svn_error_t *
 check_for_duplicate_move_source(apr_hash_t *source_paths,
-                                change_t *change,
+                                svn_fs_path_change2_t *change,
                                 apr_pool_t *pool)
 {
-  if (   change->info.change_kind == svn_fs_path_change_move
-      || change->info.change_kind == svn_fs_path_change_movereplace)
-    if (change->info.copyfrom_path)
+  if (   change->change_kind == svn_fs_path_change_move
+      || change->change_kind == svn_fs_path_change_movereplace)
+    if (change->copyfrom_path)
       {
-        apr_size_t len = strlen(change->info.copyfrom_path);
-        if (apr_hash_get(source_paths, change->info.copyfrom_path, len))
+        apr_size_t len = strlen(change->copyfrom_path);
+        if (apr_hash_get(source_paths, change->copyfrom_path, len))
           return svn_error_createf(SVN_ERR_FS_AMBIGUOUS_MOVE, NULL,
                       _("Path '%s' has been moved to more than one target"),
-                                   change->info.copyfrom_path);
+                                   change->copyfrom_path);
 
         apr_hash_set(source_paths,
-                     apr_pstrmemdup(pool, change->info.copyfrom_path, len),
+                     apr_pstrmemdup(pool, change->copyfrom_path, len),
                      len,
-                     change->info.copyfrom_path);
+                     change->copyfrom_path);
       }
 
   return SVN_NO_ERROR;
@@ -2932,12 +2932,12 @@ verify_moves(svn_fs_t *fs,
     {
       const char *path;
       apr_ssize_t len;
-      change_t *change;
+      svn_fs_path_change2_t *change;
       apr_hash_this(hi, (const void**)&path, &len, (void**)&change);
 
-      if (   change->info.copyfrom_path
-          && (   change->info.change_kind == svn_fs_path_change_move
-              || change->info.change_kind == svn_fs_path_change_movereplace))
+      if (   change->copyfrom_path
+          && (   change->change_kind == svn_fs_path_change_move
+              || change->change_kind == svn_fs_path_change_movereplace))
         {
           svn_sort__item_t *item = apr_array_push(moves);
           item->key = path;
@@ -2945,9 +2945,9 @@ verify_moves(svn_fs_t *fs,
           item->value = change;
         }
 
-      if (   change->info.change_kind == svn_fs_path_change_delete
-          || change->info.change_kind == svn_fs_path_change_replace
-          || change->info.change_kind == svn_fs_path_change_movereplace)
+      if (   change->change_kind == svn_fs_path_change_delete
+          || change->change_kind == svn_fs_path_change_replace
+          || change->change_kind == svn_fs_path_change_movereplace)
         APR_ARRAY_PUSH(deletions, const char *) = path;
     }
 
@@ -2978,10 +2978,9 @@ verify_moves(svn_fs_t *fs,
                                        deleted_path);
           if (relpath)
             {
-              change_t *closed_move = closest_move_item->value;
+              svn_fs_path_change2_t *closed_move = closest_move_item->value;
               APR_ARRAY_IDX(deletions, i, const char*)
-                = svn_dirent_join(closed_move->info.copyfrom_path, relpath,
-                                  pool);
+                = svn_dirent_join(closed_move->copyfrom_path, relpath, pool);
             }
         }
     }
@@ -3007,7 +3006,8 @@ verify_moves(svn_fs_t *fs,
 
       changes_p = (change_t **)&changes->elts;
       for (i = 0; i < changes->nelts; ++i)
-        SVN_ERR(check_for_duplicate_move_source(source_paths, changes_p[i],
+        SVN_ERR(check_for_duplicate_move_source(source_paths,
+                                                &changes_p[i]->info,
                                                 pool));
     }
 
@@ -3015,23 +3015,24 @@ verify_moves(svn_fs_t *fs,
 
   for (i = 0; i < moves->nelts; ++i)
     {
-      change_t *change = APR_ARRAY_IDX(moves, i, svn_sort__item_t).value;
+      svn_fs_path_change2_t *change
+        = APR_ARRAY_IDX(moves, i, svn_sort__item_t).value;
 
       /* there must be a deletion of move's copy-from path
          (or any of its parents) */
 
       int closest_deletion_idx
-        = svn_sort__bsearch_lower_bound(change->info.copyfrom_path, deletions,
+        = svn_sort__bsearch_lower_bound(change->copyfrom_path, deletions,
                                         svn_sort_compare_paths);
       if (closest_deletion_idx < deletions->nelts)
         {
           const char *closest_deleted_path
             = APR_ARRAY_IDX(deletions, closest_deletion_idx, const char *);
           if (!svn_dirent_is_ancestor(closest_deleted_path,
-                                      change->info.copyfrom_path))
+                                      change->copyfrom_path))
             return svn_error_createf(SVN_ERR_FS_INCOMPLETE_MOVE, NULL,
                         _("Path '%s' has been moved without being deleted"),
-                                     change->info.copyfrom_path);
+                                     change->copyfrom_path);
         }
     }
 

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/util.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/util.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/util.c Thu Oct 24 15:11:06 2013
@@ -98,7 +98,7 @@ svn_fs_fs__path_rev_packed(svn_fs_t *fs,
                               apr_psprintf(pool,
                                            "%ld" PATH_EXT_PACKED_SHARD,
                                            rev / ffd->max_files_per_dir),
-                              kind, NULL);
+                              kind, (char *)NULL);
 }
 
 const char *
@@ -110,7 +110,7 @@ svn_fs_fs__path_rev_shard(svn_fs_t *fs, 
   return svn_dirent_join_many(pool, fs->path, PATH_REVS_DIR,
                               apr_psprintf(pool, "%ld",
                                                  rev / ffd->max_files_per_dir),
-                              NULL);
+                              (char *)NULL);
 }
 
 const char *
@@ -128,7 +128,7 @@ svn_fs_fs__path_rev(svn_fs_t *fs, svn_re
     }
 
   return svn_dirent_join_many(pool, fs->path, PATH_REVS_DIR,
-                              apr_psprintf(pool, "%ld", rev), NULL);
+                              apr_psprintf(pool, "%ld", rev), (char *)NULL);
 }
 
 const char *
@@ -155,7 +155,7 @@ svn_fs_fs__path_revprops_shard(svn_fs_t 
   return svn_dirent_join_many(pool, fs->path, PATH_REVPROPS_DIR,
                               apr_psprintf(pool, "%ld",
                                            rev / ffd->max_files_per_dir),
-                              NULL);
+                              (char *)NULL);
 }
 
 const char *
@@ -169,7 +169,7 @@ svn_fs_fs__path_revprops_pack_shard(svn_
   return svn_dirent_join_many(pool, fs->path, PATH_REVPROPS_DIR,
                               apr_psprintf(pool, "%ld" PATH_EXT_PACKED_SHARD,
                                            rev / ffd->max_files_per_dir),
-                              NULL);
+                              (char *)NULL);
 }
 
 const char *
@@ -187,7 +187,7 @@ svn_fs_fs__path_revprops(svn_fs_t *fs,
     }
 
   return svn_dirent_join_many(pool, fs->path, PATH_REVPROPS_DIR,
-                              apr_psprintf(pool, "%ld", rev), NULL);
+                              apr_psprintf(pool, "%ld", rev), (char *)NULL);
 }
 
 /* Return TO_ADD appended to the C string representation of TXN_ID.
@@ -211,7 +211,7 @@ svn_fs_fs__path_txn_dir(svn_fs_t *fs,
   return svn_dirent_join_many(pool, fs->path, PATH_TXNS_DIR,
                               combine_txn_id_string(txn_id, PATH_EXT_TXN,
                                                     pool),
-                              NULL);
+                              (char *)NULL);
 }
 
 const char *
@@ -224,7 +224,7 @@ svn_fs_fs__path_txn_proto_rev(svn_fs_t *
     return svn_dirent_join_many(pool, fs->path, PATH_TXN_PROTOS_DIR,
                                 combine_txn_id_string(txn_id, PATH_EXT_REV,
                                                       pool),
-                                NULL);
+                                (char *)NULL);
   else
     return svn_dirent_join(svn_fs_fs__path_txn_dir(fs, txn_id, pool),
                            PATH_REV, pool);
@@ -241,7 +241,7 @@ svn_fs_fs__path_txn_proto_rev_lock(svn_f
                                 combine_txn_id_string(txn_id,
                                                       PATH_EXT_REV_LOCK,
                                                       pool),
-                                NULL);
+                                (char *)NULL);
   else
     return svn_dirent_join(svn_fs_fs__path_txn_dir(fs, txn_id, pool),
                            PATH_REV_LOCK, pool);
@@ -292,7 +292,7 @@ svn_fs_fs__path_node_origin(svn_fs_t *fs
     buffer[len - 1] = '\0';
 
   return svn_dirent_join_many(pool, fs->path, PATH_NODE_ORIGINS_DIR,
-                              buffer, NULL);
+                              buffer, (char *)NULL);
 }
 
 const char *

Propchange: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/
------------------------------------------------------------------------------
  Merged /subversion/trunk/subversion/libsvn_fs_x:r1531701-1535403

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/changes.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/changes.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/changes.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/changes.c Thu Oct 24 15:11:06 2013
@@ -249,8 +249,10 @@ svn_fs_x__changes_get_list(apr_array_hea
   /* validate index */
   if (idx + 1 >= (apr_size_t)changes->offsets->nelts)
     return svn_error_createf(SVN_ERR_FS_CONTAINER_INDEX, NULL,
-                             _("Changes list index %" APR_SIZE_T_FMT
-                               " exceeds container size %d"),
+                             apr_psprintf(pool,
+                                          _("Changes list index %%%s"
+                                            " exceeds container size %%d"),
+                                          APR_SIZE_T_FMT),
                              idx, changes->offsets->nelts - 1);
 
   /* range of changes to return */

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/index.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/index.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/index.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/index.c Thu Oct 24 15:11:06 2013
@@ -1220,13 +1220,16 @@ static svn_error_t *
 l2p_page_get_offset(l2p_page_baton_t *baton,
                     const l2p_page_t *page,
                     const apr_off_t *offsets,
-                    const apr_uint32_t *sub_items)
+                    const apr_uint32_t *sub_items,
+                    apr_pool_t *pool)
 {
   /* overflow check */
   if (page->entry_count <= baton->page_offset)
     return svn_error_createf(SVN_ERR_FS_ITEM_INDEX_OVERFLOW , NULL,
-                             _("Item index %" APR_UINT64_T_FMT
-                               " too large in revision %ld"),
+                             apr_psprintf(pool,
+                                          _("Item index %%%s too large in"
+                                            " revision %%ld"),
+                                          APR_UINT64_T_FMT),
                              baton->item_index, baton->revision);
 
   /* return the result */
@@ -1254,7 +1257,7 @@ l2p_page_access_func(void **out,
     = svn_temp_deserializer__ptr(page, (const void *const *)&page->sub_items);
 
   /* return the requested data */
-  return l2p_page_get_offset(baton, page, offsets, sub_items);
+  return l2p_page_get_offset(baton, page, offsets, sub_items, result_pool);
 }
 
 /* Data request structure used by l2p_page_table_access_func.
@@ -1484,7 +1487,7 @@ l2p_index_lookup(apr_off_t *offset,
       /* cache the page and extract the result we need */
       SVN_ERR(svn_cache__set(ffd->l2p_page_cache, &key, page, pool));
       SVN_ERR(l2p_page_get_offset(&page_baton, page, page->offsets,
-                                  page->sub_items));
+                                  page->sub_items, pool));
 
       /* prefetch pages from following and preceding revisions */
       pages = apr_array_make(pool, 16, sizeof(l2p_page_table_entry_t));

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/lock.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/lock.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/lock.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/lock.c Thu Oct 24 15:11:06 2013
@@ -134,7 +134,7 @@ digest_path_from_digest(const char *fs_p
 {
   return svn_dirent_join_many(pool, fs_path, PATH_LOCKS_DIR,
                               apr_pstrmemdup(pool, digest, DIGEST_SUBDIR_LEN),
-                              digest, NULL);
+                              digest, (char *)NULL);
 }
 
 
@@ -152,7 +152,7 @@ digest_path_from_path(const char **diges
   *digest_path = svn_dirent_join_many(pool, fs_path, PATH_LOCKS_DIR,
                                       apr_pstrmemdup(pool, digest,
                                                      DIGEST_SUBDIR_LEN),
-                                      digest, NULL);
+                                      digest, (char *)NULL);
   return SVN_NO_ERROR;
 }
 

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/noderevs.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/noderevs.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/noderevs.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/noderevs.c Thu Oct 24 15:11:06 2013
@@ -468,8 +468,10 @@ svn_fs_x__noderevs_get(node_revision_t *
   /* validate index */
   if (idx >= (apr_size_t)container->noderevs->nelts)
     return svn_error_createf(SVN_ERR_FS_CONTAINER_INDEX, NULL,
-                             _("Node revision index %" APR_SIZE_T_FMT
-                               " exceeds container size %d"),
+                             apr_psprintf(pool,
+                                          _("Node revision index %%%s"
+                                            " exceeds container size %%d"),
+                                          APR_SIZE_T_FMT),
                              idx, container->noderevs->nelts);
 
   /* allocate result struct and fill it field by field */
@@ -720,9 +722,11 @@ read_reps(apr_array_header_t **reps_p,
       bytes = svn_packed__get_bytes(digest_stream, &len);
       if (len != sizeof(rep.md5_digest))
         return svn_error_createf(SVN_ERR_FS_CONTAINER_INDEX, NULL,
-                                _("Unexpected MD5 digest size %"
-                                  APR_SIZE_T_FMT),
-                                len);
+                                 apr_psprintf(pool,
+                                              _("Unexpected MD5"
+                                                " digest size %%%s"),
+                                              APR_SIZE_T_FMT),
+                                 len);
 
       memcpy(rep.md5_digest, bytes, sizeof(rep.md5_digest));
       if (rep.has_sha1)
@@ -730,9 +734,11 @@ read_reps(apr_array_header_t **reps_p,
           bytes = svn_packed__get_bytes(digest_stream, &len);
           if (len != sizeof(rep.sha1_digest))
             return svn_error_createf(SVN_ERR_FS_CONTAINER_INDEX, NULL,
-                                    _("Unexpected SHA1 digest size %"
-                                      APR_SIZE_T_FMT),
-                                    len);
+                                     apr_psprintf(pool,
+                                                  _("Unexpected SHA1"
+                                                    " digest size %%%s"),
+                                                  APR_SIZE_T_FMT),
+                                     len);
 
           memcpy(rep.sha1_digest, bytes, sizeof(rep.sha1_digest));
         }

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/transaction.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/transaction.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/transaction.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/transaction.c Thu Oct 24 15:11:06 2013
@@ -1045,7 +1045,7 @@ create_txn_dir(const char **id_p,
                                  PATH_TXNS_DIR,
                                  apr_pstrcat(pool, *id_p, PATH_EXT_TXN,
                                              (char *)NULL),
-                                 NULL);
+                                 (char *)NULL);
 
   return svn_io_dir_make(txn_dir, APR_OS_DEFAULT, pool);
 }

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/util.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/util.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/util.c Thu Oct 24 15:11:06 2013
@@ -141,7 +141,7 @@ svn_fs_x__path_rev_packed(svn_fs_t *fs, 
                               apr_psprintf(pool,
                                            "%ld" PATH_EXT_PACKED_SHARD,
                                            rev / ffd->max_files_per_dir),
-                              kind, NULL);
+                              kind, (char *)NULL);
 }
 
 const char *
@@ -151,7 +151,7 @@ svn_fs_x__path_rev_shard(svn_fs_t *fs, s
   return svn_dirent_join_many(pool, fs->path, PATH_REVS_DIR,
                               apr_psprintf(pool, "%ld",
                                                  rev / ffd->max_files_per_dir),
-                              NULL);
+                              (char *)NULL);
 }
 
 const char *
@@ -202,7 +202,7 @@ svn_fs_x__path_revprops_shard(svn_fs_t *
   return svn_dirent_join_many(pool, fs->path, PATH_REVPROPS_DIR,
                               apr_psprintf(pool, "%ld",
                                            rev / ffd->max_files_per_dir),
-                              NULL);
+                              (char *)NULL);
 }
 
 const char *
@@ -215,7 +215,7 @@ svn_fs_x__path_revprops_pack_shard(svn_f
   return svn_dirent_join_many(pool, fs->path, PATH_REVPROPS_DIR,
                               apr_psprintf(pool, "%ld" PATH_EXT_PACKED_SHARD,
                                            rev / ffd->max_files_per_dir),
-                              NULL);
+                              (char *)NULL);
 }
 
 const char *
@@ -247,7 +247,7 @@ svn_fs_x__path_txn_dir(svn_fs_t *fs,
   return svn_dirent_join_many(pool, fs->path, PATH_TXNS_DIR,
                               combine_txn_id_string(txn_id, PATH_EXT_TXN,
                                                     pool),
-                              NULL);
+                              (char *)NULL);
 }
 
 /* Return the name of the sha1->rep mapping file in transaction TXN_ID
@@ -336,7 +336,7 @@ svn_fs_x__path_txn_proto_rev(svn_fs_t *f
   return svn_dirent_join_many(pool, fs->path, PATH_TXN_PROTOS_DIR,
                               combine_txn_id_string(txn_id, PATH_EXT_REV,
                                                     pool),
-                              NULL);
+                              (char *)NULL);
 }
 
 const char *
@@ -348,7 +348,7 @@ svn_fs_x__path_txn_proto_rev_lock(svn_fs
                               combine_txn_id_string(txn_id,
                                                     PATH_EXT_REV_LOCK,
                                                     pool),
-                              NULL);
+                              (char *)NULL);
 }
 
 const char *
@@ -394,7 +394,7 @@ svn_fs_x__path_node_origin(svn_fs_t *fs,
     buffer[len - 1] = '\0';
 
   return svn_dirent_join_many(pool, fs->path, PATH_NODE_ORIGINS_DIR,
-                              buffer, NULL);
+                              buffer, (char *)NULL);
 }
 
 

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/commit.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/commit.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/commit.c Thu Oct 24 15:11:06 2013
@@ -1933,18 +1933,11 @@ add_file(const char *path,
 
       if (handler->sline.code != 404)
         {
-          if (handler->sline.code != 200)
-            {
-              svn_error_t *err;
-
-              err = svn_ra_serf__error_on_status(handler->sline,
-                                                 handler->path,
-                                                 handler->location);
+          SVN_ERR(svn_ra_serf__error_on_status(handler->sline,
+                                               handler->path,
+                                               handler->location));
 
-              SVN_ERR(err);
-            }
-
-          return svn_error_createf(SVN_ERR_FS_ALREADY_EXISTS, NULL,
+         return svn_error_createf(SVN_ERR_FS_ALREADY_EXISTS, NULL,
                                    _("File '%s' already exists"), path);
         }
     }

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/log.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/log.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/log.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/log.c Thu Oct 24 15:11:06 2013
@@ -60,6 +60,8 @@ enum log_state_e {
   HAS_CHILDREN,
   ADDED_PATH,
   REPLACED_PATH,
+  MOVED_PATH,
+  MOVE_REPLACED_PATH,
   DELETED_PATH,
   MODIFIED_PATH,
   SUBTRACTIVE_MERGE
@@ -137,6 +139,14 @@ static const svn_ra_serf__xml_transition
     TRUE, { "?node-kind", "?text-mods", "?prop-mods",
             "?copyfrom-path", "?copyfrom-rev", NULL }, TRUE },
 
+  { ITEM, S_, "moved-path", MOVED_PATH,
+    TRUE, { "?node-kind", "?text-mods", "?prop-mods",
+            "?copyfrom-path", "?copyfrom-rev", NULL }, TRUE },
+
+  { ITEM, S_, "replaced-by-moved-path", MOVE_REPLACED_PATH,
+    TRUE, { "?node-kind", "?text-mods", "?prop-mods",
+            "?copyfrom-path", "?copyfrom-rev", NULL }, TRUE },
+
   { ITEM, S_, "deleted-path", DELETED_PATH,
     TRUE, { "?node-kind", "?text-mods", "?prop-mods", NULL }, TRUE },
 
@@ -384,6 +394,10 @@ log_closed(svn_ra_serf__xml_estate_t *xe
         action = 'A';
       else if (leaving_state == REPLACED_PATH)
         action = 'R';
+      else if (leaving_state == MOVED_PATH)
+        action = 'V';
+      else if (leaving_state == MOVE_REPLACED_PATH)
+        action = 'E';
       else if (leaving_state == DELETED_PATH)
         action = 'D';
       else

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/util.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/util.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/util.c Thu Oct 24 15:11:06 2013
@@ -48,6 +48,7 @@
 #include "private/svn_dep_compat.h"
 #include "private/svn_fspath.h"
 #include "private/svn_subr_private.h"
+#include "private/svn_auth_private.h"
 
 #include "ra_serf.h"
 
@@ -275,13 +276,8 @@ ssl_server_cert(void *baton, int failure
   void *creds;
   int found_matching_hostname = 0;
 
-  /* Implicitly approve any non-server certs. */
-  if (serf_ssl_cert_depth(cert) > 0)
-    {
-      if (failures)
-        conn->server_cert_failures |= ssl_convert_serf_failures(failures);
-      return APR_SUCCESS;
-    }
+  if (!failures && ! conn->server_cert_failures)
+    return SVN_NO_ERROR;
 
   /* Extract the info from the certificate */
   subject = serf_ssl_cert_subject(cert, scratch_pool);
@@ -305,6 +301,58 @@ ssl_server_cert(void *baton, int failure
   svn_failures = (ssl_convert_serf_failures(failures)
                   | conn->server_cert_failures);
 
+  /* Handle any non-server certs. */
+  if (serf_ssl_cert_depth(cert) > 0)
+    {
+      svn_error_t *err;
+
+      svn_auth_set_parameter(conn->session->wc_callbacks->auth_baton,
+                             SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO,
+                             &cert_info);
+
+      svn_auth_set_parameter(conn->session->wc_callbacks->auth_baton,
+                             SVN_AUTH_PARAM_SSL_SERVER_FAILURES,
+                             &svn_failures);
+
+      realmstring = apr_psprintf(scratch_pool, "AUTHORITY:%s",
+                                 cert_info.fingerprint);
+
+      err = svn_auth_first_credentials(&creds, &state,
+                                       SVN_AUTH_CRED_SSL_SERVER_AUTHORITY,
+                                       realmstring,
+                                       conn->session->wc_callbacks->auth_baton,
+                                       scratch_pool);
+
+      svn_auth_set_parameter(conn->session->wc_callbacks->auth_baton,
+                             SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO, NULL);
+
+      svn_auth_set_parameter(conn->session->wc_callbacks->auth_baton,
+                             SVN_AUTH_PARAM_SSL_SERVER_FAILURES, NULL);
+
+      if (err)
+        {
+          if (err->apr_err != SVN_ERR_AUTHN_NO_PROVIDER)
+            return svn_error_trace(err);
+
+          /* No provider registered that handles server authorities */
+          svn_error_clear(err);
+          creds = NULL;
+        }
+
+      if (creds)
+        {
+          server_creds = creds;
+          SVN_ERR(svn_auth_save_credentials(state, scratch_pool));
+
+          svn_failures &= ~server_creds->accepted_failures;
+        }
+
+      if (svn_failures)
+        conn->server_cert_failures |= svn_failures;
+
+      return APR_SUCCESS;
+    }
+
   /* Try to find matching server name via subjectAltName first... */
   if (san) {
       int i;

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/util_error.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/util_error.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/util_error.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/util_error.c Thu Oct 24 15:11:06 2013
@@ -88,7 +88,8 @@ svn_ra_serf__wrap_err(apr_status_t statu
         }
       if (err_msg)
         {
-          err->message = apr_pstrcat(err->pool, msg, ": ", err_msg, NULL);
+          err->message = apr_pstrcat(err->pool, msg, ": ", err_msg,
+                                     (char *)NULL);
         }
       else
         {

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_svn/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_svn/deprecated.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_svn/deprecated.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_svn/deprecated.c Thu Oct 24 15:11:06 2013
@@ -232,3 +232,27 @@ svn_ra_svn_write_cmd_failure(svn_ra_svn_
 {
   return svn_error_trace(svn_ra_svn__write_cmd_failure(conn, pool, err));
 }
+
+/* From marshal.c */
+svn_ra_svn_conn_t *
+svn_ra_svn_create_conn2(apr_socket_t *sock,
+                        apr_file_t *in_file,
+                        apr_file_t *out_file,
+                        int compression_level,
+                        apr_pool_t *pool)
+{
+  return svn_ra_svn_create_conn3(sock, in_file, out_file,
+                                 compression_level, 0, 0, pool);
+}
+
+/* backward-compatible implementation using the default compression level */
+svn_ra_svn_conn_t *
+svn_ra_svn_create_conn(apr_socket_t *sock,
+                       apr_file_t *in_file,
+                       apr_file_t *out_file,
+                       apr_pool_t *pool)
+{
+  return svn_ra_svn_create_conn3(sock, in_file, out_file,
+                                 SVN_DELTA_COMPRESSION_LEVEL_DEFAULT, 0, 0,
+                                 pool);
+}

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_svn/marshal.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_svn/marshal.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_svn/marshal.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_svn/marshal.c Thu Oct 24 15:11:06 2013
@@ -139,27 +139,6 @@ svn_ra_svn_conn_t *svn_ra_svn_create_con
   return conn;
 }
 
-svn_ra_svn_conn_t *svn_ra_svn_create_conn2(apr_socket_t *sock,
-                                           apr_file_t *in_file,
-                                           apr_file_t *out_file,
-                                           int compression_level,
-                                           apr_pool_t *pool)
-{
-  return svn_ra_svn_create_conn3(sock, in_file, out_file,
-                                 compression_level, 0, 0, pool);
-}
-
-/* backward-compatible implementation using the default compression level */
-svn_ra_svn_conn_t *svn_ra_svn_create_conn(apr_socket_t *sock,
-                                          apr_file_t *in_file,
-                                          apr_file_t *out_file,
-                                          apr_pool_t *pool)
-{
-  return svn_ra_svn_create_conn3(sock, in_file, out_file,
-                                 SVN_DELTA_COMPRESSION_LEVEL_DEFAULT, 0, 0,
-                                 pool);
-}
-
 svn_error_t *svn_ra_svn_set_capabilities(svn_ra_svn_conn_t *conn,
                                          const apr_array_header_t *list)
 {

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_repos/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_repos/commit.c?rev=1535404&r1=1535403&r2=1535404&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_repos/commit.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_repos/commit.c Thu Oct 24 15:11:06 2013
@@ -1013,7 +1013,7 @@ ev2_check_authz(const struct ev2_baton *
     return SVN_NO_ERROR;
 
   if (relpath)
-    fspath = apr_pstrcat(scratch_pool, "/", relpath, NULL);
+    fspath = apr_pstrcat(scratch_pool, "/", relpath, (char *)NULL);
   else
     fspath = NULL;