You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2012/12/21 01:23:41 UTC

svn commit: r1424772 [1/4] - in /subversion/branches/ev2-export: ./ build/ build/ac-macros/ build/win32/ subversion/bindings/cxxhl/include/ subversion/bindings/cxxhl/include/svncxxhl/ subversion/bindings/cxxhl/include/types/ subversion/bindings/cxxhl/s...

Author: hwright
Date: Fri Dec 21 00:23:39 2012
New Revision: 1424772

URL: http://svn.apache.org/viewvc?rev=1424772&view=rev
Log:
On the ev2-export branch:
Bring up-to-date with trunk.

Added:
    subversion/branches/ev2-export/subversion/bindings/cxxhl/include/svncxxhl/
      - copied from r1424763, subversion/trunk/subversion/bindings/cxxhl/include/svncxxhl/
    subversion/branches/ev2-export/subversion/bindings/cxxhl/include/svncxxhl.hpp
      - copied unchanged from r1424763, subversion/trunk/subversion/bindings/cxxhl/include/svncxxhl.hpp
    subversion/branches/ev2-export/subversion/bindings/cxxhl/src/exception.cpp
      - copied unchanged from r1424763, subversion/trunk/subversion/bindings/cxxhl/src/exception.cpp
    subversion/branches/ev2-export/subversion/bindings/cxxhl/src/tristate.cpp
      - copied unchanged from r1424763, subversion/trunk/subversion/bindings/cxxhl/src/tristate.cpp
    subversion/branches/ev2-export/subversion/bindings/cxxhl/tests/
      - copied from r1424763, subversion/trunk/subversion/bindings/cxxhl/tests/
    subversion/branches/ev2-export/subversion/tests/cmdline/svnrdump_tests_data/root-range.expected.dump
      - copied unchanged from r1424763, subversion/trunk/subversion/tests/cmdline/svnrdump_tests_data/root-range.expected.dump
    subversion/branches/ev2-export/subversion/tests/cmdline/svnrdump_tests_data/trunk-A-range.expected.dump
      - copied unchanged from r1424763, subversion/trunk/subversion/tests/cmdline/svnrdump_tests_data/trunk-A-range.expected.dump
    subversion/branches/ev2-export/subversion/tests/cmdline/svnrdump_tests_data/trunk-only-range.expected.dump
      - copied unchanged from r1424763, subversion/trunk/subversion/tests/cmdline/svnrdump_tests_data/trunk-only-range.expected.dump
Removed:
    subversion/branches/ev2-export/subversion/bindings/cxxhl/include/svn_cxxhl_types.h
    subversion/branches/ev2-export/subversion/bindings/cxxhl/include/types/
    subversion/branches/ev2-export/subversion/bindings/cxxhl/src/types/
Modified:
    subversion/branches/ev2-export/   (props changed)
    subversion/branches/ev2-export/CHANGES
    subversion/branches/ev2-export/Makefile.in
    subversion/branches/ev2-export/aclocal.m4
    subversion/branches/ev2-export/autogen.sh
    subversion/branches/ev2-export/build.conf
    subversion/branches/ev2-export/build/ac-macros/svn-macros.m4
    subversion/branches/ev2-export/build/ac-macros/swig.m4
    subversion/branches/ev2-export/build/run_tests.py
    subversion/branches/ev2-export/build/win32/   (props changed)
    subversion/branches/ev2-export/configure.ac
    subversion/branches/ev2-export/get-deps.sh
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Core.pm
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Makefile.PL.in
    subversion/branches/ev2-export/subversion/bindings/swig/python/tests/ra.py
    subversion/branches/ev2-export/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
    subversion/branches/ev2-export/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h
    subversion/branches/ev2-export/subversion/include/private/svn_mergeinfo_private.h
    subversion/branches/ev2-export/subversion/include/private/svn_mutex.h
    subversion/branches/ev2-export/subversion/include/private/svn_named_atomic.h
    subversion/branches/ev2-export/subversion/include/private/svn_skel.h
    subversion/branches/ev2-export/subversion/include/private/svn_sqlite.h
    subversion/branches/ev2-export/subversion/include/svn_cmdline.h
    subversion/branches/ev2-export/subversion/include/svn_delta.h
    subversion/branches/ev2-export/subversion/include/svn_error.h
    subversion/branches/ev2-export/subversion/include/svn_io.h
    subversion/branches/ev2-export/subversion/include/svn_mergeinfo.h
    subversion/branches/ev2-export/subversion/include/svn_pools.h
    subversion/branches/ev2-export/subversion/include/svn_props.h
    subversion/branches/ev2-export/subversion/include/svn_ra.h
    subversion/branches/ev2-export/subversion/include/svn_subst.h
    subversion/branches/ev2-export/subversion/include/svn_wc.h
    subversion/branches/ev2-export/subversion/libsvn_client/add.c
    subversion/branches/ev2-export/subversion/libsvn_client/client.h
    subversion/branches/ev2-export/subversion/libsvn_client/commit.c
    subversion/branches/ev2-export/subversion/libsvn_client/deprecated.c
    subversion/branches/ev2-export/subversion/libsvn_client/diff.c
    subversion/branches/ev2-export/subversion/libsvn_client/externals.c
    subversion/branches/ev2-export/subversion/libsvn_client/iprops.c
    subversion/branches/ev2-export/subversion/libsvn_client/merge.c
    subversion/branches/ev2-export/subversion/libsvn_client/patch.c
    subversion/branches/ev2-export/subversion/libsvn_client/prop_commands.c
    subversion/branches/ev2-export/subversion/libsvn_client/repos_diff.c
    subversion/branches/ev2-export/subversion/libsvn_client/switch.c
    subversion/branches/ev2-export/subversion/libsvn_client/update.c
    subversion/branches/ev2-export/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/ev2-export/subversion/libsvn_fs_fs/rep-cache.c
    subversion/branches/ev2-export/subversion/libsvn_ra/ra_loader.c
    subversion/branches/ev2-export/subversion/libsvn_ra_serf/update.c
    subversion/branches/ev2-export/subversion/libsvn_subr/cmdline.c
    subversion/branches/ev2-export/subversion/libsvn_subr/deprecated.c
    subversion/branches/ev2-export/subversion/libsvn_subr/error.c
    subversion/branches/ev2-export/subversion/libsvn_subr/mergeinfo.c
    subversion/branches/ev2-export/subversion/libsvn_subr/properties.c
    subversion/branches/ev2-export/subversion/libsvn_subr/skel.c
    subversion/branches/ev2-export/subversion/libsvn_subr/sqlite.c
    subversion/branches/ev2-export/subversion/libsvn_wc/adm_ops.c
    subversion/branches/ev2-export/subversion/libsvn_wc/deprecated.c
    subversion/branches/ev2-export/subversion/libsvn_wc/props.c
    subversion/branches/ev2-export/subversion/libsvn_wc/props.h
    subversion/branches/ev2-export/subversion/libsvn_wc/translate.h
    subversion/branches/ev2-export/subversion/libsvn_wc/wc-queries.sql
    subversion/branches/ev2-export/subversion/libsvn_wc/wc_db.c
    subversion/branches/ev2-export/subversion/libsvn_wc/wc_db.h
    subversion/branches/ev2-export/subversion/libsvn_wc/wc_db_pristine.c
    subversion/branches/ev2-export/subversion/libsvn_wc/wc_db_update_move.c
    subversion/branches/ev2-export/subversion/libsvn_wc/wc_db_util.c
    subversion/branches/ev2-export/subversion/svn/copy-cmd.c
    subversion/branches/ev2-export/subversion/svn/help-cmd.c
    subversion/branches/ev2-export/subversion/svn/svn.c
    subversion/branches/ev2-export/subversion/svnrdump/dump_editor.c
    subversion/branches/ev2-export/subversion/svnrdump/load_editor.c
    subversion/branches/ev2-export/subversion/svnrdump/svnrdump.c
    subversion/branches/ev2-export/subversion/svnrdump/svnrdump.h
    subversion/branches/ev2-export/subversion/svnrdump/util.c
    subversion/branches/ev2-export/subversion/svnsync/svnsync.c
    subversion/branches/ev2-export/subversion/tests/cmdline/basic_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/commit_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/davautocheck.sh
    subversion/branches/ev2-export/subversion/tests/cmdline/diff_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/getopt_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
    subversion/branches/ev2-export/subversion/tests/cmdline/merge_authz_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/merge_reintegrate_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/merge_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/merge_tree_conflict_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/patch_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/revert_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svnrdump_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svntest/main.py
    subversion/branches/ev2-export/subversion/tests/cmdline/update_tests.py
    subversion/branches/ev2-export/subversion/tests/libsvn_subr/error-test.c
    subversion/branches/ev2-export/subversion/tests/libsvn_subr/mergeinfo-test.c
    subversion/branches/ev2-export/subversion/tests/libsvn_wc/conflict-data-test.c
    subversion/branches/ev2-export/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/ev2-export/subversion/tests/libsvn_wc/utils.c
    subversion/branches/ev2-export/tools/dist/release.py
    subversion/branches/ev2-export/tools/server-side/fsfs-reorg.c
    subversion/branches/ev2-export/tools/server-side/fsfs-stats.c
    subversion/branches/ev2-export/tools/server-side/svnpubsub/commit-hook.py
    subversion/branches/ev2-export/tools/server-side/svnpubsub/svnpubsub/client.py
    subversion/branches/ev2-export/tools/server-side/svnpubsub/svnpubsub/server.py
    subversion/branches/ev2-export/tools/server-side/svnpubsub/svntweet.py   (props changed)

