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/02/27 16:52:04 UTC

svn commit: r1294191 [1/7] - in /subversion/branches/fix-rdump-editor: ./ build/ build/ac-macros/ build/generator/ build/generator/templates/ subversion/bindings/swig/ subversion/bindings/swig/include/ subversion/bindings/swig/perl/native/ subversion/b...

Author: hwright
Date: Mon Feb 27 15:52:00 2012
New Revision: 1294191

URL: http://svn.apache.org/viewvc?rev=1294191&view=rev
Log:
On the fix-rdump-editor branch:
Bring up-to-date with trunk.

Modified:
    subversion/branches/fix-rdump-editor/   (props changed)
    subversion/branches/fix-rdump-editor/CHANGES
    subversion/branches/fix-rdump-editor/COMMITTERS
    subversion/branches/fix-rdump-editor/INSTALL
    subversion/branches/fix-rdump-editor/Makefile.in
    subversion/branches/fix-rdump-editor/autogen.sh
    subversion/branches/fix-rdump-editor/build/ac-macros/apache.m4
    subversion/branches/fix-rdump-editor/build/find_python.sh
    subversion/branches/fix-rdump-editor/build/generator/gen_vcnet_vcproj.py
    subversion/branches/fix-rdump-editor/build/generator/gen_win.py
    subversion/branches/fix-rdump-editor/build/generator/templates/neon.vcxproj.ezt
    subversion/branches/fix-rdump-editor/build/generator/templates/serf.vcxproj.ezt
    subversion/branches/fix-rdump-editor/build/generator/templates/svn_config.vcxproj.ezt
    subversion/branches/fix-rdump-editor/build/generator/templates/svn_locale.vcxproj.ezt
    subversion/branches/fix-rdump-editor/build/generator/templates/vcnet_vcxproj.ezt
    subversion/branches/fix-rdump-editor/build/generator/templates/zlib.vcxproj.ezt
    subversion/branches/fix-rdump-editor/configure.ac
    subversion/branches/fix-rdump-editor/get-deps.sh
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/INSTALL
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/include/svn_containers.swg
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/Base.pm   (props changed)
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/Client.pm   (props changed)
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/Core.pm   (props changed)
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/Delta.pm   (props changed)
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/Fs.pm   (props changed)
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/Ra.pm   (props changed)
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/Repos.pm   (props changed)
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/Wc.pm   (props changed)
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/0use.t   (props changed)
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/1repos.t   (props changed)
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/2fs.t   (props changed)
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/3client.t   (contents, props changed)
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/4pool.t   (props changed)
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/5delta-compat.t   (props changed)
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/5delta.t   (props changed)
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/tests/repository.py
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/tests/wc.py
    subversion/branches/fix-rdump-editor/subversion/include/private/svn_auth_private.h
    subversion/branches/fix-rdump-editor/subversion/include/private/svn_cache.h
    subversion/branches/fix-rdump-editor/subversion/include/private/svn_ra_private.h
    subversion/branches/fix-rdump-editor/subversion/include/private/svn_wc_private.h
    subversion/branches/fix-rdump-editor/subversion/include/svn_editor.h
    subversion/branches/fix-rdump-editor/subversion/include/svn_repos.h
    subversion/branches/fix-rdump-editor/subversion/include/svn_wc.h
    subversion/branches/fix-rdump-editor/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_auth_kwallet/kwallet.cpp
    subversion/branches/fix-rdump-editor/subversion/libsvn_client/add.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_client/checkout.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_client/client.h
    subversion/branches/fix-rdump-editor/subversion/libsvn_client/commit.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_client/copy.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_client/delete.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_client/diff.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_client/externals.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_client/merge.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_client/prop_commands.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_client/status.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_client/switch.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_client/update.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_client/util.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_delta/compat.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_delta/editor.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs_fs/structure
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra/ra_loader.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra/ra_loader.h
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra_local/ra_plugin.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra_neon/commit.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra_neon/ra_neon.h
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra_neon/session.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra_neon/util.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra_serf/commit.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra_serf/locks.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra_serf/ra_serf.h
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra_serf/serf.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra_serf/util.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra_svn/client.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra_svn/editorp.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra_svn/ra_svn.h
    subversion/branches/fix-rdump-editor/subversion/libsvn_repos/dump.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_repos/hooks.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_repos/log.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_repos/replay.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_subr/auth.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_subr/cache-inprocess.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_subr/cache-membuffer.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_subr/cache-memcache.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_subr/gpg_agent.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_subr/macos_keychain.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_subr/simple_providers.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_subr/skel.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_subr/sqlite.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_subr/ssl_client_cert_pw_providers.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_subr/win32_crypto.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_wc/adm_ops.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_wc/deprecated.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_wc/diff_editor.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_wc/externals.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_wc/status.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_wc/update_editor.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_wc/wc_db.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_wc/wc_db_private.h
    subversion/branches/fix-rdump-editor/subversion/libsvn_wc/wc_db_wcroot.c
    subversion/branches/fix-rdump-editor/subversion/mod_dav_svn/liveprops.c
    subversion/branches/fix-rdump-editor/subversion/po/fr.po
    subversion/branches/fix-rdump-editor/subversion/po/zh_CN.po
    subversion/branches/fix-rdump-editor/subversion/svnserve/serve.c
    subversion/branches/fix-rdump-editor/subversion/tests/README
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/README
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/copy_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/davautocheck.sh
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/diff_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/externals_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/lock_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/log_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/merge_reintegrate_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/patch_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/special_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/stat_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/svnadmin_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/svnlook_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/svnrdump_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/svnsync_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/svntest/__init__.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/svntest/actions.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/svntest/main.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/svntest/sandbox.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/svntest/verify.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/update_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/upgrade_tests.py
    subversion/branches/fix-rdump-editor/tools/buildbot/slaves/win32-SharpSvn/svntest-bindings.cmd
    subversion/branches/fix-rdump-editor/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd
    subversion/branches/fix-rdump-editor/tools/dev/unix-build/Makefile.svn
    subversion/branches/fix-rdump-editor/tools/dist/backport.pl

Propchange: subversion/branches/fix-rdump-editor/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Feb 27 15:52:00 2012
@@ -57,3 +57,4 @@
 /subversion/branches/tree-conflicts:868291-873154
 /subversion/branches/tree-conflicts-notify:873926-874008
 /subversion/branches/uris-as-urls:1060426-1064427
+/subversion/trunk:1242650-1294190

Modified: subversion/branches/fix-rdump-editor/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/CHANGES?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/CHANGES (original)
+++ subversion/branches/fix-rdump-editor/CHANGES Mon Feb 27 15:52:00 2012
@@ -32,7 +32,7 @@ http://svn.apache.org/repos/asf/subversi
   
  Developer-visible changes:
   - General:
