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/11/01 21:27:22 UTC

svn commit: r1538050 [1/5] - in /subversion/branches/invoke-diff-cmd-feature: ./ build/ build/ac-macros/ subversion/bindings/javahl/ subversion/bindings/javahl/native/ subversion/bindings/javahl/src/org/apache/subversion/javahl/ subversion/bindings/jav...

Author: gbg
Date: Fri Nov  1 20:27:19 2013
New Revision: 1538050

URL: http://svn.apache.org/r1538050
Log:
On the invoke-diff-cmd-feature branch: trunk revision 1538048 merged into branch revision 1537987.

Added:
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_subr/sqlite-test.c
      - copied unchanged from r1538048, subversion/trunk/subversion/tests/libsvn_subr/sqlite-test.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_subr/zlib.deflated
      - copied unchanged from r1538048, subversion/trunk/subversion/tests/libsvn_subr/zlib.deflated
Modified:
    subversion/branches/invoke-diff-cmd-feature/   (props changed)
    subversion/branches/invoke-diff-cmd-feature/Makefile.in
    subversion/branches/invoke-diff-cmd-feature/build.conf
    subversion/branches/invoke-diff-cmd-feature/build/ac-macros/compiler.m4
    subversion/branches/invoke-diff-cmd-feature/build/run_ctypesgen.sh
    subversion/branches/invoke-diff-cmd-feature/configure.ac
    subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/README
    subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/CommitEditor.cpp
    subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/OperationContext.cpp
    subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/PropertyTable.cpp
    subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/PropertyTable.h
    subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
    subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java
    subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
    subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
    subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java
    subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/perl/native/Makefile.PL.in
    subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_sqlite.h
    subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_subr_private.h
    subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_dirent_uri.h
    subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_path.h
    subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_types.h
    subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_xml.h
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/cmdline.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/commit_util.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/patch.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_base/bdb/locks-table.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_base/lock.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/caching.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/fs.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/tree.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/caching.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/fs.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/fs_x.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/lock.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/transaction.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/tree.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/util.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_local/ra_plugin.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/commit.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/getlocks.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/locks.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/property.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/serf.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_serf/update.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/client.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_ra_svn/cyrus_auth.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_repos/authz.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_repos/commit.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_repos/config_pool.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_repos/dump.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_repos/hooks.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_repos/reporter.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_repos/rev_hunt.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/auth.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/cache-memcache.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/checksum.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/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/log.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/mergeinfo.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/named_atomic.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/opt.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/path.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_subr/sqlite.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_wc/adm_files.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_wc/externals.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_wc/old-and-busted.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_wc/relocate.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_wc/upgrade.c
    subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_wc/wc-queries.sql
    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/lock.c
    subversion/branches/invoke-diff-cmd-feature/subversion/mod_dav_svn/mirror.c
    subversion/branches/invoke-diff-cmd-feature/subversion/mod_dav_svn/mod_dav_svn.c
    subversion/branches/invoke-diff-cmd-feature/subversion/mod_dav_svn/reports/replay.c
    subversion/branches/invoke-diff-cmd-feature/subversion/mod_dav_svn/reports/update.c
    subversion/branches/invoke-diff-cmd-feature/subversion/mod_dav_svn/repos.c
    subversion/branches/invoke-diff-cmd-feature/subversion/mod_dav_svn/version.c
    subversion/branches/invoke-diff-cmd-feature/subversion/svn/conflict-callbacks.c
    subversion/branches/invoke-diff-cmd-feature/subversion/svn/info-cmd.c
    subversion/branches/invoke-diff-cmd-feature/subversion/svn/notify.c
    subversion/branches/invoke-diff-cmd-feature/subversion/svn/status.c
    subversion/branches/invoke-diff-cmd-feature/subversion/svnauth/svnauth.c
    subversion/branches/invoke-diff-cmd-feature/subversion/svndumpfilter/svndumpfilter.c
    subversion/branches/invoke-diff-cmd-feature/subversion/svnmucc/svnmucc.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/cmdline/davautocheck.sh
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/cmdline/diff_tests.py
    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/merge_tests.py
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/cmdline/move_tests.py
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/cmdline/svnadmin_tests.py
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_client/   (props changed)
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_client/client-test.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_delta/random-test.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_diff/   (props changed)
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_diff/diff-diff3-test.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_fs_fs/   (props changed)
    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_ra_local/ra-local-test.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_repos/   (props changed)
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_repos/repos-test.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_subr/   (props changed)
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_subr/checksum-test.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_subr/config-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_subr/translate-test.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_wc/entries-compat.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_wc/utils.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/libsvn_wc/wc-queries-test.c
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/svn_test.h
    subversion/branches/invoke-diff-cmd-feature/subversion/tests/svn_test_main.c
    subversion/branches/invoke-diff-cmd-feature/tools/client-side/svn-bench/notify.c
    subversion/branches/invoke-diff-cmd-feature/tools/dev/unix-build/Makefile.svn
    subversion/branches/invoke-diff-cmd-feature/tools/server-side/mod_dontdothat/mod_dontdothat.c