Propchange: subversion/branches/ev2-export/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Dec 21 00:23:39 2012
@@ -49,3 +49,5 @@ mkmf.log
 zlib
 sqlite-amalgamation
 serf
+.git
+.gitignore

Propchange: subversion/branches/ev2-export/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1421632-1424763

Modified: subversion/branches/ev2-export/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/CHANGES?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/CHANGES (original)
+++ subversion/branches/ev2-export/CHANGES Fri Dec 21 00:23:39 2012
@@ -34,6 +34,7 @@ http://svn.apache.org/repos/asf/subversi
     * 'svndumpfilter' now supports --delta dumpfiles (r1351009, -3745)
     * client version info now reported to commit hooks (issue #4124)
     * 'svn merge' now uses reintegrate mode automatically when needed
+    * 'svn' is now non-interactive when not run in a terminal device (r1424037)
 
   - Client-side bugfixes:
     *

Modified: subversion/branches/ev2-export/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/Makefile.in?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/Makefile.in (original)
+++ subversion/branches/ev2-export/Makefile.in Fri Dec 21 00:23:39 2012
@@ -404,7 +404,7 @@ fast-clean: doc-clean
              rm -rf .libs);                                          \
           fi                                                         \
         done
-	echo $(CLEAN_FILES) | xargs rm -f
+	echo $(CLEAN_FILES) | xargs rm -f --
 	find $(CTYPES_PYTHON_SRC_DIR) $(SWIG_PY_SRC_DIR) $(SWIG_PY_DIR) \
 		$(abs_srcdir)/build $(top_srcdir)/subversion/tests/cmdline/svntest \
 		-name "*.pyc" -exec rm {} ';'
@@ -586,11 +586,12 @@ gcov-reset:
 gcov-clean:
 	rm -f gcov-lcov.dat gcov-lcov.log gcov-genhtml.log
 	rm -rf gcov-report
-	find . -name "*.gcda" -o -name "*.gcno" -print0 | xargs -0 rm -f
+	find . -name "*.gcda" -o -name "*.gcno" -print0 | xargs -0 rm -f --
 
 check-clean: gcov-clean
-	rm -rf subversion/tests/cmdline/svn-test-work          \
-	       subversion/tests/libsvn_fs/test-repo-*          \
+	find subversion/tests/cmdline/svn-test-work -print0    \
+	       -mindepth 1 -maxdepth 1 | xargs -0 rm -rf --;   \
+	rm -rf subversion/tests/libsvn_fs/test-repo-*          \
 	       subversion/tests/libsvn_fs_base/test-repo-*     \
 	       subversion/tests/libsvn_fs_fs/test-repo-*       \
 	       subversion/tests/libsvn_ra_local/test-repo-*    \

Modified: subversion/branches/ev2-export/aclocal.m4
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/aclocal.m4?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/aclocal.m4 (original)
+++ subversion/branches/ev2-export/aclocal.m4 Fri Dec 21 00:23:39 2012
@@ -39,7 +39,6 @@ sinclude(build/ac-macros/berkeley-db.m4)
 sinclude(build/ac-macros/ctypesgen.m4)
 sinclude(build/ac-macros/gssapi.m4)
 sinclude(build/ac-macros/java.m4)
-sinclude(build/ac-macros/neon.m4)
 sinclude(build/ac-macros/sasl.m4)
 sinclude(build/ac-macros/serf.m4)
 sinclude(build/ac-macros/sqlite.m4)

Modified: subversion/branches/ev2-export/autogen.sh
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/autogen.sh?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/autogen.sh (original)
+++ subversion/branches/ev2-export/autogen.sh Fri Dec 21 00:23:39 2012
@@ -140,6 +140,9 @@ if test -n "$RELEASE_MODE"; then
 
   # Build the SWIG-related files
   make -f autogen-standalone.mk autogen-swig
+
+  # Remove the .swig_checked file
+  rm -f .swig_checked
 fi
 
 if test -n "$SKIP_DEPS"; then