-    *
+    * Now require Python 2.5 for tests and dev tools (r1243627)
 
   - API changes:
     * fix inconsistent handling of log revs without changed paths (issue #3694)
@@ -42,7 +42,7 @@ http://svn.apache.org/repos/asf/subversi
 
 
 Version 1.7.3
-(XX Feb 2012, from /branches/1.7.x)
+(14 Feb 2012, from /branches/1.7.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.7.3
 
   General:
@@ -77,12 +77,17 @@ http://svn.apache.org/repos/asf/subversi
     * log some mod_dav_svn errors, rather than ignoring them (r1237720, -9596)
     * relax requirements for canonicalization in mod_dav_svn (r1236173)
     * fix a rare source of FSFS corruption (r1240752)
+    * allow committing the result of some copy operations (issue #4059)
+    * prevent one-byte buffer overflow in base64 decoding (r1242337)
 
   Developer-visible changes:
     * JavaHL: Add missing notify action, fixing an exception (r1221793)
     * fix swig-py memory leak (r1235264, -296, -302, -736)
     * fix spurious test suite failure (r1220742, -50)
     * allow running tests on UNC shares (r1225491)
+    * bindings: see platform-specific password providers (r1242660, -1)
+    * skip 'svnrdump dump' tests over ra_serf (r1242537)
+    * convert a few ra_serf assertions to errors (r1242607)
 
 
 Version 1.7.2

Modified: subversion/branches/fix-rdump-editor/COMMITTERS
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/COMMITTERS?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/COMMITTERS [UTF-8] (original)
+++ subversion/branches/fix-rdump-editor/COMMITTERS [UTF-8] Mon Feb 27 15:52:00 2012
@@ -137,7 +137,7 @@ Commit access for specific areas:
        madanus   Madan U S <ma...@collab.net>                (svnmerge) [EMAIL
                                                              IS BOUNCING]
           wein   Mathias Weinert <we...@mccw.de>              (mailer)
-        bhuvan   Bhuvaneswaran <bh...@collab.net>           (svn2feed.py,
+        bhuvan   Bhuvaneswaran A <bh...@apache.org>         (svn2feed.py,
                                                               build/hudson)
         aogier   Anthony Ogier <ao...@iorga.com>            (svn-merge-vendor.py)
       dkagedal   David Kågedal <da...@lysator.liu.se>       (dsvn.el)
@@ -160,6 +160,7 @@ Commit access for specific areas:
        niqueco   Nicolás Lichtmaier <ni...@reloco.com.ar>     (po: es)
         luebbe   Lübbe Onken <lu...@tigris.org>             (po: de)
     jensseidel   Jens Seidel <je...@users.sf.net>       (po: de)
+      astieger   Andreas Stieger <an...@gmx.de>    (po: de)
       oyvindmo   Øyvind Møll <sv...@moll.no>                   (po: nb)
       sunny256   Øyvind A. Holm <su...@sunbase.org>          (po: nb)
         jzgoda   Jaroslaw Zgoda <jz...@o2.pl>               (po: pl)

Modified: subversion/branches/fix-rdump-editor/INSTALL
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/INSTALL?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/INSTALL (original)
+++ subversion/branches/fix-rdump-editor/INSTALL Mon Feb 27 15:52:00 2012
@@ -478,11 +478,11 @@ I.    INTRODUCTION
       is done: See section III for details.
 
 
-      10.  Python 2.4 or newer (http://www.python.org/)  (OPTIONAL)
+      10.  Python 2.5 or newer (http://www.python.org/)  (OPTIONAL)
 
       If you want to run "make check" or build from the latest source
       under Unix as described in section II.B and III.D, install
-      Python 2.4 or higher on your system. The majority of the test
+      Python 2.5 or higher on your system. The majority of the test
       suite is written in Python, as is part of Subversion's build
       system.
 
@@ -842,7 +842,7 @@ II.   INSTALLATION
         is compatible with VC6, which is the one from february 2003.
         You can get it from MSDN:
         http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
-      * Python 2.4 or higher, downloaded from http://www.python.org/ which is
+      * Python 2.5 or higher, downloaded from http://www.python.org/ which is
         used to generate the project files.
       * Perl 5.8 or higher from http://www.activestate.com/
       * Awk (from http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe) is

Modified: subversion/branches/fix-rdump-editor/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/Makefile.in?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/Makefile.in (original)
+++ subversion/branches/fix-rdump-editor/Makefile.in Mon Feb 27 15:52:00 2012
@@ -497,7 +497,7 @@ check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $
 	            $$flags                                                  \
 	            '$(abs_srcdir)' '$(abs_builddir)' $(TESTS);              \
 	else                                                                 \
-	  echo "make check: Python 2.4 or greater is required,";             \
+	  echo "make check: Python 2.5 or greater is required,";             \
 	  echo "            but was not detected during configure";          \
 	  exit 1;                                                            \
 	fi;

Modified: subversion/branches/fix-rdump-editor/autogen.sh
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/autogen.sh?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/autogen.sh (original)
+++ subversion/branches/fix-rdump-editor/autogen.sh Mon Feb 27 15:52:00 2012
@@ -120,11 +120,11 @@ fi
 #
 # Note: this dependency on Python is fine: only SVN developers use autogen.sh
 #       and we can state that dev people need Python on their machine. Note
-#       that running gen-make.py requires Python 2.4 or newer.
+#       that running gen-make.py requires Python 2.5 or newer.
 
 PYTHON="`./build/find_python.sh`"
 if test -z "$PYTHON"; then
-  echo "Python 2.4 or later is required to run autogen.sh"
+  echo "Python 2.5 or later is required to run autogen.sh"
   echo "If you have a suitable Python installed, but not on the"
   echo "PATH, set the environment variable PYTHON to the full path"
   echo "to the Python executable, and re-run autogen.sh"

Modified: subversion/branches/fix-rdump-editor/build/ac-macros/apache.m4
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/build/ac-macros/apache.m4?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/build/ac-macros/apache.m4 (original)
+++ subversion/branches/fix-rdump-editor/build/ac-macros/apache.m4 Mon Feb 27 15:52:00 2012
@@ -100,7 +100,7 @@ if test -n "$APXS" && test "$APXS" != "n
       apache_minor_version_wanted_regex=["[1-4]"]
       ;;
     2)
-      apache_minor_version_wanted_regex=["[3-4]"]
+      apache_minor_version_wanted_regex=["[3-5]"]
       ;;
     *)
       AC_MSG_ERROR([unknown APR version])

Modified: subversion/branches/fix-rdump-editor/build/find_python.sh
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/build/find_python.sh?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/build/find_python.sh (original)
+++ subversion/branches/fix-rdump-editor/build/find_python.sh Mon Feb 27 15:52:00 2012
@@ -23,7 +23,7 @@
 # Required version of Python
 # Python 2.0 = 0x2000000
 # Python 2.4 = 0x2040000
-VERSION=${1:-0x2040000}
+VERSION=${1:-0x2050000}
 
 for pypath in "$PYTHON" "$PYTHON2" "$PYTHON3" python python2 python3; do
   if [ "x$pypath" != "x" ]; then

Modified: subversion/branches/fix-rdump-editor/build/generator/gen_vcnet_vcproj.py
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/build/generator/gen_vcnet_vcproj.py?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/build/generator/gen_vcnet_vcproj.py (original)
+++ subversion/branches/fix-rdump-editor/build/generator/gen_vcnet_vcproj.py Mon Feb 27 15:52:00 2012
@@ -115,6 +115,7 @@ class Generator(gen_win.WinGeneratorBase
       'instrument_apr_pools' : self.instrument_apr_pools,
       'instrument_purify_quantify' : self.instrument_purify_quantify,
       'version' : self.vcproj_version,
+      'toolset_version' : 'v' + self.vcproj_version.replace('.',''),
       }
 
     if self.vcproj_extension == '.vcproj':

Modified: subversion/branches/fix-rdump-editor/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/build/generator/gen_win.py?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/build/generator/gen_win.py (original)
+++ subversion/branches/fix-rdump-editor/build/generator/gen_win.py Mon Feb 27 15:52:00 2012
@@ -90,6 +90,7 @@ class GeneratorBase(gen_base.GeneratorBa
     self.sqlite_path = 'sqlite-amalgamation'
     self.skip_sections = { 'mod_dav_svn': None,
                            'mod_authz_svn': None,
+                           'mod_dontdothat' : None,
                            'libsvn_auth_kwallet': None,
                            'libsvn_auth_gnome_keyring': None }
 
@@ -126,6 +127,7 @@ class GeneratorBase(gen_base.GeneratorBa
         self.httpd_path = val
         del self.skip_sections['mod_dav_svn']
         del self.skip_sections['mod_authz_svn']
+        del self.skip_sections['mod_dontdothat']
       elif opt == '--with-libintl':
         self.libintl_path = val
         self.enable_nls = 1
@@ -186,6 +188,11 @@ class GeneratorBase(gen_base.GeneratorBa
           self.sln_version = '11.00'
           self.vcproj_version = '10.0'
           self.vcproj_extension = '.vcxproj'
+        elif val == '11':
+          self.vs_version = '11'
+          self.sln_version = '12.00'
+          self.vcproj_version = '11.0'
+          self.vcproj_extension = '.vcxproj'
         else:
           print('WARNING: Unknown VS.NET version "%s",'
                  ' assuming "%s"\n' % (val, '7.00'))
@@ -294,7 +301,7 @@ class WinGeneratorBase(GeneratorBase):
 
     # Generate the build_zlib.bat file
     if self.zlib_path:
-      data = {'zlib_path': os.path.abspath(self.zlib_path),
+      data = {'zlib_path': os.path.relpath(self.zlib_path, self.projfilesdir),
               'zlib_version': self.zlib_version,
               'use_ml': self.have_ml and 1 or None}
       bat = os.path.join(self.projfilesdir, 'build_zlib.bat')
@@ -334,7 +341,7 @@ class WinGeneratorBase(GeneratorBase):
 
   def find_rootpath(self):
     "Gets the root path as understand by the project system"
-    return ".." + "\\.." * self.projfilesdir.count(os.sep) + "\\"
+    return os.path.relpath('.', self.projfilesdir) + "\\"
 
   def makeguid(self, data):
     "Generate a windows style GUID"
@@ -952,6 +959,8 @@ class WinGeneratorBase(GeneratorBase):
           fakeincludes.append(self.apath(self.swig_libdir, 'perl5'))
       else:
         fakeincludes.append(self.swig_libdir)
+      if target.lang == "perl":
+        fakeincludes.extend(self.perl_includes)
       if target.lang == "python":
         fakeincludes.extend(self.python_includes)
       if target.lang == "ruby":
@@ -1004,6 +1013,8 @@ class WinGeneratorBase(GeneratorBase):
     if self.swig_libdir \
        and (isinstance(target, gen_base.TargetSWIG)
             or isinstance(target, gen_base.TargetSWIGLib)):
+      if target.lang == "perl" and self.perl_libdir:
+        fakelibdirs.append(self.perl_libdir)
       if target.lang == "python" and self.python_libdir:
         fakelibdirs.append(self.python_libdir)
       if target.lang == "ruby" and self.ruby_libdir:
@@ -1141,16 +1152,20 @@ class WinGeneratorBase(GeneratorBase):
     if not self.zlib_path:
       return
     zlib_path = os.path.abspath(self.zlib_path)
+    zlib_sources = map(lambda x : os.path.relpath(x, self.projfilesdir),
+                       glob.glob(os.path.join(zlib_path, '*.c')) +
+                       glob.glob(os.path.join(zlib_path,
+                                              'contrib/masmx86/*.c')) +
+                       glob.glob(os.path.join(zlib_path,
+                                              'contrib/masmx86/*.asm')))
+    zlib_headers = map(lambda x : os.path.relpath(x, self.projfilesdir),
+                       glob.glob(os.path.join(zlib_path, '*.h')))
+                       
     self.move_proj_file(self.projfilesdir, name,
-                        (('zlib_path', zlib_path),
-                         ('zlib_sources',
-                          glob.glob(os.path.join(zlib_path, '*.c'))
-                          + glob.glob(os.path.join(zlib_path,
-                                                   'contrib/masmx86/*.c'))
-                          + glob.glob(os.path.join(zlib_path,
-                                                   'contrib/masmx86/*.asm'))),
-                         ('zlib_headers',
-                          glob.glob(os.path.join(zlib_path, '*.h'))),
+                        (('zlib_path', os.path.relpath(zlib_path,
+                                                       self.projfilesdir)),
+                         ('zlib_sources', zlib_sources),
+                         ('zlib_headers', zlib_headers),
                          ('zlib_version', self.zlib_version),
                          ('project_guid', self.makeguid('zlib')),
                          ('use_ml', self.have_ml and 1 or None),
@@ -1161,19 +1176,22 @@ class WinGeneratorBase(GeneratorBase):
       return
 
     neon_path = os.path.abspath(self.neon_path)
+    neon_sources = map(lambda x : os.path.relpath(x, self.neon_path),
+                       glob.glob(os.path.join(neon_path, 'src', '*.c')))
+    neon_headers = map(lambda x : os.path.relpath(x, self.neon_path),
+                       glob.glob(os.path.join(neon_path, 'src', '*.h')))
+
     self.move_proj_file(self.neon_path, name,
-                        (('neon_sources',
-                          glob.glob(os.path.join(neon_path, 'src', '*.c'))),
-                         ('neon_headers',
-                          glob.glob(os.path.join(neon_path, 'src', '*.h'))),
+                        (('neon_sources', neon_sources),
+                         ('neon_headers', neon_headers),
                          ('expat_path',
-                          os.path.join(os.path.abspath(self.apr_util_path),
-                                       'xml', 'expat', 'lib')),
-                         ('zlib_path', self.zlib_path
-                                       and os.path.abspath(self.zlib_path)),
-                         ('openssl_path',
-                          self.openssl_path
-                            and os.path.abspath(self.openssl_path)),
+                           os.path.relpath(os.path.join(self.apr_util_path,
+                                                        'xml', 'expat', 'lib'),
+                                           self.neon_path)),
+                         ('zlib_path', os.path.relpath(self.zlib_path,
+                                                       self.neon_path)),
+                         ('openssl_path', os.path.relpath(self.openssl_path,
+                                                          self.neon_path)),
                          ('project_guid', self.makeguid('neon')),
                         ))
 
@@ -1182,29 +1200,31 @@ class WinGeneratorBase(GeneratorBase):
       return
 
     serf_path = os.path.abspath(self.serf_path)
+    serf_sources = map(lambda x : os.path.relpath(x, self.serf_path),
+                       glob.glob(os.path.join(serf_path, '*.c'))
+                       + glob.glob(os.path.join(serf_path, 'auth', '*.c'))
+                       + glob.glob(os.path.join(serf_path, 'buckets',
+                                                   '*.c')))
+    serf_headers = map(lambda x : os.path.relpath(x, self.serf_path),
+                       glob.glob(os.path.join(serf_path, '*.h'))
+                       + glob.glob(os.path.join(serf_path, 'auth', '*.h'))
+                       + glob.glob(os.path.join(serf_path, 'buckets', '*.h')))
     if self.serf_ver_maj != 0:
       serflib = 'serf-%d.lib' % self.serf_ver_maj
     else:
       serflib = 'serf.lib'
 
     self.move_proj_file(self.serf_path, name,
-                        (('serf_sources',
-                          glob.glob(os.path.join(serf_path, '*.c'))
-                          + glob.glob(os.path.join(serf_path, 'auth', '*.c'))
-                          + glob.glob(os.path.join(serf_path, 'buckets',
-                                                   '*.c'))),
-                         ('serf_headers',
-                          glob.glob(os.path.join(serf_path, '*.h'))
-                          + glob.glob(os.path.join(serf_path, 'auth', '*.h'))
-                          + glob.glob(os.path.join(serf_path, 'buckets',
-                                                   '*.h'))),
-                         ('zlib_path', self.zlib_path
-                                       and os.path.abspath(self.zlib_path)),
-                         ('openssl_path',
-                          self.openssl_path
-                            and os.path.abspath(self.openssl_path)),
-                         ('apr_path', os.path.abspath(self.apr_path)),
-                         ('apr_util_path', os.path.abspath(self.apr_util_path)),
+                        (('serf_sources', serf_sources),
+                         ('serf_headers', serf_headers),
+                         ('zlib_path', os.path.relpath(self.zlib_path,
+                                                       self.serf_path)),
+                         ('openssl_path', os.path.relpath(self.openssl_path,
+                                                          self.serf_path)),
+                         ('apr_path', os.path.relpath(self.apr_path,
+                                                      self.serf_path)),
+                         ('apr_util_path', os.path.relpath(self.apr_util_path,
+                                                           self.serf_path)),
                          ('project_guid', self.makeguid('serf')),
                          ('apr_static', self.static_apr),
                          ('serf_lib', serflib),
@@ -1219,7 +1239,8 @@ class WinGeneratorBase(GeneratorBase):
     data = {
       'version' : self.vcproj_version,
       'configs' : self.configs,
-      'platforms' : self.platforms
+      'platforms' : self.platforms,
+      'toolset_version' : 'v' + self.vcproj_version.replace('.',''),
       }
     for key, val in params:
       data[key] = val
@@ -1232,13 +1253,15 @@ class WinGeneratorBase(GeneratorBase):
 
   def _find_perl(self):
     "Find the right perl library name to link swig bindings with"
+    self.perl_includes = []
+    self.perl_libdir = None
     fp = os.popen('perl -MConfig -e ' + escape_shell_arg(
                   'print "$Config{PERL_REVISION}$Config{PERL_VERSION}"'), 'r')
     try:
-      num = fp.readline()
-      if num:
+      line = fp.readline()
+      if line:
         msg = 'Found installed perl version number.'
-        self.perl_lib = 'perl' + num.rstrip() + '.lib'
+        self.perl_lib = 'perl' + line.rstrip() + '.lib'
       else:
         msg = 'Could not detect perl version.'
         self.perl_lib = 'perl56.lib'
@@ -1246,6 +1269,16 @@ class WinGeneratorBase(GeneratorBase):
              % (msg, self.perl_lib))
     finally:
       fp.close()
+      
+    fp = os.popen('perl -MConfig -e ' + escape_shell_arg(
+                  'print $Config{archlib}'), 'r')
+    try:
+      line = fp.readline()
+      if line:
+        self.perl_libdir = os.path.join(line, 'CORE')
+        self.perl_includes = [os.path.join(line, 'CORE')]
+    finally:
+      fp.close()
 
   def _find_ruby(self):
     "Find the right Ruby library name to link swig bindings with"

Modified: subversion/branches/fix-rdump-editor/build/generator/templates/neon.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/build/generator/templates/neon.vcxproj.ezt?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/build/generator/templates/neon.vcxproj.ezt (original)
+++ subversion/branches/fix-rdump-editor/build/generator/templates/neon.vcxproj.ezt Mon Feb 27 15:52:00 2012
@@ -33,7 +33,7 @@
 [for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
     <ConfigurationType>Makefile</ConfigurationType>
     <UseDebugLibraries>[is configs "Debug"]true[else]false[end]</UseDebugLibraries>
-    <PlatformToolset>v100</PlatformToolset>
+    <PlatformToolset>[toolset_version]</PlatformToolset>
   </PropertyGroup>
 [end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">

Modified: subversion/branches/fix-rdump-editor/build/generator/templates/serf.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/build/generator/templates/serf.vcxproj.ezt?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/build/generator/templates/serf.vcxproj.ezt (original)
+++ subversion/branches/fix-rdump-editor/build/generator/templates/serf.vcxproj.ezt Mon Feb 27 15:52:00 2012
@@ -34,7 +34,7 @@
 [for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
     <ConfigurationType>Makefile</ConfigurationType>
     <UseDebugLibraries>[is configs "Debug"]true[else]false[end]</UseDebugLibraries>
-    <PlatformToolset>v100</PlatformToolset>
+    <PlatformToolset>[toolset_version]</PlatformToolset>
   </PropertyGroup>
 [end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">

Modified: subversion/branches/fix-rdump-editor/build/generator/templates/svn_config.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/build/generator/templates/svn_config.vcxproj.ezt?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/build/generator/templates/svn_config.vcxproj.ezt (original)
+++ subversion/branches/fix-rdump-editor/build/generator/templates/svn_config.vcxproj.ezt Mon Feb 27 15:52:00 2012
@@ -33,6 +33,7 @@
 [for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
     <ConfigurationType>Utility</ConfigurationType>
     <UseDebugLibraries>[is configs "Debug"]true[else]false[end]</UseDebugLibraries>
+    <PlatformToolset>[toolset_version]</PlatformToolset>
   </PropertyGroup>
 [end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">

Modified: subversion/branches/fix-rdump-editor/build/generator/templates/svn_locale.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/build/generator/templates/svn_locale.vcxproj.ezt?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/build/generator/templates/svn_locale.vcxproj.ezt (original)
+++ subversion/branches/fix-rdump-editor/build/generator/templates/svn_locale.vcxproj.ezt Mon Feb 27 15:52:00 2012
@@ -34,6 +34,7 @@
 [for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
     <ConfigurationType>Utility</ConfigurationType>
     <CLRSupport>false</CLRSupport>
+    <PlatformToolset>[toolset_version]</PlatformToolset>
   </PropertyGroup>
 [end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">

Modified: subversion/branches/fix-rdump-editor/build/generator/templates/vcnet_vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/build/generator/templates/vcnet_vcxproj.ezt?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/build/generator/templates/vcnet_vcxproj.ezt (original)
+++ subversion/branches/fix-rdump-editor/build/generator/templates/vcnet_vcxproj.ezt Mon Feb 27 15:52:00 2012
@@ -33,6 +33,7 @@
 [for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'" Label="Configuration">
     <ConfigurationType>[config_type]</ConfigurationType>
     <UseDebugLibraries>[is configs.name "Debug"]true[else]false[end]</UseDebugLibraries>
+    <PlatformToolset>[toolset_version]</PlatformToolset>
   </PropertyGroup>
 [end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">

Modified: subversion/branches/fix-rdump-editor/build/generator/templates/zlib.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/build/generator/templates/zlib.vcxproj.ezt?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/build/generator/templates/zlib.vcxproj.ezt (original)
+++ subversion/branches/fix-rdump-editor/build/generator/templates/zlib.vcxproj.ezt Mon Feb 27 15:52:00 2012
@@ -33,7 +33,7 @@
 [for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
     <ConfigurationType>Makefile</ConfigurationType>
     <UseDebugLibraries>[is configs "Debug"]true[else]false[end]</UseDebugLibraries>
-    <PlatformToolset>v100</PlatformToolset>
+    <PlatformToolset>[toolset_version]</PlatformToolset>
   </PropertyGroup>
 [end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">

Modified: subversion/branches/fix-rdump-editor/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/configure.ac?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/configure.ac (original)
+++ subversion/branches/fix-rdump-editor/configure.ac Mon Feb 27 15:52:00 2012
@@ -1134,7 +1134,7 @@ AS_HELP_STRING([--enable-gprof],
 
 PYTHON="`$abs_srcdir/build/find_python.sh`"
 if test -z "$PYTHON"; then
-  AC_MSG_WARN([Python 2.4 or later is required to run the testsuite])
+  AC_MSG_WARN([Python 2.5 or later is required to run the testsuite])
   AC_MSG_WARN([or to use the Subversion Python bindings])
   AC_MSG_WARN([])
   AC_MSG_WARN([If you have a suitable Python installed, but not on the])

Modified: subversion/branches/fix-rdump-editor/get-deps.sh
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/get-deps.sh?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/get-deps.sh (original)
+++ subversion/branches/fix-rdump-editor/get-deps.sh Mon Feb 27 15:52:00 2012
@@ -23,15 +23,15 @@
 # get-deps.sh -- download the dependencies useful for building Subversion
 #
 
-APR=apr-1.4.5
-APR_UTIL=apr-util-1.3.12
+APR=apr-1.4.6
+APR_UTIL=apr-util-1.4.1
 NEON=neon-0.29.6
-SERF=serf-0.7.2
-ZLIB=zlib-1.2.5
-SQLITE_VERSION=3.7.8
+SERF=serf-1.0.1
+ZLIB=zlib-1.2.6
+SQLITE_VERSION=3.7.10
 SQLITE=sqlite-amalgamation-$(printf %u%02u%02u%02u $(echo $SQLITE_VERSION | sed -e "s/\./ /g"))
 
-HTTPD=httpd-2.2.21
+HTTPD=httpd-2.2.22
 APR_ICONV=apr-iconv-1.2.1
 
 BASEDIR=`pwd`

Modified: subversion/branches/fix-rdump-editor/subversion/bindings/swig/INSTALL
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/bindings/swig/INSTALL?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/bindings/swig/INSTALL (original)
+++ subversion/branches/fix-rdump-editor/subversion/bindings/swig/INSTALL Mon Feb 27 15:52:00 2012
@@ -80,7 +80,7 @@ Step 1:  Install a suitable version of S
 
              --with-python=/path/to/correct/python/binary
 
-        to the configure script.  You need Python 2.4 or above.
+        to the configure script.  You need Python 2.5 or above.
 
         If you plan to build the Perl bindings, and have a system
         with more than one version of perl installed, you may need
@@ -109,7 +109,7 @@ Step 2:  Build and Install Subversion.
   python executable you used to configure SWIG as above.  If it does not then
   you can specify the correct path by adding PYTHON=/path/to/python or
   PERL=/path/to/perl onto the command line for configure.  For example:
-       ./configure PYTHON=/usr/bin/python2.4 PERL=/usr/bin/perl5.8.0
+       ./configure PYTHON=/usr/bin/python2.5 PERL=/usr/bin/perl5.8.0
 
   If Subversion's ./configure finds a SWIG that it's happy with, then
   it will build special glue libraries to link svn to the swig bindings:

Modified: subversion/branches/fix-rdump-editor/subversion/bindings/swig/include/svn_containers.swg
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/bindings/swig/include/svn_containers.swg?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/bindings/swig/include/svn_containers.swg (original)
+++ subversion/branches/fix-rdump-editor/subversion/bindings/swig/include/svn_containers.swg Mon Feb 27 15:52:00 2012
@@ -482,6 +482,16 @@
    svn_wc_parse_externals_description3()
 */
 
+#ifdef SWIGPYTHON
+%typemap(argout) apr_array_header_t **externals_p {
+  %append_output
+    (svn_swig_py_pointerlist_to_list(*$1, $descriptor(svn_wc_external_item2_t *),
+                                     _global_py_pool));
+  if (PyErr_Occurred()) {
+    SWIG_fail;
+  }
+}
+#endif
 #ifdef SWIGRUBY
 %typemap(argout) apr_array_header_t **externals_p {
   %append_output(svn_swig_rb_apr_array_to_array_external_item2(*$1));

Propchange: subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/Base.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/Client.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/Core.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/Delta.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/Fs.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/Ra.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/Repos.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/Wc.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/0use.t
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/1repos.t
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/2fs.t
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/3client.t
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/3client.t?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/3client.t (original)
+++ subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/3client.t Mon Feb 27 15:52:00 2012
@@ -20,7 +20,7 @@
 #
 #
 
-use Test::More tests => 120;
+use Test::More tests => 121;
 use strict;
 
 # shut up about variables that are only used once.
@@ -46,6 +46,11 @@ my $reposurl = 'file://' . (substr($repo
 my $wcpath = catdir($testpath,'wc');
 my $importpath = catdir($testpath,'import');
 
+# Use internal style paths on Windows
+$reposurl =~ s/\\/\//g;
+$wcpath =~ s/\\/\//g;
+$importpath =~ s/\\/\//g;
+
 # track current rev ourselves to test against
 my $current_rev = 0;
 
@@ -53,7 +58,7 @@ my $current_rev = 0;
 $SVN::Error::handler = undef;
 
 # Get username we are running as
-my $username = getpwuid($>);
+my $username = getlogin() || getpwuid($>);
 
 # This is ugly to create the test repo with SVN::Repos, but
 # it seems to be the most reliable way.
@@ -86,36 +91,32 @@ my ($rpgval,$rpgrev) = $ctx->revprop_get
 is($rpgval,$username,'svn:author set to expected username from revprop_get');
 is($rpgrev,$current_rev,'Returned revnum of current rev from revprop_get');
 
-SKIP: {
-    skip 'Difficult to test on Win32', 3 if $^O eq 'MSWin32';
-
+if ($^O eq 'MSWin32') {
+    ok(open(NEW, ">$repospath/hooks/pre-revprop-change.bat"),
+       'Open pre-revprop-change hook for writing');
+    ok(print(NEW 'exit 0'), 'Print to hook');
+    ok(close(NEW), 'Close hook');
+} else {
     ok(rename("$repospath/hooks/pre-revprop-change.tmpl",
               "$repospath/hooks/pre-revprop-change"),
        'Rename pre-revprop-change hook');
     ok(chmod(0700,"$repospath/hooks/pre-revprop-change"),
        'Change permissions on pre-revprop-change hook');
-
-    my ($rps_rev) = $ctx->revprop_set('svn:log','mkdir dir1',
-                                      $reposurl, $current_rev, 0);
-    is($rps_rev,$current_rev,
-       'Returned revnum of current rev from revprop_set');
-
+    is(1, 1, '-')
 }
+my ($rps_rev) = $ctx->revprop_set('svn:log','mkdir dir1',
+                                  $reposurl, $current_rev, 0);
+is($rps_rev,$current_rev,
+   'Returned revnum of current rev from revprop_set');
 
 my ($rph, $rplrev) = $ctx->revprop_list($reposurl,$current_rev);
 isa_ok($rph,'HASH','Returned hash reference form revprop_list');
 is($rplrev,$current_rev,'Returned current rev from revprop_list');
 is($rph->{'svn:author'},$username,
    'svn:author is expected user from revprop_list');
-if ($^O eq 'MSWin32') {
-    # we skip the log change test on win32 so we have to test
-    # for a different var here
-    is($rph->{'svn:log'},'Make dir1',
-       'svn:log is expected value from revprop_list');
-} else {
-    is($rph->{'svn:log'},'mkdir dir1',
-       'svn:log is expected value from revprop_list');
-}
+is($rph->{'svn:log'},'mkdir dir1',
+   'svn:log is expected value from revprop_list');
+
 ok($rph->{'svn:date'},'svn:date is set from revprop_list');
 
 is($ctx->checkout($reposurl,$wcpath,'HEAD',1),$current_rev,

Propchange: subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/3client.t
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/4pool.t
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/5delta-compat.t
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/fix-rdump-editor/subversion/bindings/swig/perl/native/t/5delta.t
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/tests/repository.py
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/tests/repository.py?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/tests/repository.py (original)
+++ subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/tests/repository.py Mon Feb 27 15:52:00 2012
@@ -170,9 +170,11 @@ class SubversionRepositoryTestCase(unitt
     repos.dir_delta(prev_root, '', '', this_root, '', e_ptr, e_baton,
                     _authz_callback, 1, 1, 0, 0)
 
-    # Check results
-    self.assertEqual(editor.textdeltas[0].new_data, "This is a test.\n")
-    self.assertEqual(editor.textdeltas[1].new_data, "A test.\n")
+    # Check results.
+    # Ignore the order in which the editor delivers the two sibling files.
+    self.assertEqual(set([editor.textdeltas[0].new_data,
+                          editor.textdeltas[1].new_data]),
+                     set(["This is a test.\n", "A test.\n"]))
     self.assertEqual(len(editor.textdeltas), 2)
 
   def test_retrieve_and_change_rev_prop(self):

Modified: subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py (original)
+++ subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py Mon Feb 27 15:52:00 2012
@@ -264,30 +264,50 @@ class SubversionRepositoryTestCase(unitt
 
     def test_diff_dir_different_revs(self):
         diffs = self.repos.get_deltas('trunk', 4, 'trunk', 8)
-        self._cmp_diff((None, ('trunk/dir1/dir2', 8),
-                        (Node.DIRECTORY, Changeset.ADD)), diffs.next())
-        self._cmp_diff((None, ('trunk/dir1/dir3', 8),
-                        (Node.DIRECTORY, Changeset.ADD)), diffs.next())
-        self._cmp_diff((None, ('trunk/README2.txt', 6),
-                        (Node.FILE, Changeset.ADD)), diffs.next())
-        self._cmp_diff((('trunk/dir2', 4), None,
-                        (Node.DIRECTORY, Changeset.DELETE)), diffs.next())
-        self._cmp_diff((('trunk/dir3', 4), None,
-                        (Node.DIRECTORY, Changeset.DELETE)), diffs.next())
+        expected = [
+          (None, ('trunk/README2.txt', 6),
+           (Node.FILE, Changeset.ADD)),
+          (None, ('trunk/dir1/dir2', 8),
+           (Node.DIRECTORY, Changeset.ADD)),
+          (None, ('trunk/dir1/dir3', 8),
+           (Node.DIRECTORY, Changeset.ADD)),
+          (('trunk/dir2', 4), None,
+           (Node.DIRECTORY, Changeset.DELETE)),
+          (('trunk/dir3', 4), None,
+           (Node.DIRECTORY, Changeset.DELETE)),
+        ]
+        actual = [diffs.next() for i in range(5)]
+        actual = sorted(actual,
+                        key=lambda diff: ((diff[0] or diff[1]).path,
+                                          (diff[0] or diff[1]).rev))
+        self.assertEqual(len(expected), len(actual))
+        for e,a in zip(expected, actual):
+          self._cmp_diff(e,a)
         self.assertRaises(StopIteration, diffs.next)
 
     def test_diff_dir_different_dirs(self):
         diffs = self.repos.get_deltas('trunk', 1, 'branches/v1x', 12)
-        self._cmp_diff((None, ('branches/v1x/dir1', 12),
-                        (Node.DIRECTORY, Changeset.ADD)), diffs.next())
-        self._cmp_diff((None, ('branches/v1x/dir1/dir2', 12),
-                        (Node.DIRECTORY, Changeset.ADD)), diffs.next())
-        self._cmp_diff((None, ('branches/v1x/dir1/dir3', 12),
-                        (Node.DIRECTORY, Changeset.ADD)), diffs.next())
-        self._cmp_diff((None, ('branches/v1x/README.txt', 12),
-                        (Node.FILE, Changeset.ADD)), diffs.next())
-        self._cmp_diff((None, ('branches/v1x/README2.txt', 12),
-                        (Node.FILE, Changeset.ADD)), diffs.next())
+        expected = [
+          (None, ('branches/v1x/README.txt', 12),
+           (Node.FILE, Changeset.ADD)),
+          (None, ('branches/v1x/README2.txt', 12),
+           (Node.FILE, Changeset.ADD)),
+          (None, ('branches/v1x/dir1', 12),
+           (Node.DIRECTORY, Changeset.ADD)),
+          (None, ('branches/v1x/dir1/dir2', 12),
+           (Node.DIRECTORY, Changeset.ADD)),
+          (None, ('branches/v1x/dir1/dir3', 12),
+           (Node.DIRECTORY, Changeset.ADD)),
+        ]
+        actual = [diffs.next() for i in range(5)]
+        actual = sorted(actual, key=lambda diff: (diff[1].path, diff[1].rev))
+        # for e,a in zip(expected, actual):
+        #   t.write("%r\n" % (e,))
+        #   t.write("%r\n" % ((None, (a[1].path, a[1].rev), (a[2], a[3])),) )
+        #   t.write('\n')
+        self.assertEqual(len(expected), len(actual))
+        for e,a in zip(expected, actual):
+          self._cmp_diff(e,a)
         self.assertRaises(StopIteration, diffs.next)
 
     def test_diff_dir_no_change(self):

Modified: subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/tests/wc.py
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/tests/wc.py?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/tests/wc.py (original)
+++ subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/tests/wc.py Mon Feb 27 15:52:00 2012
@@ -216,8 +216,9 @@ class SubversionWorkingCopyTestCase(unit
 
   def test_entries_read(self):
       entries = wc.entries_read(self.wc, True)
-
-      self.assertEqual(['', 'tags', 'branches', 'trunk'], list(entries.keys()))
+      keys = list(entries.keys())
+      keys.sort()
+      self.assertEqual(['', 'branches', 'tags', 'trunk'], keys)
 
   def test_get_ignores(self):
       self.assert_(isinstance(wc.get_ignores(None, self.wc), list))

Modified: subversion/branches/fix-rdump-editor/subversion/include/private/svn_auth_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/include/private/svn_auth_private.h?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/private/svn_auth_private.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/private/svn_auth_private.h Mon Feb 27 15:52:00 2012
@@ -53,9 +53,12 @@ extern "C" {
    from an external store, using REALMSTRING and USERNAME as keys.
    (The behavior is undefined if REALMSTRING or USERNAME are NULL.)
    If NON_INTERACTIVE is set, the user must not be involved in the
-   retrieval process.  POOL is used for any necessary allocation. */
-typedef svn_boolean_t (*svn_auth__password_get_t)
-  (const char **password,
+   retrieval process.  Set *DONE to TRUE if a password was stored
+   in *PASSWORD, to FALSE otherwise. POOL is used for any necessary
+   allocation. */
+typedef svn_error_t * (*svn_auth__password_get_t)
+  (svn_boolean_t *done,
+   const char **password,
    apr_hash_t *creds,
    const char *realmstring,
    const char *username,
@@ -66,10 +69,12 @@ typedef svn_boolean_t (*svn_auth__passwo
 /* A function that stores PASSWORD (or some encrypted version thereof)
    either directly in CREDS, or externally using REALMSTRING and USERNAME
    as keys into the external store.  If NON_INTERACTIVE is set, the user
-   must not be involved in the storage process.  POOL is used for any
-   necessary allocation. */
-typedef svn_boolean_t (*svn_auth__password_set_t)
-  (apr_hash_t *creds,
+   must not be involved in the storage process. Set *DONE to TRUE if the
+   password was store, to FALSE otherwise. POOL is used for any necessary
+   allocation. */
+typedef svn_error_t * (*svn_auth__password_set_t)
+  (svn_boolean_t *done,
+   apr_hash_t *creds,
    const char *realmstring,
    const char *username,
    const char *password,
@@ -111,8 +116,9 @@ svn_auth__simple_save_creds_helper(svn_b
 /* Implementation of svn_auth__password_get_t that retrieves
    the plaintext password from CREDS when USERNAME matches the stored
    credentials. */
-svn_boolean_t
-svn_auth__simple_password_get(const char **password,
+svn_error_t *
+svn_auth__simple_password_get(svn_boolean_t *done,
+                              const char **password,
                               apr_hash_t *creds,
                               const char *realmstring,
                               const char *username,
@@ -122,8 +128,9 @@ svn_auth__simple_password_get(const char
 
 /* Implementation of svn_auth__password_set_t that stores
    the plaintext password in CREDS. */
-svn_boolean_t
-svn_auth__simple_password_set(apr_hash_t *creds,
+svn_error_t *
+svn_auth__simple_password_set(svn_boolean_t *done,
+                              apr_hash_t *creds,
                               const char *realmstring,
                               const char *username,
                               const char *password,
@@ -169,8 +176,9 @@ svn_auth__ssl_client_cert_pw_file_save_c
 /* This implements the svn_auth__password_get_t interface.
    Set **PASSPHRASE to the plaintext passphrase retrieved from CREDS;
    ignore other parameters. */
-svn_boolean_t
-svn_auth__ssl_client_cert_pw_get(const char **passphrase,
+svn_error_t *
+svn_auth__ssl_client_cert_pw_get(svn_boolean_t *done,
+                                 const char **passphrase,
                                  apr_hash_t *creds,
                                  const char *realmstring,
                                  const char *username,
@@ -180,8 +188,9 @@ svn_auth__ssl_client_cert_pw_get(const c
 
 /* This implements the svn_auth__password_set_t interface.
    Store PASSPHRASE in CREDS; ignore other parameters. */
-svn_boolean_t
-svn_auth__ssl_client_cert_pw_set(apr_hash_t *creds,
+svn_error_t *
+svn_auth__ssl_client_cert_pw_set(svn_boolean_t *done,
+                                 apr_hash_t *creds,
                                  const char *realmstring,
                                  const char *username,
                                  const char *passphrase,

Modified: subversion/branches/fix-rdump-editor/subversion/include/private/svn_cache.h
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/include/private/svn_cache.h?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/private/svn_cache.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/private/svn_cache.h Mon Feb 27 15:52:00 2012
@@ -342,9 +342,9 @@ svn_cache__is_cachable(svn_cache__t *cac
 /**
  * Fetches a value indexed by @a key from @a cache into @a *value,
  * setting @a *found to TRUE iff it is in the cache and FALSE if it is
- * not found.  The value is copied into @a result_pool using the copy
+ * not found.  @a key may be NULL in which case @a *found will be
+ * FALSE.  The value is copied into @a result_pool using the deserialize
  * function provided to the cache's constructor.
- * ### what copy function? there are serialize/deserialize functions, no copy functions
  */
 svn_error_t *
 svn_cache__get(void **value,
@@ -357,7 +357,8 @@ svn_cache__get(void **value,
  * Stores the value @a value under the key @a key in @a cache.  Uses @a
  * scratch_pool for temporary allocations.  The cache makes copies of
  * @a key and @a value if necessary (that is, @a key and @a value may
- * have shorter lifetimes than the cache).
+ * have shorter lifetimes than the cache).  @a key may be NULL in which
+ * case the cache will remain unchanged.
  *
  * If there is already a value for @a key, this will replace it.  Bear
  * in mind that in some circumstances this may leak memory (that is,
@@ -401,8 +402,10 @@ svn_cache__iter(svn_boolean_t *completed
 /**
  * Similar to svn_cache__get() but will call a specific de-serialization
  * function @a func. @a found will be set depending on whether the @a key
- * has been found. Even if that reports @c TRUE, @a values may still return
- * a @c NULL pointer depending on the logic inside @a func.
+ * has been found. Even if that reports @c TRUE, @a value may still return
+ * a @c NULL pointer depending on the logic inside @a func.  For a @a NULL
+ * @a key, no data will be found.  @a value will be allocated in
+ * @a result_pool.
  */
 svn_error_t *
 svn_cache__get_partial(void **value,
@@ -417,8 +420,8 @@ svn_cache__get_partial(void **value,
  * Find the item identified by @a key in the @a cache. If it has been found,
  * call @a func for it and @a baton to potentially modify the data. Changed
  * data will be written back to the cache. If the item cannot be found,
- * @a func does not get called. @a scratch_pool is used for temporary
- * allocations.
+ * or if @a key is NULL, @a func does not get called. @a scratch_pool is
+ * used for temporary allocations.
  */
 svn_error_t *
 svn_cache__set_partial(svn_cache__t *cache,

Modified: subversion/branches/fix-rdump-editor/subversion/include/private/svn_ra_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/include/private/svn_ra_private.h?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/private/svn_ra_private.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/private/svn_ra_private.h Mon Feb 27 15:52:00 2012
@@ -31,6 +31,7 @@
 
 #include "svn_error.h"
 #include "svn_ra.h"
+#include "svn_delta.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -126,6 +127,11 @@ svn_ra__get_fspath_relative_to_root(svn_
                                     const char *url,
                                     apr_pool_t *pool);
 
+/** Register CALLBACKS to be used with the Ev2 shims in RA_SESSION. */
+svn_error_t *
+svn_ra__register_editor_shim_callbacks(svn_ra_session_t *ra_session,
+                                       svn_delta_shim_callbacks_t *callbacks);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/branches/fix-rdump-editor/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/include/private/svn_wc_private.h?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/private/svn_wc_private.h Mon Feb 27 15:52:00 2012
@@ -263,6 +263,15 @@ svn_wc__externals_gather_definitions(apr
                                      apr_pool_t *result_pool,
                                      apr_pool_t *scratch_pool);
 
+/* Close the DB for LOCAL_ABSPATH.  Perform temporary allocations in
+   SCRATCH_POOL.
+
+   Wraps svn_wc__db_drop_root(). */
+svn_error_t *
+svn_wc__close_db(const char *external_abspath,
+                 svn_wc_context_t *wc_ctx,
+                 apr_pool_t *scratch_pool);
+
 /** Set @a *tree_conflict to a newly allocated @c
  * svn_wc_conflict_description_t structure describing the tree
  * conflict state of @a victim_abspath, or to @c NULL if @a victim_abspath
@@ -1303,6 +1312,316 @@ svn_wc__resolve_relative_external_url(co
                                       apr_pool_t *result_pool,
                                       apr_pool_t *scratch_pool);
 
+
+/**
+ * Set @a *editor and @a *edit_baton to an editor that generates
+ * #svn_wc_status3_t structures and sends them through @a status_func /
+ * @a status_baton.  @a anchor_abspath is a working copy directory
+ * directory which will be used as the root of our editor.  If @a
+ * target_basename is not "", it represents a node in the @a anchor_abspath
+ * which is the subject of the editor drive (otherwise, the @a
+ * anchor_abspath is the subject).
+ *
+ * If @a set_locks_baton is non-@c NULL, it will be set to a baton that can
+ * be used in a call to the svn_wc_status_set_repos_locks() function.
+ *
+ * Callers drive this editor to describe working copy out-of-dateness
+ * with respect to the repository.  If this information is not
+ * available or not desired, callers should simply call the
+ * close_edit() function of the @a editor vtable.
+ *
+ * If the editor driver calls @a editor's set_target_revision() vtable
+ * function, then when the edit drive is completed, @a *edit_revision
+ * will contain the revision delivered via that interface.
+ *
+ * Assuming the target is a directory, then:
+ *
+ *   - If @a get_all is FALSE, then only locally-modified entries will be
+ *     returned.  If TRUE, then all entries will be returned.
+ *
+ *   - If @a depth is #svn_depth_empty, a status structure will
+ *     be returned for the target only; if #svn_depth_files, for the
+ *     target and its immediate file children; if
+ *     #svn_depth_immediates, for the target and its immediate
+ *     children; if #svn_depth_infinity, for the target and
+ *     everything underneath it, fully recursively.
+ *
+ *     If @a depth is #svn_depth_unknown, take depths from the
+ *     working copy and behave as above in each directory's case.
+ *
+ *     If the given @a depth is incompatible with the depth found in a
+ *     working copy directory, the found depth always governs.
+ *
+ * If @a no_ignore is set, statuses that would typically be ignored
+ * will instead be reported.
+ *
+ * @a ignore_patterns is an array of file patterns matching
+ * unversioned files to ignore for the purposes of status reporting,
+ * or @c NULL if the default set of ignorable file patterns should be used.
+ *
+ * If @a cancel_func is non-NULL, call it with @a cancel_baton while building
+ * the @a statushash to determine if the client has canceled the operation.
+ *
+ * If @a depth_as_sticky is set handle @a depth like when depth_is_sticky is
+ * passed for updating. This will show excluded nodes show up as added in the
+ * repository.
+ *
+ * If @a server_performs_filtering is TRUE, assume that the server handles
+ * the ambient depth filtering, so this doesn't have to be handled in the
+ * editor.
+ *
+ * Allocate the editor itself in @a result_pool, and use @a scratch_pool
+ * for temporary allocations. The editor will do its temporary allocations
+ * in a subpool of @a result_pool.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_wc__get_status_editor(const svn_delta_editor_t **editor,
+                          void **edit_baton,
+                          void **set_locks_baton,
+                          svn_revnum_t *edit_revision,
+                          svn_wc_context_t *wc_ctx,
+                          const char *anchor_abspath,
+                          const char *target_basename,
+                          svn_depth_t depth,
+                          svn_boolean_t get_all,
+                          svn_boolean_t no_ignore,
+                          svn_boolean_t depth_as_sticky,
+                          svn_boolean_t server_performs_filtering,
+                          const apr_array_header_t *ignore_patterns,
+                          svn_wc_status_func4_t status_func,
+                          void *status_baton,
+                          svn_cancel_func_t cancel_func,
+                          void *cancel_baton,
+                          apr_pool_t *result_pool,
+                          apr_pool_t *scratch_pool);
+
+
+/**
+ * Set @a *editor and @a *edit_baton to an editor and baton for updating a
+ * working copy.
+ *
+ * @a anchor_abspath is a local working copy directory, with a fully recursive
+ * write lock in @a wc_ctx, which will be used as the root of our editor.
+ *
+ * @a target_basename is the entry in @a anchor_abspath that will actually be
+ * updated, or the empty string if all of @a anchor_abspath should be updated.
+ *
+ * The editor invokes @a notify_func with @a notify_baton as the update
+ * progresses, if @a notify_func is non-NULL.
+ *
+ * If @a cancel_func is non-NULL, the editor will invoke @a cancel_func with
+ * @a cancel_baton as the update progresses to see if it should continue.
+ *
+ * If @a conflict_func is non-NULL, then invoke it with @a
+ * conflict_baton whenever a conflict is encountered, giving the
+ * callback a chance to resolve the conflict before the editor takes
+ * more drastic measures (such as marking a file conflicted, or
+ * bailing out of the update).
+ *
+ * If @a external_func is non-NULL, then invoke it with @a external_baton
+ * whenever external changes are encountered, giving the callback a chance
+ * to store the external information for processing.
+ *
+ * If @a diff3_cmd is non-NULL, then use it as the diff3 command for
+ * any merging; otherwise, use the built-in merge code.
+ *
+ * @a preserved_exts is an array of filename patterns which, when
+ * matched against the extensions of versioned files, determine for
+ * which such files any related generated conflict files will preserve
+ * the original file's extension as their own.  If a file's extension
+ * does not match any of the patterns in @a preserved_exts (which is
+ * certainly the case if @a preserved_exts is @c NULL or empty),
+ * generated conflict files will carry Subversion's custom extensions.
+ *
+ * @a target_revision is a pointer to a revision location which, after
+ * successful completion of the drive of this editor, will be
+ * populated with the revision to which the working copy was updated.
+ *
+ * If @a use_commit_times is TRUE, then all edited/added files will
+ * have their working timestamp set to the last-committed-time.  If
+ * FALSE, the working files will be touched with the 'now' time.
+ *
+ * If @a allow_unver_obstructions is TRUE, then allow unversioned
+ * obstructions when adding a path.
+ *
+ * If @a adds_as_modification is TRUE, a local addition at the same path
+ * as an incoming addition of the same node kind results in a normal node
+ * with a possible local modification, instead of a tree conflict.
+ *
+ * If @a depth is #svn_depth_infinity, update fully recursively.
+ * Else if it is #svn_depth_immediates, update the uppermost
+ * directory, its file entries, and the presence or absence of
+ * subdirectories (but do not descend into the subdirectories).
+ * Else if it is #svn_depth_files, update the uppermost directory
+ * and its immediate file entries, but not subdirectories.
+ * Else if it is #svn_depth_empty, update exactly the uppermost
+ * target, and don't touch its entries.
+ *
+ * If @a depth_is_sticky is set and @a depth is not
+ * #svn_depth_unknown, then in addition to updating PATHS, also set
+ * their sticky ambient depth value to @a depth.
+ *
+ * If @a server_performs_filtering is TRUE, assume that the server handles
+ * the ambient depth filtering, so this doesn't have to be handled in the
+ * editor.
+ *
+ * If @a fetch_dirents_func is not NULL, the update editor may call this
+ * callback, when asked to perform a depth restricted update. It will do this
+ * before returning the editor to allow using the primary ra session for this.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_wc__get_update_editor(const svn_delta_editor_t **editor,
+                          void **edit_baton,
+                          svn_revnum_t *target_revision,
+                          svn_wc_context_t *wc_ctx,
+                          const char *anchor_abspath,
+                          const char *target_basename,
+                          svn_boolean_t use_commit_times,
+                          svn_depth_t depth,
+                          svn_boolean_t depth_is_sticky,
+                          svn_boolean_t allow_unver_obstructions,
+                          svn_boolean_t adds_as_modification,
+                          svn_boolean_t server_performs_filtering,
+                          svn_boolean_t clean_checkout,
+                          const char *diff3_cmd,
+                          const apr_array_header_t *preserved_exts,
+                          svn_wc_dirents_func_t fetch_dirents_func,
+                          void *fetch_dirents_baton,
+                          svn_wc_conflict_resolver_func2_t conflict_func,
+                          void *conflict_baton,
+                          svn_wc_external_update_t external_func,
+                          void *external_baton,
+                          svn_cancel_func_t cancel_func,
+                          void *cancel_baton,
+                          svn_wc_notify_func2_t notify_func,
+                          void *notify_baton,
+                          apr_pool_t *result_pool,
+                          apr_pool_t *scratch_pool);
+
+
+/**
+ * A variant of svn_wc__get_update_editor().
+ *
+ * Set @a *editor and @a *edit_baton to an editor and baton for "switching"
+ * a working copy to a new @a switch_url.  (Right now, this URL must be
+ * within the same repository that the working copy already comes
+ * from.)  @a switch_url must not be @c NULL.
+ *
+ * All other parameters behave as for svn_wc__get_update_editor().
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_wc__get_switch_editor(const svn_delta_editor_t **editor,
+                          void **edit_baton,
+                          svn_revnum_t *target_revision,
+                          svn_wc_context_t *wc_ctx,
+                          const char *anchor_abspath,
+                          const char *target_basename,
+                          const char *switch_url,
+                          svn_boolean_t use_commit_times,
+                          svn_depth_t depth,
+                          svn_boolean_t depth_is_sticky,
+                          svn_boolean_t allow_unver_obstructions,
+                          svn_boolean_t server_performs_filtering,
+                          const char *diff3_cmd,
+                          const apr_array_header_t *preserved_exts,
+                          svn_wc_dirents_func_t fetch_dirents_func,
+                          void *fetch_dirents_baton,
+                          svn_wc_conflict_resolver_func2_t conflict_func,
+                          void *conflict_baton,
+                          svn_wc_external_update_t external_func,
+                          void *external_baton,
+                          svn_cancel_func_t cancel_func,
+                          void *cancel_baton,
+                          svn_wc_notify_func2_t notify_func,
+                          void *notify_baton,
+                          apr_pool_t *result_pool,
+                          apr_pool_t *scratch_pool);
+
+
+
+/**
+ * Return an @a editor/@a edit_baton for diffing a working copy against the
+ * repository. The editor is allocated in @a result_pool; temporary
+ * calculations are performed in @a scratch_pool.
+ *
+ * This editor supports diffing either the actual files and properties in the
+ * working copy (when @a use_text_base is #FALSE), or the current pristine
+ * information (when @a use_text_base is #TRUE) against the editor driver.
+ *
+ * @a anchor_abspath/@a target represent the base of the hierarchy to be
+ * compared. The diff callback paths will be relative to this path.
+ *
+ * Diffs will be reported as valid relpaths, with @a anchor_abspath being
+ * the root ("").
+ *
+ * @a callbacks/@a callback_baton is the callback table to use.
+ *
+ * If @a depth is #svn_depth_empty, just diff exactly @a target or
+ * @a anchor_path if @a target is empty.  If #svn_depth_files then do the same
+ * and for top-level file entries as well (if any).  If
+ * #svn_depth_immediates, do the same as #svn_depth_files but also diff
+ * top-level subdirectories at #svn_depth_empty.  If #svn_depth_infinity,
+ * then diff fully recursively.
+ *
+ * @a ignore_ancestry determines whether paths that have discontinuous node
+ * ancestry are treated as delete/add or as simple modifications.  If
+ * @a ignore_ancestry is @c FALSE, then any discontinuous node ancestry will
+ * result in the diff given as a full delete followed by an add.
+ *
+ * @a show_copies_as_adds determines whether paths added with history will
+ * appear as a diff against their copy source, or whether such paths will
+ * appear as if they were newly added in their entirety.
+ *
+ * If @a use_git_diff_format is TRUE, copied paths will be treated as added
+ * if they weren't modified after being copied. This allows the callbacks
+ * to generate appropriate --git diff headers for such files.
+ *
+ * Normally, the difference from repository->working_copy is shown.
+ * If @a reverse_order is TRUE, then show working_copy->repository diffs.
+ *
+ * If @a cancel_func is non-NULL, it will be used along with @a cancel_baton
+ * to periodically check if the client has canceled the operation.
+ *
+ * @a changelist_filter is an array of <tt>const char *</tt> changelist
+ * names, used as a restrictive filter on items whose differences are
+ * reported; that is, don't generate diffs about any item unless
+ * it's a member of one of those changelists.  If @a changelist_filter is
+ * empty (or altogether @c NULL), no changelist filtering occurs.
+ *
+  * If @a server_performs_filtering is TRUE, assume that the server handles
+ * the ambient depth filtering, so this doesn't have to be handled in the
+ * editor.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_wc__get_diff_editor(const svn_delta_editor_t **editor,
+                        void **edit_baton,
+                        svn_wc_context_t *wc_ctx,
+                        const char *anchor_abspath,
+                        const char *target,
+                        svn_depth_t depth,
+                        svn_boolean_t ignore_ancestry,
+                        svn_boolean_t show_copies_as_adds,
+                        svn_boolean_t use_git_diff_format,
+                        svn_boolean_t use_text_base,
+                        svn_boolean_t reverse_order,
+                        svn_boolean_t server_performs_filtering,
+                        const apr_array_header_t *changelist_filter,
+                        const svn_wc_diff_callbacks4_t *callbacks,
+                        void *callback_baton,
+                        svn_cancel_func_t cancel_func,
+                        void *cancel_baton,
+                        apr_pool_t *result_pool,
+                        apr_pool_t *scratch_pool);
+
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/branches/fix-rdump-editor/subversion/include/svn_editor.h
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/include/svn_editor.h?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/svn_editor.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/svn_editor.h Mon Feb 27 15:52:00 2012
@@ -971,7 +971,7 @@ svn_editor_move(svn_editor_t *editor,
  *
  * Perform a rotation among multiple nodes in the target tree.
  *
- * The @relpaths and @revisions arrays (pair-wise) specify nodes in the
+ * The @a relpaths and @a revisions arrays (pair-wise) specify nodes in the
  * tree which are located at a path and expected to be at a specific
  * revision. These nodes are simultaneously moved in a rotation pattern.
  * For example, the node at index 0 of @a relpaths and @a revisions will

Modified: subversion/branches/fix-rdump-editor/subversion/include/svn_repos.h
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/include/svn_repos.h?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/svn_repos.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/svn_repos.h Mon Feb 27 15:52:00 2012
@@ -3027,6 +3027,10 @@ svn_repos_authz_read(svn_authz_t **authz
  * For compatibility with 1.6, and earlier, @a repos_name can be NULL
  * in which case it is equivalent to a @a repos_name of "".
  *
+ * @note Presently, @a repos_name must byte-for-byte match the repos_name
+ * specified in the authz file; it is treated as an opaque string, and not
+ * as a dirent.
+ *
  * @since New in 1.3.
  */
 svn_error_t *

Modified: subversion/branches/fix-rdump-editor/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/include/svn_wc.h?rev=1294191&r1=1294190&r2=1294191&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/svn_wc.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/svn_wc.h Mon Feb 27 15:52:00 2012
@@ -4049,6 +4049,10 @@ svn_wc_walk_status(svn_wc_context_t *wc_
                    apr_pool_t *scratch_pool);
 
 /**
+ * DEPRECATED -- please use APIs from svn_client.h
+ *
+ * ---
+ *
  * Set @a *editor and @a *edit_baton to an editor that generates
  * #svn_wc_status3_t structures and sends them through @a status_func /
  * @a status_baton.  @a anchor_abspath is a working copy directory
@@ -4110,7 +4114,9 @@ svn_wc_walk_status(svn_wc_context_t *wc_
  * in a subpool of @a result_pool.
  *
  * @since New in 1.7.
+ * @deprecated Provided for backward compatibility with the 1.7 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_wc_get_status_editor5(const svn_delta_editor_t **editor,
                           void **edit_baton,
@@ -5487,6 +5493,10 @@ typedef svn_error_t *(*svn_wc_dirents_fu
 
 
 /**
+ * DEPRECATED -- please use APIs from svn_client.h
+ *
+ * ---
+ *
  * Set @a *editor and @a *edit_baton to an editor and baton for updating a
  * working copy.
  *
@@ -5560,7 +5570,9 @@ typedef svn_error_t *(*svn_wc_dirents_fu
  * before returning the editor to allow using the primary ra session for this.
  *
  * @since New in 1.7.
+ * @deprecated Provided for backward compatibility with the 1.7 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_wc_get_update_editor4(const svn_delta_editor_t **editor,
                           void **edit_baton,
@@ -5691,6 +5703,10 @@ svn_wc_get_update_editor(svn_revnum_t *t
                          apr_pool_t *pool);
 
 /**
+ * DEPRECATED -- please use APIs from svn_client.h
+ *
+ * ---
+ *
  * A variant of svn_wc_get_update_editor4().
  *
  * Set @a *editor and @a *edit_baton to an editor and baton for "switching"
@@ -5701,7 +5717,9 @@ svn_wc_get_update_editor(svn_revnum_t *t
  * All other parameters behave as for svn_wc_get_update_editor4().
  *
  * @since New in 1.7.
+ * @deprecated Provided for backward compatibility with the 1.7 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_wc_get_switch_editor4(const svn_delta_editor_t **editor,
                           void **edit_baton,
@@ -6138,6 +6156,10 @@ svn_wc_canonicalize_svn_prop(const svn_s
  */
 
 /**
+ * DEPRECATED -- please use APIs from svn_client.h
+ *
+ * ---
+ *
  * Return an @a editor/@a edit_baton for diffing a working copy against the
  * repository. The editor is allocated in @a result_pool; temporary
  * calculations are performed in @a scratch_pool.
@@ -6191,7 +6213,9 @@ svn_wc_canonicalize_svn_prop(const svn_s
  * editor.
  *
  * @since New in 1.7.
+ * @deprecated Provided for backward compatibility with the 1.7 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_wc_get_diff_editor6(const svn_delta_editor_t **editor,
                         void **edit_baton,