Propchange: subversion/branches/invoke-diff-cmd-feature/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1535404-1538048

Modified: subversion/branches/invoke-diff-cmd-feature/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/Makefile.in?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/Makefile.in (original)
+++ subversion/branches/invoke-diff-cmd-feature/Makefile.in Fri Nov  1 20:27:19 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)
@@ -909,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/invoke-diff-cmd-feature/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/build.conf?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/build.conf (original)
+++ subversion/branches/invoke-diff-cmd-feature/build.conf Fri Nov  1 20:27:19 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
@@ -871,7 +871,7 @@ type = exe
 path = subversion/tests/libsvn_subr
 sources = checksum-test.c
 install = test
-libs = libsvn_test libsvn_subr apr
+libs = libsvn_test libsvn_subr apr zlib
 msvc-force-static = yes
 
 [compat-test]
@@ -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/invoke-diff-cmd-feature/build/ac-macros/compiler.m4
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/build/ac-macros/compiler.m4?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/build/ac-macros/compiler.m4 (original)
+++ subversion/branches/invoke-diff-cmd-feature/build/ac-macros/compiler.m4 Fri Nov  1 20:27:19 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/invoke-diff-cmd-feature/build/run_ctypesgen.sh
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/build/run_ctypesgen.sh?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/build/run_ctypesgen.sh (original)
+++ subversion/branches/invoke-diff-cmd-feature/build/run_ctypesgen.sh Fri Nov  1 20:27:19 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/invoke-diff-cmd-feature/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/configure.ac?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/configure.ac (original)
+++ subversion/branches/invoke-diff-cmd-feature/configure.ac Fri Nov  1 20:27:19 2013
@@ -1490,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/invoke-diff-cmd-feature/subversion/bindings/javahl/README
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/README?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/README (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/README Fri Nov  1 20:27:19 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/invoke-diff-cmd-feature/subversion/bindings/javahl/native/CommitEditor.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/CommitEditor.cpp?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/CommitEditor.cpp (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/CommitEditor.cpp Fri Nov  1 20:27:19 2013
@@ -89,7 +89,7 @@ CommitEditor::CommitEditor(RemoteSession
                                &m_callback_session_uuid,
                                pool.getPool()),);
 
-  PropertyTable revprops(jrevprops, true);
+  PropertyTable revprops(jrevprops, true, true);
   if (JNIUtil::isJavaExceptionThrown())
     return;
   LockTokenTable lock_tokens(jlock_tokens);
@@ -100,7 +100,7 @@ CommitEditor::CommitEditor(RemoteSession
   SVN_JNI_ERR(svn_ra__get_commit_ev2(
                   &m_editor,
                   session->m_session,
-                  revprops.hash(subPool, false),
+                  revprops.hash(subPool),
                   m_callback.callback, &m_callback,
                   lock_tokens.hash(subPool, true),
                   bool(jkeep_locks),
@@ -213,7 +213,7 @@ void CommitEditor::addDirectory(jstring 
   Iterator children(jchildren);
   if (JNIUtil::isJavaExceptionThrown())
     return;
-  PropertyTable properties(jproperties, true);
+  PropertyTable properties(jproperties, true, true);
   if (JNIUtil::isJavaExceptionThrown())
     return;
 
@@ -225,7 +225,7 @@ void CommitEditor::addDirectory(jstring 
 
   SVN_JNI_ERR(svn_editor_add_directory(m_editor, relpath.c_str(),
                                        build_children(children, subPool),
-                                       properties.hash(subPool, false),
+                                       properties.hash(subPool),
                                        svn_revnum_t(jreplaces_revision)),);
 }
 
@@ -238,7 +238,7 @@ void CommitEditor::addFile(jstring jrelp
   SVN_JNI_ERR(m_session->m_context->checkCancel(m_session->m_context),);
 
   InputStream contents(jcontents);
-  PropertyTable properties(jproperties, true);
+  PropertyTable properties(jproperties, true, true);
   if (JNIUtil::isJavaExceptionThrown())
     return;
 
@@ -253,7 +253,7 @@ void CommitEditor::addFile(jstring jrelp
     return;
   SVN_JNI_ERR(svn_editor_add_file(m_editor, relpath.c_str(),
                                   &checksum, contents.getStream(subPool),
-                                  properties.hash(subPool, false),
+                                  properties.hash(subPool),
                                   svn_revnum_t(jreplaces_revision)),);
 }
 
@@ -290,7 +290,7 @@ void CommitEditor::alterDirectory(jstrin
   Iterator children(jchildren);
   if (JNIUtil::isJavaExceptionThrown())
     return;
-  PropertyTable properties(jproperties, true);
+  PropertyTable properties(jproperties, true, false);
   if (JNIUtil::isJavaExceptionThrown())
     return;
 
@@ -303,7 +303,7 @@ void CommitEditor::alterDirectory(jstrin
   SVN_JNI_ERR(svn_editor_alter_directory(
                   m_editor, relpath.c_str(), svn_revnum_t(jrevision),
                   (jchildren ? build_children(children, subPool) : NULL),
-                  properties.hash(subPool, true)),);
+                  properties.hash(subPool)),);
 }
 
 void CommitEditor::alterFile(jstring jrelpath, jlong jrevision,
@@ -314,7 +314,7 @@ void CommitEditor::alterFile(jstring jre
   SVN_JNI_ERR(m_session->m_context->checkCancel(m_session->m_context),);
 
   InputStream contents(jcontents);
-  PropertyTable properties(jproperties, true);
+  PropertyTable properties(jproperties, true, false);
   if (JNIUtil::isJavaExceptionThrown())
     return;
 
@@ -331,7 +331,7 @@ void CommitEditor::alterFile(jstring jre
                   m_editor, relpath.c_str(), svn_revnum_t(jrevision),
                   (jcontents ? &checksum : NULL),
                   (jcontents ? contents.getStream(subPool) : NULL),
-                  properties.hash(subPool, true)),);
+                  properties.hash(subPool)),);
 }
 
 void CommitEditor::alterSymlink(jstring jrelpath, jlong jrevision,

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=1538050&r1=1538049&r2=1538050&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 Fri Nov  1 20:27:19 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.  */

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/PropertyTable.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/PropertyTable.cpp?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/PropertyTable.cpp (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/PropertyTable.cpp Fri Nov  1 20:27:19 2013
@@ -42,9 +42,9 @@ PropertyTable::~PropertyTable()
     JNIUtil::getEnv()->DeleteLocalRef(m_revpropTable);
 }
 
-apr_hash_t *PropertyTable::hash(const SVN::Pool &pool, bool nullIfEmpty)
+apr_hash_t *PropertyTable::hash(const SVN::Pool &pool)
 {
-  if (m_revprops.size() == 0 && nullIfEmpty)
+  if (!m_revpropTable && !m_empty_if_null)
     return NULL;
 
   apr_hash_t *revprop_table = apr_hash_make(pool.getPool());
@@ -73,7 +73,10 @@ apr_hash_t *PropertyTable::hash(const SV
   return revprop_table;
 }
 
-PropertyTable::PropertyTable(jobject jrevpropTable, bool bytearray_values)
+PropertyTable::PropertyTable(jobject jrevpropTable, bool bytearray_values,
+                             bool empty_if_null)
+  : m_revpropTable(jrevpropTable),
+    m_empty_if_null(empty_if_null)
 {
   m_revpropTable = jrevpropTable;
 

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/PropertyTable.h
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/PropertyTable.h?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/PropertyTable.h (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/PropertyTable.h Fri Nov  1 20:27:19 2013
@@ -41,10 +41,13 @@ class PropertyTable
  private:
   std::map<std::string, std::string> m_revprops;
   jobject m_revpropTable;
+  bool m_empty_if_null;
  public:
-  PropertyTable(jobject jrevpropTable, bool bytearray_values=false);
+  PropertyTable(jobject jrevpropTable,
+                bool bytearray_values,
+                bool empty_if_null);
   ~PropertyTable();
-  apr_hash_t *hash(const SVN::Pool &pool, bool nullIfEmpty = true);
+  apr_hash_t *hash(const SVN::Pool &pool);
 };
 
 #endif // REVPROPTABLE_H

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Fri Nov  1 20:27:19 2013
@@ -399,7 +399,7 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  PropertyTable revprops(jrevpropTable);
+  PropertyTable revprops(jrevpropTable, false, false);
   if (JNIUtil::isExceptionThrown())
     return;
 
@@ -513,7 +513,7 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  PropertyTable revprops(jrevpropTable);
+  PropertyTable revprops(jrevpropTable, false, false);
   if (JNIUtil::isExceptionThrown())
     return;
 
@@ -554,7 +554,7 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  PropertyTable revprops(jrevpropTable);
+  PropertyTable revprops(jrevpropTable, false, false);
   if (JNIUtil::isExceptionThrown())
     return;
 
@@ -592,7 +592,7 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  PropertyTable revprops(jrevpropTable);
+  PropertyTable revprops(jrevpropTable, false, false);
   if (JNIUtil::isExceptionThrown())
     return;
 
@@ -625,7 +625,7 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  PropertyTable revprops(jrevpropTable);
+  PropertyTable revprops(jrevpropTable, false, false);
   if (JNIUtil::isExceptionThrown())
     return;
 
@@ -776,7 +776,7 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  PropertyTable revprops(jrevpropTable);
+  PropertyTable revprops(jrevpropTable, false, false);
   if (JNIUtil::isExceptionThrown())
     return;
 
@@ -1027,7 +1027,7 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  PropertyTable revprops(jrevpropTable);
+  PropertyTable revprops(jrevpropTable, false, false);
   if (JNIUtil::isExceptionThrown())
     return;
 

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java Fri Nov  1 20:27:19 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/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Fri Nov  1 20:27:19 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/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java Fri Nov  1 20:27:19 2013
@@ -644,6 +644,53 @@ public class SVNRemoteTests extends SVNT
         assertTrue(Arrays.equals(eolstyle, propval));
     }
 
+    public void testEditorDeleteFileProps() throws Exception
+    {
+        Charset UTF8 = Charset.forName("UTF-8");
+        client.propertySetRemote(
+             thisTest.getUrl() + "/iota", 1L,
+             "name", "value".getBytes(UTF8),
+             new CommitMessageCallback() {
+                 public String getLogMessage(Set<CommitItem> elements) {
+                     return "Set property 'name' to 'value'";
+                 }
+             }, false, null, null);
+
+        ISVNRemote session = getSession();
+        HashMap<String, byte[]> props = new HashMap<String, byte[]>();
+        assertEquals(2L, session.getFile(Revision.SVN_INVALID_REVNUM, "iota",
+                                         null, props));
+
+        int propcount = 0;
+        for (Map.Entry<String, byte[]> e : props.entrySet()) {
+            final String key = e.getKey();
+            if (key.startsWith("svn:entry:") || key.startsWith("svn:wc:"))
+                continue;
+            ++propcount;
+        }
+        assertEquals(1, propcount);
+
+        CommitContext cc = new CommitContext(session, "Remove all props");
+        try {
+            props.clear();
+            cc.editor.alterFile("iota", 2L, null, null, props);
+            cc.editor.complete();
+        } finally {
+            cc.editor.dispose();
+        }
+
+        assertEquals(3L, session.getFile(Revision.SVN_INVALID_REVNUM, "iota",
+                                         null, props));
+        propcount = 0;
+        for (Map.Entry<String, byte[]> e : props.entrySet()) {
+            final String key = e.getKey();
+            if (key.startsWith("svn:entry:") || key.startsWith("svn:wc:"))
+                continue;
+            ++propcount;
+        }
+        assertEquals(0, propcount);
+    }
+
     public void testEditorSetFileContents() throws Exception
     {
         Charset UTF8 = Charset.forName("UTF-8");

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java Fri Nov  1 20:27:19 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/invoke-diff-cmd-feature/subversion/bindings/swig/perl/native/Makefile.PL.in
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/perl/native/Makefile.PL.in?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/perl/native/Makefile.PL.in (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/bindings/swig/perl/native/Makefile.PL.in Fri Nov  1 20:27:19 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/invoke-diff-cmd-feature/subversion/include/private/svn_sqlite.h
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_sqlite.h?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_sqlite.h (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_sqlite.h Fri Nov  1 20:27:19 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/invoke-diff-cmd-feature/subversion/include/private/svn_subr_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_subr_private.h?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_subr_private.h (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/include/private/svn_subr_private.h Fri Nov  1 20:27:19 2013
@@ -469,8 +469,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/invoke-diff-cmd-feature/subversion/include/svn_dirent_uri.h
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_dirent_uri.h?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_dirent_uri.h (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_dirent_uri.h Fri Nov  1 20:27:19 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/invoke-diff-cmd-feature/subversion/include/svn_path.h
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_path.h?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_path.h (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_path.h Fri Nov  1 20:27:19 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/invoke-diff-cmd-feature/subversion/include/svn_types.h
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_types.h?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_types.h (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_types.h Fri Nov  1 20:27:19 2013
@@ -131,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/invoke-diff-cmd-feature/subversion/include/svn_xml.h
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_xml.h?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_xml.h (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/include/svn_xml.h Fri Nov  1 20:27:19 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/invoke-diff-cmd-feature/subversion/libsvn_client/cmdline.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/cmdline.c?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/cmdline.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/cmdline.c Fri Nov  1 20:27:19 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/invoke-diff-cmd-feature/subversion/libsvn_client/commit_util.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/commit_util.c?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/commit_util.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/commit_util.c Fri Nov  1 20:27:19 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/invoke-diff-cmd-feature/subversion/libsvn_client/patch.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/patch.c?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/patch.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_client/patch.c Fri Nov  1 20:27:19 2013
@@ -1726,7 +1726,7 @@ copy_lines_to_target(target_content_t *c
       SVN_ERR(readline(content, &target_line, iterpool, iterpool));
       if (! content->eof)
         target_line = apr_pstrcat(iterpool, target_line, content->eol_str,
-                                  (char *)NULL);
+                                  SVN_VA_NULL);
       len = strlen(target_line);
       SVN_ERR(content->write(content->write_baton, target_line,
                              len, iterpool));

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=1538050&r1=1538049&r2=1538050&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 Fri Nov  1 20:27:19 2013
@@ -23,7 +23,6 @@
 
 #include <stddef.h>
 
-#include "svn_private_config.h"
 #include "svn_types.h"
 #include "svn_error.h"
 #include "svn_delta.h"
@@ -35,6 +34,7 @@
 #include "svn_pools.h"
 
 #include "private/svn_delta_private.h"
+#include "svn_private_config.h"
 
 
 struct file_rev_handler_wrapper_baton {
@@ -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, (char *)NULL);
+                                           copyfrom_url, SVN_VA_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=1538050&r1=1538049&r2=1538050&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 Fri Nov  1 20:27:19 2013
@@ -62,7 +62,7 @@ struct edit_baton {
   svn_fs_root_t *root;
 };
 
-#define FSPATH(relpath, pool) apr_pstrcat(pool, "/", relpath, (char *)NULL)
+#define FSPATH(relpath, pool) apr_pstrcat(pool, "/", relpath, SVN_VA_NULL)
 #define UNUSED(x) ((void)(x))
 
 

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_base/bdb/locks-table.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_base/bdb/locks-table.c?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_base/bdb/locks-table.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_base/bdb/locks-table.c Fri Nov  1 20:27:19 2013
@@ -257,7 +257,7 @@ svn_fs_bdb__locks_get(svn_fs_t *fs,
                            DB_SET_RANGE);
 
   if (!svn_fspath__is_root(path, strlen(path)))
-    lookup_path = apr_pstrcat(pool, path, "/", (char *)NULL);
+    lookup_path = apr_pstrcat(pool, path, "/", SVN_VA_NULL);
   lookup_len = strlen(lookup_path);
 
   /* As long as the prefix of the returned KEY matches LOOKUP_PATH we

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_base/lock.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_base/lock.c?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_base/lock.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_base/lock.c Fri Nov  1 20:27:19 2013
@@ -253,7 +253,7 @@ svn_fs_base__generate_lock_token(const c
      generate a URI that matches the DAV RFC.  We could change this to
      some other URI scheme someday, if we wish. */
   *token = apr_pstrcat(pool, "opaquelocktoken:",
-                       svn_uuid_generate(pool), (char *)NULL);
+                       svn_uuid_generate(pool), SVN_VA_NULL);
   return SVN_NO_ERROR;
 }
 

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=1538050&r1=1538049&r2=1538050&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 Fri Nov  1 20:27:19 2013
@@ -375,7 +375,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                                    "fsfs:", fs->uuid,
                                    "/", normalize_key_part(fs->path, pool),
                                    ":",
-                                   (char *)NULL);
+                                   SVN_VA_NULL);
   svn_memcache_t *memcache;
   svn_membuffer_t *membuffer;
   svn_boolean_t no_handler;
@@ -394,7 +394,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                       fs,
                       pool));
 
-  prefix = apr_pstrcat(pool, "ns:", cache_namespace, ":", prefix, (char *)NULL);
+  prefix = apr_pstrcat(pool, "ns:", cache_namespace, ":", prefix, SVN_VA_NULL);
 
   membuffer = svn_cache__get_global_membuffer_cache();
 
@@ -434,7 +434,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                        svn_fs_fs__serialize_id,
                        svn_fs_fs__deserialize_id,
                        sizeof(svn_revnum_t),
-                       apr_pstrcat(pool, prefix, "RRI", (char *)NULL),
+                       apr_pstrcat(pool, prefix, "RRI", SVN_VA_NULL),
                        0,
                        fs,
                        no_handler,
@@ -449,7 +449,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                        svn_fs_fs__dag_serialize,
                        svn_fs_fs__dag_deserialize,
                        APR_HASH_KEY_STRING,
-                       apr_pstrcat(pool, prefix, "DAG", (char *)NULL),
+                       apr_pstrcat(pool, prefix, "DAG", SVN_VA_NULL),
                        SVN_CACHE__MEMBUFFER_LOW_PRIORITY,
                        fs,
                        no_handler,
@@ -466,7 +466,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                        svn_fs_fs__serialize_dir_entries,
                        svn_fs_fs__deserialize_dir_entries,
                        sizeof(pair_cache_key_t),
-                       apr_pstrcat(pool, prefix, "DIR", (char *)NULL),
+                       apr_pstrcat(pool, prefix, "DIR", SVN_VA_NULL),
                        SVN_CACHE__MEMBUFFER_LOW_PRIORITY,
                        fs,
                        no_handler,
@@ -482,7 +482,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                        svn_fs_fs__deserialize_manifest,
                        sizeof(svn_revnum_t),
                        apr_pstrcat(pool, prefix, "PACK-MANIFEST",
-                                   (char *)NULL),
+                                   SVN_VA_NULL),
                        SVN_CACHE__MEMBUFFER_HIGH_PRIORITY,
                        fs,
                        no_handler,
@@ -496,7 +496,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                        svn_fs_fs__serialize_node_revision,
                        svn_fs_fs__deserialize_node_revision,
                        sizeof(pair_cache_key_t),
-                       apr_pstrcat(pool, prefix, "NODEREVS", (char *)NULL),
+                       apr_pstrcat(pool, prefix, "NODEREVS", SVN_VA_NULL),
                        SVN_CACHE__MEMBUFFER_HIGH_PRIORITY,
                        fs,
                        no_handler,
@@ -510,7 +510,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                        svn_fs_fs__serialize_rep_header,
                        svn_fs_fs__deserialize_rep_header,
                        sizeof(representation_cache_key_t),
-                       apr_pstrcat(pool, prefix, "REPHEADER", (char *)NULL),
+                       apr_pstrcat(pool, prefix, "REPHEADER", SVN_VA_NULL),
                        SVN_CACHE__MEMBUFFER_HIGH_PRIORITY,
                        fs,
                        no_handler,
@@ -524,7 +524,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                        svn_fs_fs__serialize_changes,
                        svn_fs_fs__deserialize_changes,
                        sizeof(svn_revnum_t),
-                       apr_pstrcat(pool, prefix, "CHANGES", (char *)NULL),
+                       apr_pstrcat(pool, prefix, "CHANGES", SVN_VA_NULL),
                        0,
                        fs,
                        no_handler,
@@ -540,7 +540,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                            /* Values are svn_stringbuf_t */
                            NULL, NULL,
                            sizeof(pair_cache_key_t),
-                           apr_pstrcat(pool, prefix, "TEXT", (char *)NULL),
+                           apr_pstrcat(pool, prefix, "TEXT", SVN_VA_NULL),
                            SVN_CACHE__MEMBUFFER_LOW_PRIORITY,
                            fs,
                            no_handler,
@@ -554,7 +554,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                            svn_fs_fs__deserialize_properties,
                            sizeof(pair_cache_key_t),
                            apr_pstrcat(pool, prefix, "PROP",
-                                       (char *)NULL),
+                                       SVN_VA_NULL),
                            SVN_CACHE__MEMBUFFER_LOW_PRIORITY,
                            fs,
                            no_handler,
@@ -568,7 +568,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                            svn_fs_fs__deserialize_mergeinfo,
                            APR_HASH_KEY_STRING,
                            apr_pstrcat(pool, prefix, "MERGEINFO",
-                                       (char *)NULL),
+                                       SVN_VA_NULL),
                            0,
                            fs,
                            no_handler,
@@ -582,7 +582,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                            NULL, NULL,
                            APR_HASH_KEY_STRING,
                            apr_pstrcat(pool, prefix, "HAS_MERGEINFO",
-                                       (char *)NULL),
+                                       SVN_VA_NULL),
                            0,
                            fs,
                            no_handler,
@@ -607,7 +607,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                            svn_fs_fs__deserialize_properties,
                            sizeof(pair_cache_key_t),
                            apr_pstrcat(pool, prefix, "REVPROP",
-                                       (char *)NULL),
+                                       SVN_VA_NULL),
                            SVN_CACHE__MEMBUFFER_HIGH_PRIORITY,
                            fs,
                            no_handler,
@@ -629,7 +629,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                            svn_fs_fs__deserialize_txdelta_window,
                            sizeof(window_cache_key_t),
                            apr_pstrcat(pool, prefix, "TXDELTA_WINDOW",
-                                       (char *)NULL),
+                                       SVN_VA_NULL),
                            0,
                            fs,
                            no_handler,
@@ -643,7 +643,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
                            NULL, NULL,
                            sizeof(window_cache_key_t),
                            apr_pstrcat(pool, prefix, "COMBINED_WINDOW",
-                                       (char *)NULL),
+                                       SVN_VA_NULL),
                            SVN_CACHE__MEMBUFFER_LOW_PRIORITY,
                            fs,
                            no_handler,