Modified: subversion/branches/ev2-export/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/build.conf?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/build.conf (original)
+++ subversion/branches/ev2-export/build.conf Fri Dec 21 00:23:39 2012
@@ -38,8 +38,8 @@ private-includes =
         subversion/include/private/*.h
         subversion/bindings/swig/include/*.swg
         subversion/libsvn_delta/compose_delta.c
-        subversion/bindings/cxxhl/include/*.h
-        subversion/bindings/cxxhl/include/types/*.h
+        subversion/bindings/cxxhl/include/*.hpp
+        subversion/bindings/cxxhl/include/svncxxhl/*.hpp
 private-built-includes =
         subversion/svn_private_config.h
         subversion/libsvn_fs_fs/rep-cache-db.h
@@ -59,6 +59,8 @@ private-built-includes =
         subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Version.h
         subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Revision.h
         subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_UserPasswordCallback.h
+        subversion/svn/svn-help.inc
+        subversion/svn/svn-help.man
 
 
 test-scripts =
@@ -174,7 +176,7 @@ manpages = subversion/svnversion/svnvers
 description = Subversion remote repository dumper and loader
 type = exe
 path = subversion/svnrdump
-libs = libsvn_client libsvn_ra libsvn_repos libsvn_delta libsvn_subr apr
+libs = libsvn_client libsvn_ra libsvn_repos libsvn_delta libsvn_subr aprutil apr
 install = bin
 manpages = subversion/svnrdump/svnrdump.1
 
@@ -629,16 +631,27 @@ link-cmd = $(LINK_JAVAHL_CXX)
 #
 
 [libsvncxxhl]
-description = Subversion C++ HighLevel binding
+description = Subversion C++ HighLevel bindings
 type = lib
 path = subversion/bindings/cxxhl
 libs = libsvn_repos libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff
        libsvn_subr libsvn_fs aprutil apriconv apr
-sources = src/*.cpp src/types/*.cpp
+sources = src/*.cpp
 install = cxxhl-lib
+msvc-static = yes
 compile-cmd = $(COMPILE_CXXHL_CXX)
 link-cmd = $(LINK_CXX_LIB)
 
+[cxxhl-tests]
+description = Unit tests for Subversion C++ HighLevel bindings
+type = exe
+path = subversion/bindings/cxxhl
+libs = libsvncxxhl libsvn_subr
+sources = tests/*.cpp
+install = tests
+compile-cmd = $(COMPILE_CXXHL_CXX)
+link-cmd = $(LINK_CXX)
+
 # ----------------------------------------------------------------------------
 #
 # TESTING TARGETS

Modified: subversion/branches/ev2-export/build/ac-macros/svn-macros.m4
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/build/ac-macros/svn-macros.m4?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/build/ac-macros/svn-macros.m4 (original)
+++ subversion/branches/ev2-export/build/ac-macros/svn-macros.m4 Fri Dec 21 00:23:39 2012
@@ -172,6 +172,16 @@ AC_DEFUN(SVN_MAYBE_ADD_TO_CFLAGS,
   fi
 ])
 
+dnl SVN_STRIP_FLAG(FLAG_VAR_NAME, FLAG)
+dnl
+dnl Remove FLAG from the variable FLAG_VAR_NAME, if it exists.  This macro
+dnl is primarily used for removing unwanted compiler flags, but is really
+dnl just a general wrapper around `sed'.
+AC_DEFUN(SVN_STRIP_FLAG,
+[
+  $1=`echo "$$1" | $SED -e 's/$2//'`
+])
+
 dnl SVN_REMOVE_STANDARD_LIB_DIRS(OPTIONS)
 dnl
 dnl Remove standard library search directories.

Modified: subversion/branches/ev2-export/build/ac-macros/swig.m4
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/build/ac-macros/swig.m4?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/build/ac-macros/swig.m4 (original)
+++ subversion/branches/ev2-export/build/ac-macros/swig.m4 Fri Dec 21 00:23:39 2012
@@ -120,9 +120,13 @@ AC_DEFUN(SVN_FIND_SWIG,
     ])
     SWIG_PY_COMPILE="$ac_cv_python_compile $CFLAGS"
 
-    dnl Swig-generated code results in a number of shadowed variables, so
-    dnl ignore those warnings when compiling swig-py
-    SWIG_PY_COMPILE=`echo "$SWIG_PY_COMPILE" | $SED -e 's/-Wshadow //'`
+    dnl Swig-generated code results in a number of shadowed variables and other
+    dnl warnings, so ignore them when compiling swig-py
+    SVN_STRIP_FLAG(SWIG_PY_COMPILE, [-Wall])
+    SVN_STRIP_FLAG(SWIG_PY_COMPILE, [-Wunused])
+    SVN_STRIP_FLAG(SWIG_PY_COMPILE, [-Wshadow])
+    SVN_STRIP_FLAG(SWIG_PY_COMPILE, [-Wmissing-prototypes])
+    SVN_STRIP_FLAG(SWIG_PY_COMPILE, [-Wmissing-declarations])
 
     AC_CACHE_CHECK([for linking Python extensions], [ac_cv_python_link],[
       ac_cv_python_link="`$PYTHON ${abs_srcdir}/build/get-py-info.py --link`"
@@ -214,6 +218,17 @@ AC_DEFUN(SVN_FIND_SWIG,
     ])
     SWIG_RB_COMPILE="$svn_cv_ruby_compile"
 
+    dnl The swig bindings create a lot of spurious warnings with several of
+    dnl our standard compiler flags, so filter them out here
+    SVN_STRIP_FLAG(SWIG_RB_COMPILE, [-Wall])
+    SVN_STRIP_FLAG(SWIG_RB_COMPILE, [-Wunused])
+    SVN_STRIP_FLAG(SWIG_RB_COMPILE, [-Wshadow])
+    SVN_STRIP_FLAG(SWIG_RB_COMPILE, [-Wstrict-prototypes])
+    SVN_STRIP_FLAG(SWIG_RB_COMPILE, [-Wmissing-declarations])
+    SVN_STRIP_FLAG(SWIG_RB_COMPILE, [-Wmissing-prototypes])
+    SVN_STRIP_FLAG(SWIG_RB_COMPILE, [-Wredundant-decls])
+    SWIG_RB_COMPILE="$SWIG_RB_COMPILE -Wno-int-to-pointer-cast"
+
     AC_CACHE_CHECK([how to link Ruby extensions], [svn_cv_ruby_link],[
       svn_cv_ruby_link="`$RUBY -e 'ARGV.shift; print ARGV.join(%q( ))' \
                            $rbconfig_LDSHARED`"

Modified: subversion/branches/ev2-export/build/run_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/build/run_tests.py?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/build/run_tests.py (original)
+++ subversion/branches/ev2-export/build/run_tests.py Fri Dec 21 00:23:39 2012
@@ -565,11 +565,11 @@ class TestHarness:
     progdir, progbase = os.path.split(prog)
     if self.log:
       # Using write here because we don't want even a trailing space
-      test_info = '%s [%d/%d]' % (progbase, test_nr + 1, total_tests)
+      test_info = '[%02d/%d] %s' % (test_nr + 1, total_tests, progbase)
       if self.list_tests:
         sys.stdout.write('Listing tests in %s' % (test_info, ))
       else:
-        sys.stdout.write('Running tests in %s' % (test_info, ))
+        sys.stdout.write('%s' % (test_info, ))
       sys.stdout.flush()
     else:
       # ### Hack for --log-to-stdout to work (but not print any dots).
@@ -589,7 +589,6 @@ class TestHarness:
     line_length = _get_term_width()
     dots_needed = line_length \
                     - len(test_info) \
-                    - len('Running tests in ') \
                     - len('success')
     try:
       os.chdir(progdir)

Propchange: subversion/branches/ev2-export/build/win32/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Dec 21 00:23:39 2012
@@ -1,5 +1,4 @@
 build_locale.bat
-build_neon.bat
 build_zlib.bat
 make_dist.conf
 make_dist.log

Modified: subversion/branches/ev2-export/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/configure.ac?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/configure.ac (original)
+++ subversion/branches/ev2-export/configure.ac Fri Dec 21 00:23:39 2012
@@ -148,8 +148,8 @@ SVN_FIND_APACHE(20020903)
 
 dnl Search for SQLite
 SQLITE_MINIMUM_VER="3.7.12"
-SQLITE_RECOMMENDED_VER="3.7.15"
-SQLITE_URL="http://www.sqlite.org/sqlite-amalgamation-$(printf %u%02u%02u%02u $(echo ${SQLITE_RECOMMENDED_VER} | sed -e 's/\./ /g')).zip"
+SQLITE_RECOMMENDED_VER="3.7.15.1"
+SQLITE_URL="http://www.sqlite.org/sqlite-amalgamation-$(printf %d%02d%02d%02d $(echo ${SQLITE_RECOMMENDED_VER} | sed -e 's/\./ /g')).zip"
 
 SVN_LIB_SQLITE(${SQLITE_MINIMUM_VER}, ${SQLITE_RECOMMENDED_VER},
                ${SQLITE_URL})
@@ -1384,12 +1384,12 @@ AC_SUBST(JAVAHL_COMPAT_TESTS_TARGET)
 # Strip '-no-cpp-precomp' from CPPFLAGS for the clang compiler
 ### I think we get this flag from APR, so the fix probably belongs there
 if test "$CC" = "clang"; then
-  CPPFLAGS=`echo "$CPPFLAGS" | $SED -e 's/-no-cpp-precomp //'`
+  SVN_STRIP_FLAG(CPPFLAGS, [-no-cpp-precomp ])
 fi
 
 # Clang also doesn't (yet) support the '-ansi' flag
 if test "$CC" = "clang"; then
-  CFLAGS=`echo "$CFLAGS" | $SED -e 's/-ansi //'`
+  SVN_STRIP_FLAG(CFLAGS, [-ansi ])
 fi
 
 dnl Since this is used only on Unix-y systems, define the path separator as '/'

Modified: subversion/branches/ev2-export/get-deps.sh
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/get-deps.sh?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/get-deps.sh (original)
+++ subversion/branches/ev2-export/get-deps.sh Fri Dec 21 00:23:39 2012
@@ -27,8 +27,8 @@ APR=apr-1.4.6
 APR_UTIL=apr-util-1.5.1
 SERF=serf-1.1.1
 ZLIB=zlib-1.2.7
-SQLITE_VERSION=3.7.15
-SQLITE=sqlite-amalgamation-$(printf %u%02u%02u%02u $(echo $SQLITE_VERSION | sed -e 's/\./ /g'))
+SQLITE_VERSION=3.7.15.1
+SQLITE=sqlite-amalgamation-$(printf %d%02d%02d%02d $(echo $SQLITE_VERSION | sed -e 's/\./ /g'))
 
 HTTPD=httpd-2.4.3
 APR_ICONV=apr-iconv-1.2.1
@@ -107,7 +107,7 @@ get_sqlite() {
 get_deps() {
     mkdir -p $TEMPDIR
 
-    for i in neon zlib serf sqlite-amalgamation apr apr-util; do
+    for i in zlib serf sqlite-amalgamation apr apr-util; do
       if [ -d $i ]; then
         echo "Local directory '$i' already exists; the downloaded copy won't be used" >&2
       fi

Modified: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Core.pm
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Core.pm?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Core.pm (original)
+++ subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Core.pm Fri Dec 21 00:23:39 2012
@@ -1012,8 +1012,7 @@ Certificate authority is unknown (i.e. n
 
 =item $SVN::Auth::SSL::OTHER
 
-Other failure. This can happen if neon has introduced a new failure bit that we
-do not handle yet.
+Other failure. This can happen if some unknown error condition occurs.
 
 =back
 

Modified: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Makefile.PL.in
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Makefile.PL.in?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Makefile.PL.in (original)
+++ subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Makefile.PL.in Fri Dec 21 00:23:39 2012
@@ -39,8 +39,8 @@ my $swig_builddir = "${svnlib_builddir}/
 my @modules = qw/client delta fs ra repos wc/;
 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_neon
-                                ra_serf fs_base fs_util fs_fs/);
+                   @modules, qw/diff subr ra_local ra_svn ra_serf
+                                fs_base fs_util fs_fs/);
 
 my @ldmodules = map {"-lsvn_$_-1"} (@modules, qw/diff subr/);
 
@@ -54,6 +54,13 @@ my $includes = '@SVN_APR_INCLUDES@ @SVN_
 # SWIG is using C++ style comments in an extern "C" code.
 $cflags =~ s/-ansi\s+//g;
 $cflags =~ s/-std=c89\s+//g;
+$cflags =~ s/-Wall//g;
+$cflags =~ s/-Wunused//g;
+$cflags =~ s/-Wshadow//g;
+$cflags =~ s/-Wstrict-prototypes//g;
+$cflags =~ s/-Wmissing-declarations//g;
+$cflags =~ s/-Wmissing-prototypes//g;
+$cflags =~ s/-Wredundant-decls//g;
 
 # According to the log of r7937, the flags guarded by the conditional break
 # the build on FreeBSD if not conditionalized.

Modified: subversion/branches/ev2-export/subversion/bindings/swig/python/tests/ra.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/swig/python/tests/ra.py?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/swig/python/tests/ra.py (original)
+++ subversion/branches/ev2-export/subversion/bindings/swig/python/tests/ra.py Fri Dec 21 00:23:39 2012
@@ -375,8 +375,9 @@ class SubversionRepositoryAccessTestCase
     reporter.finish_report(reporter_baton)
 
   def test_namestring(self):
-    # Only ra-{neon,serf} support this right now.
-    if self.repos_uri.startswith('http'):
+    # Only ra-{svn,serf} support this right now.
+    uri = self.repos_uri
+    if uri.startswith('http') or uri.startswith('svn'):
       called = [False]
       def cb(pool):
         called[0] = True

Modified: subversion/branches/ev2-export/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c (original)
+++ subversion/branches/ev2-export/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c Fri Dec 21 00:23:39 2012
@@ -1219,7 +1219,7 @@ r2c_svn_string(VALUE value, void *ctx, a
 }
 
 void *
-svn_swig_rb_to_swig_type(VALUE value, void *ctx, apr_pool_t *pool)
+svn_swig_rb_to_swig_type(VALUE value, const void *ctx, apr_pool_t *pool)
 {
   void **result = NULL;
   result = apr_palloc(pool, sizeof(void *));

Modified: subversion/branches/ev2-export/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h (original)
+++ subversion/branches/ev2-export/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h Fri Dec 21 00:23:39 2012
@@ -112,7 +112,7 @@ SVN_RB_SWIG_SWIGUTIL_EXPORT
 void svn_swig_rb_handle_svn_error(svn_error_t *error);
 
 SVN_RB_SWIG_SWIGUTIL_EXPORT
-void *svn_swig_rb_to_swig_type(VALUE value, void *ctx, apr_pool_t *pool);
+void *svn_swig_rb_to_swig_type(VALUE value, const void *ctx, apr_pool_t *pool);
 SVN_RB_SWIG_SWIGUTIL_EXPORT
 VALUE svn_swig_rb_from_swig_type(void *value, void *ctx);
 

Modified: subversion/branches/ev2-export/subversion/include/private/svn_mergeinfo_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/private/svn_mergeinfo_private.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/private/svn_mergeinfo_private.h (original)
+++ subversion/branches/ev2-export/subversion/include/private/svn_mergeinfo_private.h Fri Dec 21 00:23:39 2012
@@ -50,12 +50,21 @@ svn_rangelist__set_inheritance(svn_range
  * R1 >= R2 in a "R1-R2" range element).
  *
  * Unlike svn_mergeinfo_parse(), this does not sort the ranges into order
- * or combine adjacent and overlapping ranges. */
+ * or combine adjacent and overlapping ranges.
+ *
+ * The compaction can be done with svn_rangelist__combine_adjacent_ranges().
+ */
 svn_error_t *
 svn_rangelist__parse(svn_rangelist_t **rangelist,
                      const char *str,
                      apr_pool_t *result_pool);
 
+/* In-place combines adjacent ranges in a rangelist.
+   SCRATCH_POOL is just used for providing error messages. */
+svn_error_t *
+svn_rangelist__combine_adjacent_ranges(svn_rangelist_t *rangelist,
+                                       apr_pool_t *scratch_pool);
+
 /* Set inheritability of all rangelists in MERGEINFO to INHERITABLE.
    If MERGEINFO is NULL do nothing.  If a rangelist in MERGEINFO is
    NULL leave it alone. */

Modified: subversion/branches/ev2-export/subversion/include/private/svn_mutex.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/private/svn_mutex.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/private/svn_mutex.h (original)
+++ subversion/branches/ev2-export/subversion/include/private/svn_mutex.h Fri Dec 21 00:23:39 2012
@@ -57,8 +57,8 @@ typedef void svn_mutex__t;
 
 /** Initialize the @a *mutex. If @a mutex_required is TRUE, the mutex will
  * actually be created with a lifetime defined by @a result_pool. Otherwise,
- * the pointer will be set to @c NULL and @ref svn_mutex__lock as well as
- * @ref svn_mutex__unlock will be no-ops.
+ * the pointer will be set to @c NULL and svn_mutex__lock() as well as
+ * svn_mutex__unlock() will be no-ops.
  *
  * If threading is not supported by APR, this function is a no-op.
  */
@@ -67,27 +67,27 @@ svn_mutex__init(svn_mutex__t **mutex,
                 svn_boolean_t mutex_required,
                 apr_pool_t *result_pool);
 
-/** Acquire the @a mutex, if that has been enabled in @ref svn_mutex__init.
- * Make sure to call @ref svn_mutex__unlock some time later in the same
+/** Acquire the @a mutex, if that has been enabled in svn_mutex__init().
+ * Make sure to call svn_mutex__unlock() some time later in the same
  * thread to release the mutex again. Recursive locking are not supported.
  *
- * @note You should use @ref SVN_MUTEX__WITH_LOCK instead of explicit lock
+ * @note You should use #SVN_MUTEX__WITH_LOCK instead of explicit lock
  * aquisition and release.
  */
 svn_error_t *
 svn_mutex__lock(svn_mutex__t *mutex);
 
-/** Release the @a mutex, previously acquired using @ref svn_mutex__lock
- * that has been enabled in @ref svn_mutex__init.
+/** Release the @a mutex, previously acquired using svn_mutex__lock()
+ * that has been enabled in svn_mutex__init().
  *
  * Since this is often used as part of the calling function's exit
  * sequence, we accept that function's current return code in @a err.
- * If it is not @ref SVN_NO_ERROR, it will be used as the return value -
+ * If it is not #SVN_NO_ERROR, it will be used as the return value -
  * irrespective of the possible internal failures during unlock. If @a err
- * is @ref SVN_NO_ERROR, internal failures of this function will be
+ * is #SVN_NO_ERROR, internal failures of this function will be
  * reported in the return value.
  *
- * @note You should use @ref SVN_MUTEX__WITH_LOCK instead of explicit lock
+ * @note You should use #SVN_MUTEX__WITH_LOCK instead of explicit lock
  * aquisition and release.
  */
 svn_error_t *