@@ -726,7 +726,7 @@ svn_fs_fs__initialize_txn_caches(svn_fs_
                                    "/", fs->path,
                                    ":", txn_id,
                                    ":", svn_uuid_generate(pool), ":",
-                                   (char *)NULL);
+                                   SVN_VA_NULL);
 
   /* We don't support caching for concurrent transactions in the SAME
    * FSFS session. Maybe, you forgot to clean POOL. */
@@ -747,7 +747,7 @@ svn_fs_fs__initialize_txn_caches(svn_fs_
                        svn_fs_fs__deserialize_dir_entries,
                        APR_HASH_KEY_STRING,
                        apr_pstrcat(pool, prefix, "TXNDIR",
-                                   (char *)NULL),
+                                   SVN_VA_NULL),
                        0,
                        fs,
                        TRUE,

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/fs.c?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/fs.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/fs.c Fri Nov  1 20:27:19 2013
@@ -82,7 +82,7 @@ fs_serialized_init(svn_fs_t *fs, apr_poo
 
   SVN_ERR_ASSERT(fs->uuid);
   key = apr_pstrcat(pool, SVN_FSFS_SHARED_USERDATA_PREFIX, fs->uuid,
-                    (char *) NULL);
+                    SVN_VA_NULL);
   status = apr_pool_userdata_get(&val, key, common_pool);
   if (status)
     return svn_error_wrap_apr(status, _("Can't fetch FSFS shared data"));

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=1538050&r1=1538049&r2=1538050&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 Fri Nov  1 20:27:19 2013
@@ -1085,7 +1085,7 @@ svn_fs_fs__set_uuid(svn_fs_t *fs,
     uuid = svn_uuid_generate(pool);
 
   /* Make sure we have a copy in FS->POOL, and append a newline. */
-  my_uuid = apr_pstrcat(fs->pool, uuid, "\n", (char *)NULL);
+  my_uuid = apr_pstrcat(fs->pool, uuid, "\n", SVN_VA_NULL);
   my_uuid_len = strlen(my_uuid);
 
   /* We use the permissions of the 'current' file, because the 'uuid'

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=1538050&r1=1538049&r2=1538050&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 Fri Nov  1 20:27:19 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, (char *)NULL);
+                              digest, SVN_VA_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, (char *)NULL);
+                                      digest, SVN_VA_NULL);
   return SVN_NO_ERROR;
 }
 
@@ -959,7 +959,7 @@ svn_fs_fs__generate_lock_token(const cha
      generate a URI that matches the DAV RFC.  We could change this to
      some other URI scheme someday, if we wish. */
   *token = apr_pstrcat(pool, "opaquelocktoken:",
-                       svn_uuid_generate(pool), (char *)NULL);
+                       svn_uuid_generate(pool), SVN_VA_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=1538050&r1=1538049&r2=1538050&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 Fri Nov  1 20:27:19 2013
@@ -999,8 +999,8 @@ create_txn_dir(const char **id_p,
                                  fs->path,
                                  PATH_TXNS_DIR,
                                  apr_pstrcat(pool, *id_p, PATH_EXT_TXN,
-                                             (char *)NULL),
-                                 (char *)NULL);
+                                             SVN_VA_NULL),
+                                 SVN_VA_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), (char *)NULL);
+                                apr_psprintf(pool, "%ld", rev), SVN_VA_NULL);
 
   subpool = svn_pool_create(pool);
   for (i = 1; i <= 99999; i++)