@@ -96,9 +96,9 @@ svn_mutex__unlock(svn_mutex__t *mutex,
 
 /** Aquires the @a mutex, executes the expression @a expr and finally
  * releases the @a mutex. If any of these steps fail, the function using
- * this macro will return an @ref svn_error_t. This macro guarantees that
+ * this macro will return an #svn_error_t. This macro guarantees that
  * the @a mutex will always be unlocked again if it got locked successfully
- * locked by the first step.
+ * by the first step.
  *
  * @note Prefer using this macro instead of explicit lock aquisition and
  * release.

Modified: subversion/branches/ev2-export/subversion/include/private/svn_named_atomic.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/private/svn_named_atomic.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/private/svn_named_atomic.h (original)
+++ subversion/branches/ev2-export/subversion/include/private/svn_named_atomic.h Fri Dec 21 00:23:39 2012
@@ -100,7 +100,7 @@ svn_atomic_namespace__cleanup(const char
  * be set to @c NULL. Otherwise, a new atomic will be created, its value
  * set to 0 and the access structure be returned in @a *atomic.
  *
- * Note that @a name must not exceed @ref SVN_NAMED_ATOMIC__MAX_NAME_LENGTH
+ * Note that @a name must not exceed #SVN_NAMED_ATOMIC__MAX_NAME_LENGTH
  * characters and an error will be returned if the specified name is longer
  * than supported.
  *

Modified: subversion/branches/ev2-export/subversion/include/private/svn_skel.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/private/svn_skel.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/private/svn_skel.h (original)
+++ subversion/branches/ev2-export/subversion/include/private/svn_skel.h Fri Dec 21 00:23:39 2012
@@ -226,7 +226,8 @@ svn_skel__unparse_proplist(svn_skel_t **
 svn_error_t *
 svn_skel__unparse_iproplist(svn_skel_t **skel_p,
                             const apr_array_header_t *inherited_props,
-                            apr_pool_t *result_pool);
+                            apr_pool_t *result_pool,
+                            apr_pool_t *scratch_pool);
 
 #ifdef __cplusplus
 }

Modified: subversion/branches/ev2-export/subversion/include/private/svn_sqlite.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/private/svn_sqlite.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/private/svn_sqlite.h (original)
+++ subversion/branches/ev2-export/subversion/include/private/svn_sqlite.h Fri Dec 21 00:23:39 2012
@@ -380,6 +380,50 @@ svn_error_t *
 svn_sqlite__reset(svn_sqlite__stmt_t *stmt);
 
 
+/* Begin a transaction in DB. */
+svn_error_t *
+svn_sqlite__begin_transaction(svn_sqlite__db_t *db);
+
+/* Like svn_sqlite__begin_transaction(), but takes out a 'RESERVED' lock
+   immediately, instead of using the default deferred locking scheme. */
+svn_error_t *
+svn_sqlite__begin_immediate_transaction(svn_sqlite__db_t *db);
+
+/* Begin a savepoint in DB. */
+svn_error_t *
+svn_sqlite__begin_savepoint(svn_sqlite__db_t *db);
+
+/* Commit the current transaction in DB if ERR is SVN_NO_ERROR, otherwise
+ * roll back the transaction.  Return a composition of ERR and any error
+ * that may occur during the commit or roll-back. */
+svn_error_t *
+svn_sqlite__finish_transaction(svn_sqlite__db_t *db,
+                               svn_error_t *err);
+
+/* Release the current savepoint in DB if EXPR is SVN_NO_ERROR, otherwise
+ * roll back to the savepoint and then release it.  Return a composition of
+ * ERR and any error that may occur during the release or roll-back. */
+svn_error_t *
+svn_sqlite__finish_savepoint(svn_sqlite__db_t *db,
+                             svn_error_t *err);
+
+/* Evaluate the expression EXPR within a transaction.
+ *
+ * Begin a transaction in DB; evaluate the expression EXPR, which would
+ * typically be a function call that does some work in DB; finally commit
+ * the transaction if EXPR evaluated to SVN_NO_ERROR, otherwise roll back
+ * the transaction.
+ */
+#define SVN_SQLITE__WITH_TXN(expr, db)                                        \
+  do {                                                                        \
+    svn_sqlite__db_t *svn_sqlite__db = (db);                                  \
+    svn_error_t *svn_sqlite__err;                                             \
+                                                                              \
+    SVN_ERR(svn_sqlite__begin_transaction(svn_sqlite__db));                   \
+    svn_sqlite__err = (expr);                                                 \
+    SVN_ERR(svn_sqlite__finish_transaction(svn_sqlite__db, svn_sqlite__err)); \
+  } while (0)
+
 /* Callback function to for use with svn_sqlite__with_transaction(). */
 typedef svn_error_t *(*svn_sqlite__transaction_callback_t)(
   void *baton, svn_sqlite__db_t *db, apr_pool_t *scratch_pool);
@@ -394,6 +438,18 @@ svn_sqlite__with_transaction(svn_sqlite_
                              svn_sqlite__transaction_callback_t cb_func,
                              void *cb_baton, apr_pool_t *scratch_pool);
 
+/* Like SVN_SQLITE__WITH_TXN(), but takes out a 'RESERVED' lock
+   immediately, instead of using the default deferred locking scheme. */
+#define SVN_SQLITE__WITH_IMMEDIATE_TXN(expr, db)                              \
+  do {                                                                        \
+    svn_sqlite__db_t *svn_sqlite__db = (db);                                  \
+    svn_error_t *svn_sqlite__err;                                             \
+                                                                              \
+    SVN_ERR(svn_sqlite__begin_immediate_transaction(svn_sqlite__db));         \
+    svn_sqlite__err = (expr);                                                 \
+    SVN_ERR(svn_sqlite__finish_transaction(svn_sqlite__db, svn_sqlite__err)); \
+  } while (0)
+
 /* Like svn_sqlite__with_transaction(), but takes out a 'RESERVED' lock
    immediately, instead of using the default deferred locking scheme. */
 svn_error_t *
@@ -402,6 +458,23 @@ svn_sqlite__with_immediate_transaction(s
                                        void *cb_baton,
                                        apr_pool_t *scratch_pool);
 
+/* Evaluate the expression EXPR within a 'savepoint'.  Savepoints can be
+ * nested.
+ *
+ * Begin a savepoint in DB; evaluate the expression EXPR, which would
+ * typically be a function call that does some work in DB; finally release
+ * the savepoint if EXPR evaluated to SVN_NO_ERROR, otherwise roll back
+ * to the savepoint and then release it.
+ */
+#define SVN_SQLITE__WITH_LOCK(expr, db)                                       \
+  do {                                                                        \
+    svn_sqlite__db_t *svn_sqlite__db = (db);                                  \
+    svn_error_t *svn_sqlite__err;                                             \
+                                                                              \
+    SVN_ERR(svn_sqlite__begin_savepoint(svn_sqlite__db));                     \
+    svn_sqlite__err = (expr);                                                 \
+    SVN_ERR(svn_sqlite__finish_savepoint(svn_sqlite__db, svn_sqlite__err));   \
+  } while (0)
 
 /* Helper function to handle several SQLite operations inside a shared lock.
    This callback is similar to svn_sqlite__with_transaction(), but can be

Modified: subversion/branches/ev2-export/subversion/include/svn_cmdline.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_cmdline.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_cmdline.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_cmdline.h Fri Dec 21 00:23:39 2012
@@ -381,6 +381,15 @@ svn_cmdline__getopt_init(apr_getopt_t **
                          const char *argv[],
                          apr_pool_t *pool);
 
+/* Determine whether interactive mode should be enabled, based on whether
+ * the user passed the --non-interactive or --force-interactive options.
+ * If neither option was passed, interactivity is enabled if standard
+ * input is connected to a terminal device.
+ * @since New in 1.8. */
+svn_boolean_t
+svn_cmdline__be_interactive(svn_boolean_t non_interactive,
+                            svn_boolean_t force_interactive);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/branches/ev2-export/subversion/include/svn_delta.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_delta.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_delta.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_delta.h Fri Dec 21 00:23:39 2012
@@ -368,7 +368,7 @@ svn_txdelta_md5_digest(svn_txdelta_strea
  * @a source and @a target are both readable generic streams.  When we call
  * svn_txdelta_next_window() on @a *stream, it will read from @a source and
  * @a target to gather as much data as it needs.  If @a calculate_checksum
- * is set, you may call @ref svn_txdelta_md5_digest to get an MD5 checksum
+ * is set, you may call svn_txdelta_md5_digest() to get an MD5 checksum
  * for @a target.
  *
  * Do any necessary allocation in a sub-pool of @a pool.

Modified: subversion/branches/ev2-export/subversion/include/svn_error.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_error.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_error.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_error.h Fri Dec 21 00:23:39 2012
@@ -315,8 +315,6 @@ svn_handle_warning(FILE *stream,
  * @since New in 1.7.
  */
 #ifdef SVN_ERR__TRACING
-#define SVN_ERR__TRACED "traced call"
-
 svn_error_t *
 svn_error__trace(const char *file, long line, svn_error_t *err);
 

Modified: subversion/branches/ev2-export/subversion/include/svn_io.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_io.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_io.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_io.h Fri Dec 21 00:23:39 2012
@@ -724,7 +724,7 @@ svn_io_file_lock2(const char *lock_file,
  * is not available: throw an error instead.
  *
  * Lock will be automatically released when @a pool is cleared or destroyed.
- * You may also explicitly call @ref svn_io_unlock_open_file.
+ * You may also explicitly call svn_io_unlock_open_file().
  * Use @a pool for memory allocations. @a pool must be the pool that
  * @a lockfile_handle has been created in or one of its sub-pools.
  *

Modified: subversion/branches/ev2-export/subversion/include/svn_mergeinfo.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_mergeinfo.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_mergeinfo.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_mergeinfo.h Fri Dec 21 00:23:39 2012
@@ -315,6 +315,9 @@ svn_rangelist_diff(svn_rangelist_t **del
  * in sorted order and be compacted to the minimal number of ranges
  * needed to represent the merged result.
  *
+ * If the original rangelisted contain non collapsed adjacent ranges, the
+ * final result is not guaranteed to be compacted either.
+ *
  * Use @a scratch_pool for temporary allocations.
  *
  * @since New in 1.8.
@@ -331,6 +334,9 @@ svn_rangelist_merge2(svn_rangelist_t *ra
  * in place. If not used carefully, this function can use up a lot of memory
  * if called in a loop.
  *
+ * It performs an extra adjacent range compaction round to make sure non
+ * collapsed input ranges are compacted in the result.
+ *
  * @since New in 1.5.
  * @deprecated Provided for backward compatibility with the 1.7 API.
  */

Modified: subversion/branches/ev2-export/subversion/include/svn_pools.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_pools.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_pools.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_pools.h Fri Dec 21 00:23:39 2012
@@ -87,7 +87,7 @@ svn_pool_create_ex_debug(pool, allocator
 #define svn_pool_destroy apr_pool_destroy
 
 /** Return a new allocator.  This function limits the unused memory in the
- * new allocator to @ref SVN_ALLOCATOR_RECOMMENDED_MAX_FREE and ensures
+ * new allocator to #SVN_ALLOCATOR_RECOMMENDED_MAX_FREE and ensures
  * proper synchronization if the allocator is used by multiple threads.
  *
  * If your application uses multiple threads, creating a separate allocator

Modified: subversion/branches/ev2-export/subversion/include/svn_props.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_props.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_props.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_props.h Fri Dec 21 00:23:39 2012
@@ -110,7 +110,7 @@ typedef struct svn_prop_inherited_item_t
  * @since New in 1.5.
  */
 apr_array_header_t *
-svn_prop_hash_to_array(apr_hash_t *hash,
+svn_prop_hash_to_array(const apr_hash_t *hash,
                        apr_pool_t *pool);
 
 /**
@@ -133,7 +133,7 @@ svn_prop_array_to_hash(const apr_array_h
  * @since New in 1.6.
  */
 apr_hash_t *
-svn_prop_hash_dup(apr_hash_t *hash,
+svn_prop_hash_dup(const apr_hash_t *hash,
                   apr_pool_t *pool);
 
 /**
@@ -144,7 +144,7 @@ svn_prop_hash_dup(apr_hash_t *hash,
  * @since New in 1.7.
  */
 const char *
-svn_prop_get_value(apr_hash_t *properties,
+svn_prop_get_value(const apr_hash_t *properties,
                    const char *prop_name);
 
 /**
@@ -317,8 +317,8 @@ svn_categorize_props(const apr_array_hea
  */
 svn_error_t *
 svn_prop_diffs(apr_array_header_t **propdiffs,
-               apr_hash_t *target_props,
-               apr_hash_t *source_props,
+               const apr_hash_t *target_props,
+               const apr_hash_t *source_props,
                apr_pool_t *pool);
 
 

Modified: subversion/branches/ev2-export/subversion/include/svn_ra.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_ra.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_ra.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_ra.h Fri Dec 21 00:23:39 2012
@@ -1930,6 +1930,12 @@ svn_ra_get_deleted_rev(svn_ra_session_t 
  * inheritable properties are found, then set @a *inherited_props to
  * an empty array.
  *
+ * If @a use_relpath_keys is true, then the
+ * #svn_prop_inherited_item_t->path_or_url members of the
+ * #svn_prop_inherited_item_t * structures in @a *inherited_props are
+ * paths relative to the repository root URL (of the repository which
+ * @a ra_session is associated).  Otherwise these members are URLs.
+ *
  * Allocated @a *inherited_props in @a result_pool, use @a scratch_pool
  * for temporary allocations.
  *
@@ -1940,6 +1946,7 @@ svn_ra_get_inherited_props(svn_ra_sessio
                            apr_array_header_t **inherited_props,
                            const char *path,
                            svn_revnum_t revision,
+                           svn_boolean_t use_relpath_keys,
                            apr_pool_t *result_pool,
                            apr_pool_t *scratch_pool);
 

Modified: subversion/branches/ev2-export/subversion/include/svn_subst.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_subst.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_subst.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_subst.h Fri Dec 21 00:23:39 2012
@@ -128,8 +128,14 @@ typedef struct svn_subst_keywords_t
  * given a @a keywords_string (the contents of the svn:keywords
  * property for the file in question), the revision @a rev, the @a url,
  * the @a date the file was committed on, and the @a author of the last
- * commit.  Any of these can be @c NULL to indicate that the information is
- * not present, or @c 0 for @a date.
+ * commit.
+ *
+ * Any of the inputs @a rev, @a url, @a date and @a author can be @c NULL,
+ * or @c 0 for @a date, to indicate that the information is not present.
+ * Each piece of information that is not present expands to the empty
+ * string wherever it appears in an expanded keyword value.  (This can
+ * result in multiple adjacent spaces in the expansion of a multi-valued
+ * keyword such as "Id".)
  *
  * Hash keys are of type <tt>const char *</tt>.
  * Hash values are of type <tt>svn_string_t *</tt>.

Modified: subversion/branches/ev2-export/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_wc.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_wc.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_wc.h Fri Dec 21 00:23:39 2012
@@ -1132,7 +1132,7 @@ typedef enum svn_wc_notify_action_t
    * @since New in 1.7. */
   svn_wc_notify_update_shadowed_add,
 
-  /** A node below an exising node was updated during update.
+  /** A node below an existing node was updated during update.
    * @since New in 1.7. */
   svn_wc_notify_update_shadowed_update,
 
@@ -4528,7 +4528,16 @@ svn_wc_delete(const char *path,
 
 /**
  * Schedule the single node that exists on disk at @a local_abspath for
- * addition to the working copy.  The added node will have no properties.
+ * addition to the working copy.  The added node will have the properties
+ * provided in @a props, or none if that is NULL.
+ *
+ * Check and canonicalize the properties in the same way as
+ * svn_wc_prop_set4().  Return an error and don't add the node if the
+ * properties are not valid on this node.  Unlike svn_wc_prop_set4()
+ * there is no option to skip some of the checks and canonicalizations.
+ *
+ * ### The error code on validity check failure should be specified, and
+ *     preferably should be a single code.
  *
  * The versioned state of the parent path must be a modifiable directory,
  * and the versioned state of @a local_abspath must be either nonexistent or
@@ -4537,14 +4546,28 @@ svn_wc_delete(const char *path,
  * If @a local_abspath does not exist as file, directory or symlink, return
  * #SVN_ERR_WC_PATH_NOT_FOUND.
  *
- * This is a replacement for svn_wc_add4() case 2a.
+ * ### TODO: Split into add_dir, add_file, add_symlink?
  *
- * ### TODO: Allow the caller to provide the node's properties?
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_wc_add_from_disk2(svn_wc_context_t *wc_ctx,
+                      const char *local_abspath,
+                      const apr_hash_t *props,
+                      svn_wc_notify_func2_t notify_func,
+                      void *notify_baton,
+                      apr_pool_t *scratch_pool);
+
+
+/**
+ * Similar to svn_wc_add4(), but gives the new node an empty set of properties.
  *
- * ### TODO: Split into add_dir, add_file, add_symlink?
+ * This is a replacement for svn_wc_add4() case 2a.
  *
  * @since New in 1.7.
+ * @deprecated Provided for backward compatibility with the 1.7 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_wc_add_from_disk(svn_wc_context_t *wc_ctx,
                      const char *local_abspath,
@@ -6033,19 +6056,29 @@ svn_wc_prop_get(const svn_string_t **val
  * NULL, remove property @a name from @a local_abspath.  Use @a wc_ctx to
  * access @a local_abspath.
  *
- * If @a skip_checks is TRUE, do no validity checking.  But if @a
- * skip_checks is FALSE, and @a name is not a valid property for @a
- * path, return an error, either #SVN_ERR_ILLEGAL_TARGET (if the
+ * @a name may be a regular property or a "wc property".  If @a name is
+ * an "entry property", return the error #SVN_ERR_BAD_PROP_KIND (even if
+ * @a skip_checks is TRUE).
+ *
+ * If @a name is a "wc property", then just update the WC DAV cache for
+ * @a local_abspath with @a name and @a value.  In this case, @a depth
+ * must be #svn_depth_empty.
+ *
+ * The rest of this description applies when @a name is a regular property.
+ *
+ * If @a name is a name in the reserved "svn:" name space, and @a value is
+ * non-null, then canonicalize the property value and check the property
+ * name and value as documented for svn_wc_canonicalize_svn_prop().
+ * @a skip_checks controls the level of checking as documented there.
+ *
+ * Return an error if the canonicalization or the check fails.
+ * The error will be either #SVN_ERR_ILLEGAL_TARGET (if the
  * property is not appropriate for @a path), or
  * #SVN_ERR_BAD_MIME_TYPE (if @a name is "svn:mime-type", but @a value
  * is not a valid mime-type).
+ * ### That is not currently right -- several other errors can be raised.
  *
- * @a depth follows the usual semeatic for depth.  If the property is a
- * wc property, @a depth must be #svn_depth_empty.
- *
- * @a name may be a wc property or a regular property; but if it is an
- * entry property, return the error #SVN_ERR_BAD_PROP_KIND, even if
- * @a skip_checks is TRUE.
+ * @a depth follows the usual semantics for depth.
  *
  * @a changelist_filter is an array of <tt>const char *</tt> changelist
  * names, used as a restrictive filter on items whose properties are
@@ -6063,6 +6096,14 @@ svn_wc_prop_get(const svn_string_t **val
  *
  * Use @a scratch_pool for temporary allocation.
  *
+ * @note If the caller is setting both svn:mime-type and svn:eol-style in
+ * separate calls, and @a skip_checks is false, there is an ordering
+ * dependency between them, as the validity check for svn:eol-style makes
+ * use of the current value of svn:mime-type.
+ *
+ * ### The error code on validity check failure should be specified, and
+ *     should be a single code or a very small set of possibilities.
+ *
  * @since New in 1.7.
  */
 svn_error_t *
@@ -6081,7 +6122,7 @@ svn_wc_prop_set4(svn_wc_context_t *wc_ct
 
 /** Similar to svn_wc_prop_set4(), but with a #svn_wc_adm_access_t /
  * relative path parameter pair, no @a depth parameter, no changelist
- * filtering (for the depth-based property setting), and no cancelation.
+ * filtering (for the depth-based property setting), and no cancellation.
  *
  * @since New in 1.6.
  * @deprecated Provided for backwards compatibility with the 1.6 API.
@@ -6182,21 +6223,55 @@ typedef svn_error_t *(*svn_wc_canonicali
  * is otherwise invalid, throw an error.  Otherwise, set @a *propval_p
  * to a canonicalized version of the property value.
  *
- * If @a skip_some_checks is TRUE, some validity checks and
- * canonicalizations are skipped. Presently, these are:
- *   - For svn:eol-style: strip white space; check value is recognized;
- *       check file content matches value.
- *   - For svn:mime-type: strip white space; check value has reasonable
- *       syntax.
- *
- * Some validity checks require access to the contents and MIME type
- * of the target if it is a file; they will call @a prop_getter with @a
- * getter_baton, which then needs to set the MIME type and print the
- * contents of the file to the given stream.
+ * The exact set of canonicalizations and checks may vary across different
+ * versions of this API.  Currently:
+ *
+ *   - svn:executable
+ *   - svn:needs-lock
+ *   - svn:special
+ *     - set the value to '*'
+ *
+ *   - svn:keywords
+ *     - strip leading and trailing white space
+ *
+ *   - svn:ignore
+ *   - svn:global-ignores
+ *   - svn:auto-props
+ *     - add a final a newline character if missing
+ *
+ *   - svn:externals
+ *     - add a final a newline character if missing
+ *     - check for valid syntax
+ *     - check for no duplicate entries
+ *
+ *   - svn:mergeinfo
+ *     - canonicalize
+ *     - check for validity
+ *
+ * Also, unless @a skip_some_checks is TRUE:
+ *
+ *   - svn:eol-style
+ *     - strip leading and trailing white space
+ *     - check value is recognized
+ *     - check file content has a self-consistent EOL style
+ *       (but not necessarily that it matches @a propval)
+ *
+ *   - svn:mime-type
+ *     - strip white space
+ *     - check for reasonable syntax
+ *
+ * The EOL-style check (if not skipped) requires access to the contents and
+ * MIME type of the target if it is a file.  It will call @a prop_getter with
+ * @a getter_baton.  The callback must set the MIME type and/or write the
+ * contents of the file to the given stream.  If @a skip_some_checks is true,
+ * then @a prop_getter is not used and may be NULL.
  *
  * @a path should be the path of the file in question; it is only used
  * for error messages.
  *
+ * ### The error code on validity check failure should be specified, and
+ *     should be a single code or a very small set of possibilities.
+ *
  * ### This is not actually related to the WC, but it does need to call
  * ### svn_wc_parse_externals_description3.
  *
@@ -6658,7 +6733,7 @@ typedef enum svn_wc_merge_outcome_t
  * return success without merging anything.  (The reasoning is that if
  * the file is not versioned, then it is probably unrelated to the
  * changes being considered, so they should not be merged into it.
- * Furtheremore, merging into an unversioned file is a lossy operation.)
+ * Furthermore, merging into an unversioned file is a lossy operation.)
  *
  * @a dry_run determines whether the working copy is modified.  When it
  * is @c FALSE the merge will cause @a target_abspath to be modified, when
@@ -7048,7 +7123,7 @@ svn_wc_cleanup3(svn_wc_context_t *wc_ctx
 
 /**
  * Similar to svn_wc_cleanup3() but uses relative paths and creates its own
- * swn_wc_context_t.
+ * #svn_wc_context_t.
  *
  * @since New in 1.2.
  * @deprecated Provided for backward compatibility with the 1.6 API.

Modified: subversion/branches/ev2-export/subversion/libsvn_client/add.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/add.c?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/add.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/add.c Fri Dec 21 00:23:39 2012
@@ -275,7 +275,6 @@ add_file(const char *local_abspath,
          apr_pool_t *pool)
 {
   apr_hash_t *properties;
-  apr_hash_index_t *hi;
   const char *mimetype;
   svn_node_kind_t kind;
   svn_boolean_t is_special;
@@ -283,10 +282,7 @@ add_file(const char *local_abspath,
   /* Check to see if this is a special file. */
   SVN_ERR(svn_io_check_special_path(local_abspath, &kind, &is_special, pool));
 
-  /* Add the file */
-  SVN_ERR(svn_wc_add_from_disk(ctx->wc_ctx, local_abspath,
-                               NULL, NULL, pool));
-
+  /* Determine the properties that the file should have */
   if (is_special)
     {
       mimetype = NULL;
@@ -320,47 +316,9 @@ add_file(const char *local_abspath,
                                                pool));
     }
 
-  /* loop through the hashtable and add the properties */
-  for (hi = apr_hash_first(pool, properties);
-       hi != NULL; hi = apr_hash_next(hi))
-    {
-      const char *pname = svn__apr_hash_index_key(hi);
-      const svn_string_t *pval = svn__apr_hash_index_val(hi);
-      svn_error_t *err;
-
-      /* It's probably best to pass 0 for force, so that if
-         the autoprops say to set some weird combination,
-         we just error and let the user sort it out. */
-      err = svn_wc_prop_set4(ctx->wc_ctx, local_abspath, pname, pval,
-                             svn_depth_empty, FALSE, NULL,
-                             NULL, NULL /* cancellation */,
-                             NULL, NULL /* notification */,
-                             pool);
-      if (err)
-        {
-          /* Don't leave the job half-done. If we fail to set a property,
-           * (try to) un-add the file. */
-          return svn_error_compose_create(
-                   err,
-                   svn_wc_revert4(ctx->wc_ctx,
-                                  local_abspath,
-                                  svn_depth_empty,
-                                  FALSE /* use_commit_times */,
-                                  NULL /* changelists */,
-                                  NULL, NULL, NULL, NULL,
-                                  pool));
-        }
-    }
-
-  /* Report the addition to the caller. */
-  if (ctx->notify_func2 != NULL)
-    {
-      svn_wc_notify_t *notify = svn_wc_create_notify(local_abspath,
-                                                     svn_wc_notify_add, pool);
-      notify->kind = svn_node_file;
-      notify->mime_type = mimetype;
-      (*ctx->notify_func2)(ctx->notify_baton2, notify, pool);
-    }
+  /* Add the file */
+  SVN_ERR(svn_wc_add_from_disk2(ctx->wc_ctx, local_abspath, properties,
+                                ctx->notify_func2, ctx->notify_baton2, pool));
 
   return SVN_NO_ERROR;
 }
@@ -425,9 +383,9 @@ add_dir_recursive(const char *dir_abspat
                                         iterpool));
 
   /* Add this directory to revision control. */
-  err = svn_wc_add_from_disk(ctx->wc_ctx, dir_abspath,
-                             ctx->notify_func2, ctx->notify_baton2,
-                             iterpool);
+  err = svn_wc_add_from_disk2(ctx->wc_ctx, dir_abspath, NULL /*props*/,
+                              ctx->notify_func2, ctx->notify_baton2,
+                              iterpool);
   if (err)
     {
       if (err->apr_err == SVN_ERR_ENTRY_EXISTS && force)
@@ -1009,9 +967,10 @@ add(const char *local_abspath,
                                      parent_abspath, local_abspath);
 
           SVN_ERR(svn_io_make_dir_recursively(parent_abspath, scratch_pool));
-          SVN_ERR(svn_wc_add_from_disk(ctx->wc_ctx, parent_abspath,
-                                       ctx->notify_func2, ctx->notify_baton2,
-                                       scratch_pool));
+          SVN_ERR(svn_wc_add_from_disk2(ctx->wc_ctx, parent_abspath,
+                                        NULL /*props*/,
+                                        ctx->notify_func2, ctx->notify_baton2,
+                                        scratch_pool));
         }
       svn_pool_destroy(iterpool);
     }

Modified: subversion/branches/ev2-export/subversion/libsvn_client/client.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/client.h?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/client.h (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/client.h Fri Dec 21 00:23:39 2012
@@ -653,7 +653,10 @@ svn_client__list_internal(const char *pa
    as any WC roots under LOCAL_ABSPATH (as limited by DEPTH) using
    RA_SESSION.  Store the results in *WCROOT_IPROPS, a hash mapping
    const char * absolute working copy paths to depth-first ordered arrays
-   of svn_prop_inherited_item_t * structures.
+   of svn_prop_inherited_item_t * structures.  If WANT_RELPATH_KEYS is true,
+   then any svn_prop_inherited_item_t->path_or_url members returned in
+   *WCROOT_IPROPS are repository relative paths, otherwise these members are
+   URLs.
 
    If LOCAL_ABSPATH has no base then do nothing.
 
@@ -668,6 +671,7 @@ svn_client__get_inheritable_props(apr_ha
                                   const char *local_abspath,
                                   svn_revnum_t revision,
                                   svn_depth_t depth,
+                                  svn_boolean_t use_relpath_keys,
                                   svn_ra_session_t *ra_session,
                                   svn_client_ctx_t *ctx,
                                   apr_pool_t *result_pool,

Modified: subversion/branches/ev2-export/subversion/libsvn_client/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/commit.c?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/commit.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/commit.c Fri Dec 21 00:23:39 2012
@@ -1023,25 +1023,3 @@ svn_client_commit6(const apr_array_heade
   return svn_error_trace(reconcile_errors(cmt_err, unlock_err, bump_err,
                                           pool));
 }
-
-svn_error_t *
-svn_client_commit5(const apr_array_header_t *targets,
-                   svn_depth_t depth,
-                   svn_boolean_t keep_locks,
-                   svn_boolean_t keep_changelists,
-                   svn_boolean_t commit_as_operations,
-                   const apr_array_header_t *changelists,
-                   const apr_hash_t *revprop_table,
-                   svn_commit_callback2_t commit_callback,
-                   void *commit_baton,
-                   svn_client_ctx_t *ctx,
-                   apr_pool_t *pool)
-{
-  return svn_client_commit6(targets, depth, keep_locks, keep_changelists,
-                            commit_as_operations,
-                            TRUE,  /* include_file_externals */
-                            FALSE, /* include_dir_externals */
-                            changelists, revprop_table, commit_callback,
-                            commit_baton, ctx, pool);
-}
-

Modified: subversion/branches/ev2-export/subversion/libsvn_client/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/deprecated.c?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/deprecated.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/deprecated.c Fri Dec 21 00:23:39 2012
@@ -512,6 +512,26 @@ downgrade_commit_copied_notify_func(void
     b->orig_notify_func2(b->orig_notify_baton2, notify, pool);
 }
 
+svn_error_t *
+svn_client_commit5(const apr_array_header_t *targets,
+                   svn_depth_t depth,
+                   svn_boolean_t keep_locks,
+                   svn_boolean_t keep_changelists,
+                   svn_boolean_t commit_as_operations,
+                   const apr_array_header_t *changelists,
+                   const apr_hash_t *revprop_table,
+                   svn_commit_callback2_t commit_callback,
+                   void *commit_baton,
+                   svn_client_ctx_t *ctx,
+                   apr_pool_t *pool)
+{
+  return svn_client_commit6(targets, depth, keep_locks, keep_changelists,
+                            commit_as_operations,
+                            FALSE,  /* include_file_externals */
+                            FALSE, /* include_dir_externals */
+                            changelists, revprop_table, commit_callback,
+                            commit_baton, ctx, pool);
+}
 
 svn_error_t *
 svn_client_commit4(svn_commit_info_t **commit_info_p,

Modified: subversion/branches/ev2-export/subversion/libsvn_client/diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/diff.c?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/diff.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/diff.c Fri Dec 21 00:23:39 2012
@@ -613,6 +613,8 @@ static svn_error_t *
 diff_props_changed(svn_wc_notify_state_t *state,
                    svn_boolean_t *tree_conflicted,
                    const char *path,
+                   svn_revnum_t rev1,
+                   svn_revnum_t rev2,
                    svn_boolean_t dir_was_added,
                    const apr_array_header_t *propchanges,
                    apr_hash_t *original_props,
@@ -642,8 +644,8 @@ diff_props_changed(svn_wc_notify_state_t
       SVN_ERR(display_prop_diffs(props, original_props, path,
                                  diff_cmd_baton->orig_path_1,
                                  diff_cmd_baton->orig_path_2,
-                                 diff_cmd_baton->revnum1,
-                                 diff_cmd_baton->revnum2,
+                                 rev1,
+                                 rev2,
                                  diff_cmd_baton->header_encoding,
                                  diff_cmd_baton->outstream,
                                  diff_cmd_baton->relative_to_dir,
@@ -686,6 +688,10 @@ diff_dir_props_changed(svn_wc_notify_sta
 
   return svn_error_trace(diff_props_changed(state,
                                             tree_conflicted, path,
+                                            /* ### These revs be filled
+                                             * ### with per node info */
+                                            diff_cmd_baton->revnum1,
+                                            diff_cmd_baton->revnum2,
                                             dir_was_added,
                                             propchanges,
                                             original_props,
@@ -952,7 +958,7 @@ diff_file_changed(svn_wc_notify_state_t 
                                  SVN_INVALID_REVNUM, diff_cmd_baton));
   if (prop_changes->nelts > 0)
     SVN_ERR(diff_props_changed(prop_state, tree_conflicted,
-                               path, FALSE, prop_changes,
+                               path, rev1, rev2, FALSE, prop_changes,
                                original_props, diff_cmd_baton, scratch_pool));
   if (content_state)
     *content_state = svn_wc_notify_state_unknown;
@@ -1025,7 +1031,8 @@ diff_file_added(svn_wc_notify_state_t *c
                                  diff_cmd_baton));
   if (prop_changes->nelts > 0)
     SVN_ERR(diff_props_changed(prop_state, tree_conflicted,
-                               path, FALSE, prop_changes,
+                               path, rev1, rev2,
+                               FALSE, prop_changes,
                                original_props, diff_cmd_baton, scratch_pool));
   if (content_state)
     *content_state = svn_wc_notify_state_unknown;
@@ -1877,6 +1884,8 @@ arbitrary_diff_walker(void *baton, const
                              scratch_pool));
       if (prop_changes->nelts > 0)
         SVN_ERR(diff_props_changed(NULL, NULL, child_relpath,
+                                   b->callback_baton->revnum1,
+                                   b->callback_baton->revnum2,
                                    b->recursing_within_added_subtree,
                                    prop_changes, original_props,
                                    b->callback_baton, scratch_pool));

Modified: subversion/branches/ev2-export/subversion/libsvn_client/externals.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/externals.c?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/externals.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/externals.c Fri Dec 21 00:23:39 2012
@@ -484,7 +484,8 @@ switch_file_external(const char *local_a
                                               ctx, subpool));
     /* Get the external file's iprops. */
     SVN_ERR(svn_ra_get_inherited_props(ra_session, &inherited_props, "",
-                                       switch_loc->rev, subpool, subpool));
+                                       switch_loc->rev, TRUE,
+                                       subpool, subpool));
 
     SVN_ERR(svn_ra_reparent(ra_session, svn_uri_dirname(url, subpool),
                             subpool));

Modified: subversion/branches/ev2-export/subversion/libsvn_client/iprops.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/iprops.c?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/iprops.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/iprops.c Fri Dec 21 00:23:39 2012
@@ -41,10 +41,12 @@
 /*** Code. ***/
 
 /* Determine if LOCAL_ABSPATH needs an inherited property cache.  If it does,
-   then set *NEEDS_CACHE to TRUE, set it to FALSE otherwise. */
+   then set *NEEDS_CACHE to TRUE, set it to FALSE otherwise.  All other args
+   are as per svn_client__get_inheritable_props(). */
 static svn_error_t *
 need_to_cache_iprops(svn_boolean_t *needs_cache,
                      const char *local_abspath,
+                     svn_ra_session_t *ra_session,
                      svn_client_ctx_t *ctx,
                      apr_pool_t *scratch_pool)
 {
@@ -71,7 +73,25 @@ need_to_cache_iprops(svn_boolean_t *need
         }
     }
 
-  *needs_cache = (is_wc_root || is_switched);
+  /* Starting assumption. */
+  *needs_cache = FALSE;
+
+  if (is_wc_root || is_switched)
+    {
+      const char *session_url;
+      const char *session_root_url;
+
+      /* Looks likely that we need an inherited properties cache...Unless
+         LOCAL_ABSPATH is a WC root that points to the repos root.  Then it
+         doesn't need a cache because it has nowhere to inherit from.  Check
+         for that case. */
+      SVN_ERR(svn_ra_get_session_url(ra_session, &session_url, scratch_pool));
+      SVN_ERR(svn_ra_get_repos_root2(ra_session, &session_root_url,
+                                     scratch_pool));
+
+      if (strcmp(session_root_url, session_url) != 0)
+        *needs_cache = TRUE;
+    }
 
   return SVN_NO_ERROR;
 }
@@ -81,6 +101,7 @@ svn_client__get_inheritable_props(apr_ha
                                   const char *local_abspath,
                                   svn_revnum_t revision,
                                   svn_depth_t depth,
+                                  svn_boolean_t use_relpath_keys,
                                   svn_ra_session_t *ra_session,
                                   svn_client_ctx_t *ctx,
                                   apr_pool_t *result_pool,
@@ -111,7 +132,7 @@ svn_client__get_inheritable_props(apr_ha
           svn_boolean_t needs_cached_iprops;
 
           SVN_ERR(need_to_cache_iprops(&needs_cached_iprops, local_abspath,
-                                       ctx, iterpool));
+                                       ra_session, ctx, iterpool));
           if (needs_cached_iprops)
             {
               const char *target_abspath = apr_pstrdup(scratch_pool,
@@ -163,8 +184,8 @@ svn_client__get_inheritable_props(apr_ha
             }
 
           SVN_ERR(svn_ra_get_inherited_props(ra_session, &inherited_props,
-                                             "", revision, result_pool,
-                                             iterpool));
+                                             "", revision, use_relpath_keys,
+                                             result_pool, iterpool));
           apr_hash_set(*wcroot_iprops,
                        apr_pstrdup(result_pool, child_abspath),
                        APR_HASH_KEY_STRING,

Modified: subversion/branches/ev2-export/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/merge.c?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/merge.c Fri Dec 21 00:23:39 2012
@@ -4429,13 +4429,24 @@ find_gaps_in_merge_source_history(svn_re
 
   if (rangelist->nelts > 1) /* Copy */
     {
+      const svn_merge_range_t *gap;
       /* As mentioned above, multiple gaps *shouldn't* be possible. */
       SVN_ERR_ASSERT(apr_hash_count(implicit_src_mergeinfo) == 1);
 
+      gap = APR_ARRAY_IDX(rangelist, rangelist->nelts - 1,
+                          const svn_merge_range_t *);
+
       *gap_start = MIN(source->loc1->rev, source->loc2->rev);
-      *gap_end = (APR_ARRAY_IDX(rangelist,
-                                rangelist->nelts - 1,
-                                svn_merge_range_t *))->start;
+      *gap_end = gap->start;
+
+      /* ### Issue #4132:
+         ### This assertion triggers in merge_tests.py svnmucc_abuse_1()
+         ### when a node is replaced by an older copy of itself.
+
+         BH: I think we should review this and the 'rename' case to find
+             out which behavior we really want, and if we can really
+             determine what happened this way. */
+      SVN_ERR_ASSERT(*gap_start < *gap_end);
     }
   else if (apr_hash_count(implicit_src_mergeinfo) > 1) /* Rename */
     {

Modified: subversion/branches/ev2-export/subversion/libsvn_client/patch.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/patch.c?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/patch.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/patch.c Fri Dec 21 00:23:39 2012
@@ -2288,9 +2288,10 @@ create_missing_parents(patch_target_t *t
               if (ctx->cancel_func)
                 SVN_ERR(ctx->cancel_func(ctx->cancel_baton));
 
-              SVN_ERR(svn_wc_add_from_disk(ctx->wc_ctx, local_abspath,
-                                           ctx->notify_func2, ctx->notify_baton2,
-                                           iterpool));
+              SVN_ERR(svn_wc_add_from_disk2(ctx->wc_ctx, local_abspath,
+                                            NULL /*props*/,
+                                            ctx->notify_func2, ctx->notify_baton2,
+                                            iterpool));
             }
         }
     }
@@ -2402,8 +2403,9 @@ install_patched_target(patch_target_t *t
                * Suppress notification, we'll do that later (and also
                * during dry-run). Don't allow cancellation because
                * we'd rather notify about what we did before aborting. */
-              SVN_ERR(svn_wc_add_from_disk(ctx->wc_ctx, target->local_abspath,
-                                           NULL, NULL, pool));
+              SVN_ERR(svn_wc_add_from_disk2(ctx->wc_ctx, target->local_abspath,
+                                            NULL /*props*/,
+                                            NULL, NULL, pool));
             }
 
           /* Restore the target's executable bit if necessary. */
@@ -2494,10 +2496,11 @@ install_patched_prop_targets(patch_targe
             {
               SVN_ERR(svn_io_file_create(target->local_abspath, "",
                                          scratch_pool));
-              SVN_ERR(svn_wc_add_from_disk(ctx->wc_ctx, target->local_abspath,
-                                           /* suppress notification */
-                                           NULL, NULL,
-                                           iterpool));
+              SVN_ERR(svn_wc_add_from_disk2(ctx->wc_ctx, target->local_abspath,
+                                            NULL /*props*/,
+                                            /* suppress notification */
+                                            NULL, NULL,
+                                            iterpool));
             }
           target->added = TRUE;
         }

Modified: subversion/branches/ev2-export/subversion/libsvn_client/prop_commands.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/prop_commands.c?rev=1424772&r1=1424771&r2=1424772&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/prop_commands.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/prop_commands.c Fri Dec 21 00:23:39 2012
@@ -620,7 +620,7 @@ remote_propget(apr_hash_t *props,
       /* We will filter out all but PROPNAME later, making a final copy
          in RESULT_POOL, so pass SCRATCH_POOL for both pools. */
       SVN_ERR(svn_ra_get_inherited_props(ra_session, inherited_props,
-                                         target_relative, revnum,
+                                         target_relative, revnum, FALSE,
                                          scratch_pool, scratch_pool));
     }
 
@@ -1106,7 +1106,7 @@ remote_proplist(const char *target_prefi
 
   if (get_target_inherited_props)
     SVN_ERR(svn_ra_get_inherited_props(ra_session, &inherited_props,
-                                       target_relative, revnum,
+                                       target_relative, revnum, FALSE,
                                        result_pool, scratch_pool));
   else
     inherited_props = NULL;