Modified: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/tree.c
URL: http://svn.apache.org/viewvc/subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/tree.c?rev=1538050&r1=1538049&r2=1538050&view=diff
==============================================================================
--- subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/tree.c (original)
+++ subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_fs/tree.c Fri Nov  1 20:27:19 2013
@@ -4369,7 +4369,7 @@ make_txn_root(svn_fs_root_t **root_p,
                                       APR_HASH_KEY_STRING,
                                       32, 20, FALSE,
                                       apr_pstrcat(pool, txn, ":TXN",
-                                                  (char *)NULL),
+                                                  SVN_VA_NULL),
                                       root->pool));
 
   /* Initialize transaction-local caches in FS.

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=1538050&r1=1538049&r2=1538050&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 Fri Nov  1 20:27:19 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, (char *)NULL);
+                              kind, SVN_VA_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),
-                              (char *)NULL);
+                              SVN_VA_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), (char *)NULL);
+                              apr_psprintf(pool, "%ld", rev), SVN_VA_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),
-                              (char *)NULL);
+                              SVN_VA_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),
-                              (char *)NULL);
+                              SVN_VA_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), (char *)NULL);
+                              apr_psprintf(pool, "%ld", rev), SVN_VA_NULL);
 }
 
 /* Return TO_ADD appended to the C string representation of TXN_ID.
@@ -199,7 +199,7 @@ combine_txn_id_string(const svn_fs_fs__i
                       apr_pool_t *pool)
 {
   return apr_pstrcat(pool, svn_fs_fs__id_txn_unparse(txn_id, pool),
-                     to_add, (char *)NULL);
+                     to_add, SVN_VA_NULL);
 }
 
 const char *
@@ -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),
-                              (char *)NULL);
+                              SVN_VA_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),
-                                (char *)NULL);
+                                SVN_VA_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),
-                                (char *)NULL);
+                                SVN_VA_NULL);
   else
     return svn_dirent_join(svn_fs_fs__path_txn_dir(fs, txn_id, pool),
                            PATH_REV_LOCK, pool);
@@ -268,7 +268,7 @@ svn_fs_fs__path_txn_node_props(svn_fs_t 
                                apr_pool_t *pool)
 {
   return apr_pstrcat(pool, svn_fs_fs__path_txn_node_rev(fs, id, pool),
-                     PATH_EXT_PROPS, (char *)NULL);
+                     PATH_EXT_PROPS, SVN_VA_NULL);
 }
 
 const char *
@@ -277,7 +277,7 @@ svn_fs_fs__path_txn_node_children(svn_fs
                                   apr_pool_t *pool)
 {
   return apr_pstrcat(pool, svn_fs_fs__path_txn_node_rev(fs, id, pool),
-                     PATH_EXT_CHILDREN, (char *)NULL);
+                     PATH_EXT_CHILDREN, SVN_VA_NULL);
 }
 
 const char *
@@ -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, (char *)NULL);
+                              buffer, SVN_VA_NULL);
 }
 
 const char *

Propchange: subversion/branches/invoke-diff-cmd-feature/subversion/libsvn_fs_x/
------------------------------------------------------------------------------
  Merged /subversion/trunk/subversion/libsvn_fs_x:r1535404-1538048