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/03/05 21:34:28 UTC

svn commit: r1297221 [1/7] - in /subversion/branches/ev2-export: ./ build/ac-macros/ build/generator/ build/win32/ notes/ subversion/bindings/javahl/native/ subversion/bindings/javahl/tests/org/apache/subversion/javahl/ subversion/bindings/swig/include...

Author: hwright
Date: Mon Mar  5 20:34:22 2012
New Revision: 1297221

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

Added:
    subversion/branches/ev2-export/tools/server-side/svnpubsub/
      - copied from r1295003, subversion/trunk/tools/server-side/svnpubsub/
    subversion/branches/ev2-export/tools/server-side/svnpubsub/svnwcsub.tac
      - copied unchanged from r1297218, subversion/trunk/tools/server-side/svnpubsub/svnwcsub.tac
Modified:
    subversion/branches/ev2-export/   (props changed)
    subversion/branches/ev2-export/CHANGES
    subversion/branches/ev2-export/COMMITTERS
    subversion/branches/ev2-export/build/ac-macros/apache.m4
    subversion/branches/ev2-export/build/generator/gen_win.py
    subversion/branches/ev2-export/build/win32/make_dist.py
    subversion/branches/ev2-export/build/win32/vc6-build.bat.in
    subversion/branches/ev2-export/get-deps.sh
    subversion/branches/ev2-export/notes/subversion-design.html
    subversion/branches/ev2-export/subversion/bindings/javahl/native/ClientContext.cpp
    subversion/branches/ev2-export/subversion/bindings/javahl/native/File.cpp
    subversion/branches/ev2-export/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
    subversion/branches/ev2-export/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java
    subversion/branches/ev2-export/subversion/bindings/swig/include/svn_containers.swg
    subversion/branches/ev2-export/subversion/bindings/swig/include/svn_types.swg
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Base.pm   (props changed)
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Client.pm   (props changed)
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Core.pm   (props changed)
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Delta.pm   (props changed)
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Fs.pm   (props changed)
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Ra.pm   (props changed)
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Repos.pm   (props changed)
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Wc.pm   (props changed)
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/0use.t   (props changed)
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/1repos.t   (props changed)
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/2fs.t   (props changed)
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/3client.t   (contents, props changed)
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/4pool.t   (props changed)
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/5delta-compat.t   (props changed)
    subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/5delta.t   (props changed)
    subversion/branches/ev2-export/subversion/bindings/swig/python/svn/repos.py
    subversion/branches/ev2-export/subversion/bindings/swig/python/tests/repository.py
    subversion/branches/ev2-export/subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py
    subversion/branches/ev2-export/subversion/bindings/swig/python/tests/wc.py
    subversion/branches/ev2-export/subversion/bindings/swig/ruby/test/util.rb
    subversion/branches/ev2-export/subversion/include/private/svn_cache.h
    subversion/branches/ev2-export/subversion/include/private/svn_cmdline_private.h
    subversion/branches/ev2-export/subversion/include/private/svn_mutex.h
    subversion/branches/ev2-export/subversion/include/private/svn_ra_private.h
    subversion/branches/ev2-export/subversion/include/private/svn_repos_private.h
    subversion/branches/ev2-export/subversion/include/private/svn_wc_private.h
    subversion/branches/ev2-export/subversion/include/svn_client.h
    subversion/branches/ev2-export/subversion/include/svn_delta.h
    subversion/branches/ev2-export/subversion/include/svn_editor.h
    subversion/branches/ev2-export/subversion/include/svn_error.h
    subversion/branches/ev2-export/subversion/include/svn_fs.h
    subversion/branches/ev2-export/subversion/include/svn_ra_svn.h
    subversion/branches/ev2-export/subversion/include/svn_repos.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/copy.c
    subversion/branches/ev2-export/subversion/libsvn_client/delete.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/merge.c
    subversion/branches/ev2-export/subversion/libsvn_client/mergeinfo.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/util.c
    subversion/branches/ev2-export/subversion/libsvn_delta/compat.c
    subversion/branches/ev2-export/subversion/libsvn_delta/editor.c
    subversion/branches/ev2-export/subversion/libsvn_delta/svndiff.c
    subversion/branches/ev2-export/subversion/libsvn_delta/text_delta.c
    subversion/branches/ev2-export/subversion/libsvn_delta/xdelta.c
    subversion/branches/ev2-export/subversion/libsvn_fs/fs-loader.c
    subversion/branches/ev2-export/subversion/libsvn_fs/fs-loader.h
    subversion/branches/ev2-export/subversion/libsvn_fs_base/bdb/env.c
    subversion/branches/ev2-export/subversion/libsvn_fs_base/fs.c
    subversion/branches/ev2-export/subversion/libsvn_fs_base/notes/structure
    subversion/branches/ev2-export/subversion/libsvn_fs_fs/caching.c
    subversion/branches/ev2-export/subversion/libsvn_fs_fs/fs.c
    subversion/branches/ev2-export/subversion/libsvn_fs_fs/fs.h
    subversion/branches/ev2-export/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/ev2-export/subversion/libsvn_fs_fs/fs_fs.h
    subversion/branches/ev2-export/subversion/libsvn_fs_fs/rep-cache-db.sql
    subversion/branches/ev2-export/subversion/libsvn_fs_fs/rep-cache.c
    subversion/branches/ev2-export/subversion/libsvn_fs_fs/rep-cache.h
    subversion/branches/ev2-export/subversion/libsvn_fs_fs/structure
    subversion/branches/ev2-export/subversion/libsvn_fs_fs/temp_serializer.c
    subversion/branches/ev2-export/subversion/libsvn_fs_fs/temp_serializer.h
    subversion/branches/ev2-export/subversion/libsvn_fs_fs/tree.c
    subversion/branches/ev2-export/subversion/libsvn_ra/ra_loader.c
    subversion/branches/ev2-export/subversion/libsvn_ra/ra_loader.h
    subversion/branches/ev2-export/subversion/libsvn_ra_local/ra_plugin.c
    subversion/branches/ev2-export/subversion/libsvn_ra_neon/commit.c
    subversion/branches/ev2-export/subversion/libsvn_ra_neon/log.c
    subversion/branches/ev2-export/subversion/libsvn_ra_neon/ra_neon.h
    subversion/branches/ev2-export/subversion/libsvn_ra_neon/session.c
    subversion/branches/ev2-export/subversion/libsvn_ra_neon/util.c
    subversion/branches/ev2-export/subversion/libsvn_ra_serf/commit.c
    subversion/branches/ev2-export/subversion/libsvn_ra_serf/locks.c
    subversion/branches/ev2-export/subversion/libsvn_ra_serf/ra_serf.h
    subversion/branches/ev2-export/subversion/libsvn_ra_serf/serf.c
    subversion/branches/ev2-export/subversion/libsvn_ra_serf/util.c
    subversion/branches/ev2-export/subversion/libsvn_ra_svn/client.c
    subversion/branches/ev2-export/subversion/libsvn_ra_svn/cyrus_auth.c
    subversion/branches/ev2-export/subversion/libsvn_ra_svn/editorp.c
    subversion/branches/ev2-export/subversion/libsvn_ra_svn/marshal.c
    subversion/branches/ev2-export/subversion/libsvn_ra_svn/ra_svn.h
    subversion/branches/ev2-export/subversion/libsvn_repos/commit.c
    subversion/branches/ev2-export/subversion/libsvn_repos/dump.c
    subversion/branches/ev2-export/subversion/libsvn_repos/hooks.c
    subversion/branches/ev2-export/subversion/libsvn_repos/load-fs-vtable.c
    subversion/branches/ev2-export/subversion/libsvn_repos/log.c
    subversion/branches/ev2-export/subversion/libsvn_repos/replay.c
    subversion/branches/ev2-export/subversion/libsvn_repos/rev_hunt.c
    subversion/branches/ev2-export/subversion/libsvn_subr/cache-inprocess.c
    subversion/branches/ev2-export/subversion/libsvn_subr/cache-membuffer.c
    subversion/branches/ev2-export/subversion/libsvn_subr/cache-memcache.c
    subversion/branches/ev2-export/subversion/libsvn_subr/gpg_agent.c
    subversion/branches/ev2-export/subversion/libsvn_subr/mergeinfo.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_subr/stream.c
    subversion/branches/ev2-export/subversion/libsvn_subr/svn_mutex.c
    subversion/branches/ev2-export/subversion/libsvn_subr/svn_string.c
    subversion/branches/ev2-export/subversion/libsvn_subr/utf.c
    subversion/branches/ev2-export/subversion/libsvn_wc/adm_ops.c
    subversion/branches/ev2-export/subversion/libsvn_wc/entries.c
    subversion/branches/ev2-export/subversion/libsvn_wc/externals.c
    subversion/branches/ev2-export/subversion/libsvn_wc/props.c
    subversion/branches/ev2-export/subversion/libsvn_wc/status.c
    subversion/branches/ev2-export/subversion/libsvn_wc/update_editor.c
    subversion/branches/ev2-export/subversion/libsvn_wc/util.c
    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_private.h
    subversion/branches/ev2-export/subversion/libsvn_wc/wc_db_wcroot.c
    subversion/branches/ev2-export/subversion/mod_dav_svn/liveprops.c
    subversion/branches/ev2-export/subversion/mod_dav_svn/mod_dav_svn.c
    subversion/branches/ev2-export/subversion/mod_dav_svn/repos.c
    subversion/branches/ev2-export/subversion/po/de.po
    subversion/branches/ev2-export/subversion/po/zh_CN.po
    subversion/branches/ev2-export/subversion/svn/cat-cmd.c
    subversion/branches/ev2-export/subversion/svn/list-cmd.c
    subversion/branches/ev2-export/subversion/svn/main.c
    subversion/branches/ev2-export/subversion/svn/proplist-cmd.c
    subversion/branches/ev2-export/subversion/svn/status.c
    subversion/branches/ev2-export/subversion/svnadmin/main.c
    subversion/branches/ev2-export/subversion/svndumpfilter/main.c
    subversion/branches/ev2-export/subversion/svnlook/main.c
    subversion/branches/ev2-export/subversion/svnrdump/dump_editor.c
    subversion/branches/ev2-export/subversion/svnserve/main.c
    subversion/branches/ev2-export/subversion/svnserve/serve.c
    subversion/branches/ev2-export/subversion/svnversion/main.c
    subversion/branches/ev2-export/subversion/tests/README
    subversion/branches/ev2-export/subversion/tests/cmdline/README
    subversion/branches/ev2-export/subversion/tests/cmdline/authz_tests.py
    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/copy_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/davautocheck.sh
    subversion/branches/ev2-export/subversion/tests/cmdline/depth_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/diff_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/externals_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/info_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/lock_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/log_tests.py
    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/mergeinfo_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/patch_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/special_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/stat_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svnadmin_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svndumpfilter_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svnlook_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svnrdump_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svnsync_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svntest/actions.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svntest/main.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svntest/sandbox.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svntest/verify.py
    subversion/branches/ev2-export/subversion/tests/cmdline/update_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/upgrade_tests.py
    subversion/branches/ev2-export/subversion/tests/libsvn_diff/diff-diff3-test.c
    subversion/branches/ev2-export/subversion/tests/libsvn_subr/spillbuf-test.c
    subversion/branches/ev2-export/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/ev2-export/subversion/tests/libsvn_wc/wc-incomplete-tester.c
    subversion/branches/ev2-export/tools/buildbot/slaves/ubuntu-x64/svnbuild.sh
    subversion/branches/ev2-export/tools/buildbot/slaves/win32-SharpSvn/svntest-bindings.cmd
    subversion/branches/ev2-export/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd
    subversion/branches/ev2-export/tools/client-side/detach.py
    subversion/branches/ev2-export/tools/client-side/mergeinfo-sanitizer.py
    subversion/branches/ev2-export/tools/dev/unix-build/Makefile.svn
    subversion/branches/ev2-export/tools/dev/which-error.py
    subversion/branches/ev2-export/tools/dev/windows-build/Makefile
    subversion/branches/ev2-export/tools/diff/diff.c
    subversion/branches/ev2-export/tools/dist/backport.pl
    subversion/branches/ev2-export/tools/dist/release.py
    subversion/branches/ev2-export/tools/server-side/svnpredumpfilter.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
    subversion/branches/ev2-export/tools/server-side/svnpubsub/svnwcsub.py
    subversion/branches/ev2-export/tools/server-side/svnpubsub/test.conf
    subversion/branches/ev2-export/tools/server-side/svnpubsub/watcher.py

Propchange: subversion/branches/ev2-export/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Mar  5 20:34:22 2012
@@ -57,4 +57,4 @@
 /subversion/branches/tree-conflicts:868291-873154
 /subversion/branches/tree-conflicts-notify:873926-874008
 /subversion/branches/uris-as-urls:1060426-1064427
-/subversion/trunk:1231319-1245177
+/subversion/trunk:1231319-1295003,1295006-1297218

Modified: subversion/branches/ev2-export/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/CHANGES?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/CHANGES (original)
+++ subversion/branches/ev2-export/CHANGES Mon Mar  5 20:34:22 2012
@@ -20,6 +20,7 @@ http://svn.apache.org/repos/asf/subversi
     * new SVNHooksEnv configuration option for mod_dav_svn (r1239966)
     * new --ignore-properties option for 'svn diff' (r1239553. -617)
     * new --patch-compatible option for 'svn diff' (r1239561)
+    * new SvnPubSub distributed commit hooks (tools/server-side/svnpubsub)
 
   - Client-side bugfixes:
     *
@@ -41,6 +42,26 @@ http://svn.apache.org/repos/asf/subversi
     *
 
 
+Version 1.7.4
+(08 Mar 2012, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.4
+
+  User-visible changes:
+    * fix 'svn log --diff' for moved paths (r1210147, et al)
+    * fix ra_serf problem with reading directory entries via HTTPv2 (r1238121)
+    * prepend "sqlite:" to error messages from SQLite (r1245738, -817)
+    * fix randomly missing "Merged via" notifications in 'svn log -g' (r1293229)
+    * fix spurious conflict when merging deleted symbolic link (issue #4052)
+    * fix URL-to-WC copy of externals on Windows (issue #4123)
+    * improve an FSFS sanity-check error message (r1294470)
+    * fix regressions with symlinks pointing at externals (issue #4102)
+    * fix 'svn log --diff' output ordering issue on Windows (r1295671)
+
+  Developer-visible changes:
+    * don't build mod_dontdothat if not building with httpd (r1243976)
+    * fix the testsuite to avoid FAILs on APR hash order (r1230714, et al)
+
+
 Version 1.7.3
 (14 Feb 2012, from /branches/1.7.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.7.3

Modified: subversion/branches/ev2-export/COMMITTERS
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/COMMITTERS?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/COMMITTERS [UTF-8] (original)
+++ subversion/branches/ev2-export/COMMITTERS [UTF-8] Mon Mar  5 20:34:22 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)
@@ -154,6 +154,8 @@ Commit access for specific areas:
                                                               tools/buildbot)
       artagnon   Ramkumar Ramachandra <ar...@gmail.com>   (svnrdump, svntest)
          arwin   Arwin Arni <ar...@collab.net>               (svn-bisect)
+          joes   Joe Schaefer <jo...@yahoo.com>       (svnpubsub)
+
 
   Translation of message files:
 

Modified: subversion/branches/ev2-export/build/ac-macros/apache.m4
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/build/ac-macros/apache.m4?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/build/ac-macros/apache.m4 (original)
+++ subversion/branches/ev2-export/build/ac-macros/apache.m4 Mon Mar  5 20:34:22 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/ev2-export/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/build/generator/gen_win.py?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/build/generator/gen_win.py (original)
+++ subversion/branches/ev2-export/build/generator/gen_win.py Mon Mar  5 20:34:22 2012
@@ -301,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')
@@ -341,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"
@@ -959,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":
@@ -1011,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:
@@ -1148,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),
@@ -1168,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')),
                         ))
 
@@ -1189,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),
@@ -1240,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'
@@ -1255,6 +1270,16 @@ class WinGeneratorBase(GeneratorBase):
     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"
     self.ruby_includes = []

Modified: subversion/branches/ev2-export/build/win32/make_dist.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/build/win32/make_dist.py?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/build/win32/make_dist.py (original)
+++ subversion/branches/ev2-export/build/win32/make_dist.py Mon Mar  5 20:34:22 2012
@@ -209,6 +209,8 @@ _disttree = {'': OptFile('%(readme)s', '
                      File('%(blddir)s/svnserve/svnserve.pdb'),
                      File('%(blddir)s/svnversion/svnversion.exe'),
                      File('%(blddir)s/svnversion/svnversion.pdb'),
+                     File('%(blddir)s/svnrdump/svnrdump.exe'),
+                     File('%(blddir)s/svnrdump/svnrdump.pdb'),
                      File('%(blddir)s/../contrib/client-side/svn-push/svn-push.exe'),
                      File('%(blddir)s/../contrib/client-side/svn-push/svn-push.pdb'),
                      File('%(blddir)s/../tools/client-side/svnmucc/svnmucc.exe'),

Modified: subversion/branches/ev2-export/build/win32/vc6-build.bat.in
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/build/win32/vc6-build.bat.in?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/build/win32/vc6-build.bat.in (original)
+++ subversion/branches/ev2-export/build/win32/vc6-build.bat.in Mon Mar  5 20:34:22 2012
@@ -136,6 +136,7 @@ copy src-%DIR%\Release\subversion\svndum
 copy src-%DIR%\Release\subversion\svnlook\svnlook.exe svn-win32-%VER%\bin
 copy src-%DIR%\Release\subversion\svnserve\svnserve.exe svn-win32-%VER%\bin
 copy src-%DIR%\Release\subversion\svnversion\svnversion.exe svn-win32-%VER%\bin
+copy src-%DIR%\Release\subversion\svnrdump\svnrdump.exe svn-win32-%VER%\bin
 copy src-%DIR%\Release\subversion\mod_authz_svn\mod_authz_svn.so svn-win32-%VER%\httpd
 copy src-%DIR%\Release\subversion\mod_dav_svn\mod_dav_svn.so svn-win32-%VER%\httpd
 copy svn-win32-%VER%\bin\intl.dll "%APACHEDIR%\bin"

Modified: subversion/branches/ev2-export/get-deps.sh
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/get-deps.sh?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/get-deps.sh (original)
+++ subversion/branches/ev2-export/get-deps.sh Mon Mar  5 20:34:22 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/ev2-export/notes/subversion-design.html
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/notes/subversion-design.html?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/notes/subversion-design.html (original)
+++ subversion/branches/ev2-export/notes/subversion-design.html Mon Mar  5 20:34:22 2012
@@ -2340,7 +2340,7 @@ write/Makefile:6
       <p>Once you've done this, read Jim Blandy's own structural overview,
         which explains how nodes and revisions are organized (among other
         things) in the filesystem implementation:
-        <tt class="filename">subversion/libsvn_fs/structure</tt>.</p>
+        <tt class="filename">subversion/libsvn_fs_base/notes/structure</tt>.</p>
 
       <p>Finally, read the well-documented API in
         <tt class="filename">subversion/include/svn_fs.h</tt>.</p>

Modified: subversion/branches/ev2-export/subversion/bindings/javahl/native/ClientContext.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/javahl/native/ClientContext.cpp?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/javahl/native/ClientContext.cpp (original)
+++ subversion/branches/ev2-export/subversion/bindings/javahl/native/ClientContext.cpp Mon Mar  5 20:34:22 2012
@@ -111,7 +111,7 @@ ClientContext::~ClientContext()
 /* Helper function to make sure that we don't keep dangling pointers in ctx.
    Note that this function might be called multiple times if getContext()
    is called on the same pool.
-   
+
    The use of this function assumes a proper subpool behavior by its user,
    (read: SVNClient) usually per request.
  */

Modified: subversion/branches/ev2-export/subversion/bindings/javahl/native/File.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/javahl/native/File.cpp?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/javahl/native/File.cpp (original)
+++ subversion/branches/ev2-export/subversion/bindings/javahl/native/File.cpp Mon Mar  5 20:34:22 2012
@@ -82,7 +82,7 @@ const char *File::getAbsPath()
       /* We don't remove the local ref for jabsolutePath here, because
          JNIStringHolder expects that ref to be valid for the life of
          the object, which in this case is allocated on the stack.
-         
+
          So we just "leak" the reference, and it will get cleaned up when
          we eventually exit back to Java-land. */
       env->DeleteLocalRef(clazz);

Modified: subversion/branches/ev2-export/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/ev2-export/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Mon Mar  5 20:34:22 2012
@@ -148,10 +148,10 @@ public class BasicTests extends SVNTests
                               CommitItemStateFlags.Add);
         Set<String> urls = new HashSet<String>(1);
         urls.add(thisTest.getUrl() + "/Y");
-        try 
+        try
         {
             tempclient.mkdir(urls, false, null, new ConstMsg("log_msg"), null);
-        } 
+        }
         catch(JNIError e)
         {
 	        return; // Test passes!
@@ -3142,12 +3142,12 @@ public class BasicTests extends SVNTests
 
         // check the status of the working copy
         thisTest.checkStatus();
-        
+
         // now edit the propval directly in the repository
         long baseRev = 2L;
         client.propertySetRemote(thisTest.getUrl()+"/A/D/G/rho", baseRev, PROP, NEWVALUE,
                                  new ConstMsg("edit prop"), false, null, null);
-        
+
         // update the WC and verify that the property was changed
         client.update(thisTest.getWCPathSet(), Revision.HEAD, Depth.infinity, false, false,
                       false, false);

Modified: subversion/branches/ev2-export/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java (original)
+++ subversion/branches/ev2-export/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java Mon Mar  5 20:34:22 2012
@@ -520,7 +520,7 @@ public class WC
                                         item.reposLastCmtAuthor,
                                         status.getReposLastCmtAuthor());
                     Assert.assertNotNull("URL for path " + item.myPath
-                                         + " should not be null", 
+                                         + " should not be null",
                                          status.getUrl());
                 }
             }

Modified: subversion/branches/ev2-export/subversion/bindings/swig/include/svn_containers.swg
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/swig/include/svn_containers.swg?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/swig/include/svn_containers.swg (original)
+++ subversion/branches/ev2-export/subversion/bindings/swig/include/svn_containers.swg Mon Mar  5 20:34:22 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));

Modified: subversion/branches/ev2-export/subversion/bindings/swig/include/svn_types.swg
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/swig/include/svn_types.swg?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/swig/include/svn_types.swg (original)
+++ subversion/branches/ev2-export/subversion/bindings/swig/include/svn_types.swg Mon Mar  5 20:34:22 2012
@@ -101,6 +101,8 @@
   svn_auth_provider_object_t **,
   svn_config_t **,
   svn_diff_t **,
+  svn_patch_file_t **,
+  svn_patch_t **,
   void **credentials,
   void **iter_baton,
   void **token,

Propchange: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Base.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Client.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Core.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Delta.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Fs.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Ra.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Repos.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/Wc.pm
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/0use.t
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/1repos.t
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/2fs.t
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/3client.t
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/3client.t?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/3client.t (original)
+++ subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/3client.t Mon Mar  5 20:34:22 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/ev2-export/subversion/bindings/swig/perl/native/t/3client.t
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/4pool.t
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/5delta-compat.t
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/ev2-export/subversion/bindings/swig/perl/native/t/5delta.t
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: subversion/branches/ev2-export/subversion/bindings/swig/python/svn/repos.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/swig/python/svn/repos.py?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/swig/python/svn/repos.py (original)
+++ subversion/branches/ev2-export/subversion/bindings/swig/python/svn/repos.py Mon Mar  5 20:34:22 2012
@@ -88,7 +88,7 @@ class ChangeCollector(_svndelta.Editor):
 
     At this time, two ChangedPath objects will be passed for a path that had
     been replaced in the revision/transaction.  This may change in the future.
-  
+
     ### Can't we deduce FS_PTR from ROOT?
 
     ### POOL is unused

Modified: subversion/branches/ev2-export/subversion/bindings/swig/python/tests/repository.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/swig/python/tests/repository.py?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/swig/python/tests/repository.py (original)
+++ subversion/branches/ev2-export/subversion/bindings/swig/python/tests/repository.py Mon Mar  5 20:34:22 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/ev2-export/subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py (original)
+++ subversion/branches/ev2-export/subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py Mon Mar  5 20:34:22 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/ev2-export/subversion/bindings/swig/python/tests/wc.py
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/swig/python/tests/wc.py?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/swig/python/tests/wc.py (original)
+++ subversion/branches/ev2-export/subversion/bindings/swig/python/tests/wc.py Mon Mar  5 20:34:22 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/ev2-export/subversion/bindings/swig/ruby/test/util.rb
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/swig/ruby/test/util.rb?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/swig/ruby/test/util.rb (original)
+++ subversion/branches/ev2-export/subversion/bindings/swig/ruby/test/util.rb Mon Mar  5 20:34:22 2012
@@ -42,7 +42,7 @@ module SvnTestUtil
     @repos_uri = "file://#{@full_repos_path.sub(/^\/?/, '/')}"
     @svnserve_host = "127.0.0.1"
     @svnserve_ports = (64152..64282).collect{|x| x.to_s}
-    @wc_base_dir = File.join(Dir.tmpdir, "wc-tmp")
+    @wc_base_dir = Dir.mktmpdir
     @wc_path = File.join(@wc_base_dir, "wc")
     @full_wc_path = File.expand_path(@wc_path)
     @tmp_path = "tmp"

Modified: subversion/branches/ev2-export/subversion/include/private/svn_cache.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/private/svn_cache.h?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/private/svn_cache.h (original)
+++ subversion/branches/ev2-export/subversion/include/private/svn_cache.h Mon Mar  5 20:34:22 2012
@@ -296,7 +296,7 @@ svn_cache__membuffer_cache_create(svn_me
  * assumed to be an svn_stringbuf_t.
  *
  * If @a thread_safe is true, and APR is compiled with threads, all
- * accesses to the cache will be protected with a mutex, if the shared 
+ * accesses to the cache will be protected with a mutex, if the shared
  * @a memcache has also been created with thread_safe flag set.
  *
  * These caches do not support svn_cache__iter.

Modified: subversion/branches/ev2-export/subversion/include/private/svn_cmdline_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/private/svn_cmdline_private.h?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/private/svn_cmdline_private.h (original)
+++ subversion/branches/ev2-export/subversion/include/private/svn_cmdline_private.h Mon Mar  5 20:34:22 2012
@@ -92,7 +92,7 @@ svn_cmdline__parse_config_option(apr_arr
                                  apr_pool_t *pool);
 
 /** Sets the config options in @a config_options, an apr array containing
- * svn_cmdline__config_argument_t* elements to the configuration in @a cfg,
+ * @c svn_cmdline__config_argument_t* elements, to the configuration in @a cfg,
  * a hash mapping of <tt>const char *</tt> configuration file names to
  * @c svn_config_t *'s. Write warnings to stderr.
  *

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=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/private/svn_mutex.h (original)
+++ subversion/branches/ev2-export/subversion/include/private/svn_mutex.h Mon Mar  5 20:34:22 2012
@@ -59,7 +59,7 @@ typedef void svn_mutex__t;
  * 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.
- * 
+ *
  * If threading is not supported by APR, this function is a no-op.
  */
 svn_error_t *
@@ -68,9 +68,9 @@ svn_mutex__init(svn_mutex__t **mutex,
                 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 
+ * Make sure to call @ref 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
  * aquisition and release.
  */
@@ -79,14 +79,14 @@ 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.
- * 
- * 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. 
+ *
+ * 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 -
  * irrespective of the possible internal failures during unlock. If @a err
- * is @ref SVN_NO_ERROR, internal failures of this function will be 
+ * is @ref 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
  * aquisition and release.
  */
@@ -99,7 +99,7 @@ svn_mutex__unlock(svn_mutex__t *mutex,
  * this macro will return an @ref 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.
- * 
+ *
  * @note Prefer using this macro instead of explicit lock aquisition and
  * release.
  */

Modified: subversion/branches/ev2-export/subversion/include/private/svn_ra_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/private/svn_ra_private.h?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/private/svn_ra_private.h (original)
+++ subversion/branches/ev2-export/subversion/include/private/svn_ra_private.h Mon Mar  5 20:34:22 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/ev2-export/subversion/include/private/svn_repos_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/private/svn_repos_private.h?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/private/svn_repos_private.h (original)
+++ subversion/branches/ev2-export/subversion/include/private/svn_repos_private.h Mon Mar  5 20:34:22 2012
@@ -51,7 +51,7 @@ extern "C" {
  * repository via tools that use the svn_fs_* API directly (possibly
  * including svnadmin and svnlook).  This has happened before and there
  * are known (documented, but unsupported) upgrade paths in some cases.
- * 
+ *
  * @since New in 1.7.
  */
 svn_error_t *

Modified: subversion/branches/ev2-export/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/private/svn_wc_private.h?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/ev2-export/subversion/include/private/svn_wc_private.h Mon Mar  5 20:34:22 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
@@ -540,7 +549,7 @@ svn_wc__node_is_status_deleted(svn_boole
  * set @a *deleted_ancestor_abspath to @c NULL.
  * @a *deleted_ancestor_abspath is allocated in @a result_pool.
  * Use @a scratch_pool for all temporary allocations.
- */ 
+ */
 svn_error_t *
 svn_wc__node_get_deleted_ancestor(const char **deleted_ancestor_abspath,
                                   svn_wc_context_t *wc_ctx,

Modified: subversion/branches/ev2-export/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_client.h?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_client.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_client.h Mon Mar  5 20:34:22 2012
@@ -2255,7 +2255,7 @@ typedef struct svn_client_status_t
    * This will be NULL for moved-here nodes that are just part of a subtree
    * that was moved along (and are not themselves a root of a different move
    * operation).
-   * 
+   *
    * @since New in 1.8. */
   const char *moved_from_abspath;
 

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=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_delta.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_delta.h Mon Mar  5 20:34:22 2012
@@ -651,7 +651,7 @@ svn_txdelta_skip_svndiff_window(apr_file
  * Each of these takes a directory baton, indicating the directory
  * in which the change takes place, and a @a path argument, giving the
  * path of the file, subdirectory, or directory entry to change.
- * 
+ *
  * The @a path argument to each of the callbacks is relative to the
  * root of the edit.  Editors will usually want to join this relative
  * path with some base stored in the edit baton (e.g. a URL, or a

Modified: subversion/branches/ev2-export/subversion/include/svn_editor.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_editor.h?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_editor.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_editor.h Mon Mar  5 20:34:22 2012
@@ -383,6 +383,13 @@ extern "C" {
  */
 typedef struct svn_editor_t svn_editor_t;
 
+/** The kind of the checksum to be used throughout the #svn_editor_t APIs.
+ *
+ * @note ### This may change before Ev2 is official released, so just like
+ * everything else in this file, please don't rely upon it until then.
+ */
+#define SVN_EDITOR_CHECKSUM_KIND svn_checksum_sha1
+
 
 /** These function types define the callback functions a tree delta consumer
  * implements.

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=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_error.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_error.h Mon Mar  5 20:34:22 2012
@@ -479,11 +479,16 @@ svn_error_t *svn_error_purge_tracing(svn
  *
  * @since New in 1.6.
  */
+#ifdef __clang_analyzer__
+#include <assert.h>
+#define SVN_ERR_ASSERT(expr)       assert((expr))
+#else
 #define SVN_ERR_ASSERT(expr)                                            \
   do {                                                                  \
     if (!(expr))                                                        \
       SVN_ERR(svn_error__malfunction(TRUE, __FILE__, __LINE__, #expr)); \
   } while (0)
+#endif
 
 /** Similar to SVN_ERR_ASSERT(), but without the option of returning
  * an error to the calling function.

Modified: subversion/branches/ev2-export/subversion/include/svn_fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_fs.h?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_fs.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_fs.h Mon Mar  5 20:34:22 2012
@@ -250,6 +250,10 @@ svn_fs_upgrade(const char *path,
  * to the Subversion filesystem located in the directory @a path.
  * Use @a pool for necessary allocations.
  *
+ * @a start and @a end may be #SVN_INVALID_REVNUM, in which case
+ * svn_repos_verify_fs2()'s semantics apply.  When @c r0 is being
+ * verified, global invariants may be verified as well.
+ *
  * @note You probably don't want to use this directly.  Take a look at
  * svn_repos_verify_fs2() instead, which does non-backend-specific
  * verifications as well.
@@ -260,7 +264,9 @@ svn_error_t *
 svn_fs_verify(const char *path,
               svn_cancel_func_t cancel_func,
               void *cancel_baton,
-              apr_pool_t *pool);
+              svn_revnum_t start,
+              svn_revnum_t end,
+              apr_pool_t *scratch_pool);
 
 /**
  * Return, in @a *fs_type, a string identifying the back-end type of

Modified: subversion/branches/ev2-export/subversion/include/svn_ra_svn.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_ra_svn.h?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_ra_svn.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_ra_svn.h Mon Mar  5 20:34:22 2012
@@ -157,6 +157,15 @@ typedef struct svn_ra_svn_item_t
 
 typedef svn_error_t *(*svn_ra_svn_edit_callback)(void *baton);
 
+/**
+ * Set the shim callbacks to be used by @a conn to @a shim_callbacks.
+ *
+ * @note This is a private API, external consumers should not use it.
+ */
+svn_error_t *
+svn_ra_svn__set_shim_callbacks(svn_ra_svn_conn_t *conn,
+                               svn_delta_shim_callbacks_t *shim_callbacks);
+
 /** Initialize a connection structure for the given socket or
  * input/output files.
  *

Modified: subversion/branches/ev2-export/subversion/include/svn_repos.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_repos.h?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_repos.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_repos.h Mon Mar  5 20:34:22 2012
@@ -532,7 +532,7 @@ svn_repos_hotcopy2(const char *src_path,
                    void *cancel_baton,
                    apr_pool_t *pool);
 
-/** 
+/**
  * Like svn_repos_hotcopy2(), but without the @a incremental parameter
  * and without cancellation support.
  *
@@ -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/ev2-export/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_wc.h?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_wc.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_wc.h Mon Mar  5 20:34:22 2012
@@ -3059,7 +3059,7 @@ svn_wc_entry_dup(const svn_wc_entry_t *e
  */
 typedef struct svn_wc_info_t
 {
-  /** The schedule of this item 
+  /** The schedule of this item
    * ### Do we still need schedule? */
   svn_wc_schedule_t schedule;
 
@@ -3657,7 +3657,7 @@ typedef struct svn_wc_status3_t
    * This will be NULL for moved-here nodes that are just part of a subtree
    * that was moved along (and are not themselves a root of a different move
    * operation).
-   * 
+   *
    * @since New in 1.8. */
   const char *moved_from_abspath;
 

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=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/add.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/add.c Mon Mar  5 20:34:22 2012
@@ -47,6 +47,7 @@
 
 #include "private/svn_client_private.h"
 #include "private/svn_wc_private.h"
+#include "private/svn_ra_private.h"
 #include "private/svn_magic.h"
 
 #include "svn_private_config.h"
@@ -896,6 +897,9 @@ mkdir_urls(const apr_array_header_t *url
                                                  ctx, pool));
 
   /* Fetch RA commit editor */
+  SVN_ERR(svn_ra__register_editor_shim_callbacks(ra_session,
+                        svn_client__get_shim_callbacks(ctx->wc_ctx,
+                                                       NULL, pool)));
   SVN_ERR(svn_ra_get_commit_editor3(ra_session, &editor, &edit_baton,
                                     commit_revprops,
                                     commit_callback,

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=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/client.h (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/client.h Mon Mar  5 20:34:22 2012
@@ -1073,6 +1073,11 @@ svn_client__get_normalized_stream(svn_st
                                   apr_pool_t *result_pool,
                                   apr_pool_t *scratch_pool);
 
+/* Return a set of callbacks to use with the Ev2 shims. */
+svn_delta_shim_callbacks_t *
+svn_client__get_shim_callbacks(svn_wc_context_t *wc_ctx,
+                               const char *anchor_abspath,
+                               apr_pool_t *result_pool);
 
 /* Return true if KIND is a revision kind that is dependent on the working
  * copy. Otherwise, return false. */

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=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/commit.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/commit.c Mon Mar  5 20:34:22 2012
@@ -49,6 +49,7 @@
 
 #include "client.h"
 #include "private/svn_wc_private.h"
+#include "private/svn_ra_private.h"
 #include "private/svn_magic.h"
 
 #include "svn_private_config.h"
@@ -645,6 +646,7 @@ get_ra_editor(svn_ra_session_t **ra_sess
               apr_pool_t *pool)
 {
   apr_hash_t *commit_revprops;
+  const char *anchor_abspath;
 
   /* Open an RA session to URL. */
   SVN_ERR(svn_client__open_ra_session_internal(ra_session, NULL, base_url,
@@ -669,7 +671,28 @@ get_ra_editor(svn_ra_session_t **ra_sess
   SVN_ERR(svn_client__ensure_revprop_table(&commit_revprops, revprop_table,
                                            log_msg, ctx, pool));
 
+#ifdef ENABLE_EDITOR_SHIMS
+  /* We need this for the shims. */
+  if (base_dir_abspath)
+    {
+      const char *relpath;
+      const char *wcroot_abspath;
+
+      SVN_ERR(svn_wc__get_wc_root(&wcroot_abspath, ctx->wc_ctx,
+                                  base_dir_abspath, pool, pool));
+
+      SVN_ERR(svn_ra_get_path_relative_to_root(*ra_session, &relpath, base_url,
+                                               pool));
+      anchor_abspath = svn_dirent_join(wcroot_abspath, relpath, pool);
+    }
+  else
+#endif
+    anchor_abspath = NULL;
+
   /* Fetch RA commit editor. */
+  SVN_ERR(svn_ra__register_editor_shim_callbacks(*ra_session,
+                        svn_client__get_shim_callbacks(ctx->wc_ctx,
+                                                       anchor_abspath, pool)));
   SVN_ERR(svn_ra_get_commit_editor3(*ra_session, editor, edit_baton,
                                     commit_revprops, commit_callback,
                                     commit_baton, lock_tokens, keep_locks,
@@ -1256,7 +1279,7 @@ append_externals_as_explicit_targets(apr
 
               rel_target = svn_dirent_skip_ancestor(base_abspath,
                                                     xinfo->local_abspath);
-              
+
               SVN_ERR_ASSERT(rel_target != NULL && *rel_target != '\0');
 
               APR_ARRAY_PUSH(rel_targets, const char *) =
@@ -1492,7 +1515,7 @@ svn_client_commit6(const apr_array_heade
               svn_boolean_t found_delete_half =
                 (apr_hash_get(committables->by_path, delete_op_root_abspath,
                                APR_HASH_KEY_STRING) != NULL);
-              
+
               if (!found_delete_half)
                 {
                   const char *delete_half_parent_abspath;

Modified: subversion/branches/ev2-export/subversion/libsvn_client/copy.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/copy.c?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/copy.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/copy.c Mon Mar  5 20:34:22 2012
@@ -44,6 +44,7 @@
 
 #include "svn_private_config.h"
 #include "private/svn_wc_private.h"
+#include "private/svn_ra_private.h"
 #include "private/svn_mergeinfo_private.h"
 
 
@@ -1089,6 +1090,9 @@ repos_to_repos_copy(const apr_array_head
                                            message, ctx, pool));
 
   /* Fetch RA commit editor. */
+  SVN_ERR(svn_ra__register_editor_shim_callbacks(ra_session,
+                        svn_client__get_shim_callbacks(ctx->wc_ctx,
+                                                       NULL, pool)));
   SVN_ERR(svn_ra_get_commit_editor3(ra_session, &editor, &edit_baton,
                                     commit_revprops,
                                     commit_callback,
@@ -1401,6 +1405,9 @@ wc_to_repos_copy(const apr_array_header_
                                                FALSE, FALSE, ctx, pool));
 
   /* Fetch RA commit editor. */
+  SVN_ERR(svn_ra__register_editor_shim_callbacks(ra_session,
+                        svn_client__get_shim_callbacks(ctx->wc_ctx,
+                                                       NULL, pool)));
   SVN_ERR(svn_ra_get_commit_editor3(ra_session, &editor, &edit_baton,
                                     commit_revprops,
                                     commit_callback,

Modified: subversion/branches/ev2-export/subversion/libsvn_client/delete.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/delete.c?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/delete.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/delete.c Mon Mar  5 20:34:22 2012
@@ -39,6 +39,7 @@
 
 #include "private/svn_client_private.h"
 #include "private/svn_wc_private.h"
+#include "private/svn_ra_private.h"
 
 #include "svn_private_config.h"
 
@@ -187,6 +188,9 @@ single_repos_delete(svn_ra_session_t *ra
                                            log_msg, ctx, pool));
 
   /* Fetch RA commit editor */
+  SVN_ERR(svn_ra__register_editor_shim_callbacks(ra_session,
+                        svn_client__get_shim_callbacks(ctx->wc_ctx,
+                                                       NULL, pool)));
   SVN_ERR(svn_ra_get_commit_editor3(ra_session, &editor, &edit_baton,
                                     commit_revprops,
                                     commit_callback,

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=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/diff.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/diff.c Mon Mar  5 20:34:22 2012
@@ -678,9 +678,9 @@ display_prop_diffs(const apr_array_heade
 
         /* The last character in a property is often not a newline.
            An eol character is appended to prevent the diff API to add a
-           ' \ No newline at end of file' line. We add 
+           ' \ No newline at end of file' line. We add
            ' \ No newline at end of property' manually if needed. */
-        tmp = original_value ? original_value 
+        tmp = original_value ? original_value
                              : svn_string_create_empty(iterpool);
         orig = maybe_append_eol(tmp, NULL, iterpool);
 
@@ -1336,7 +1336,7 @@ static const svn_wc_diff_callbacks4_t di
   diff_dir_opened,
   diff_dir_added,
   diff_dir_props_changed,
-  diff_dir_closed    
+  diff_dir_closed
 };
 
 /*-----------------------------------------------------------------*/

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=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/externals.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/externals.c Mon Mar  5 20:34:22 2012
@@ -299,6 +299,9 @@ switch_dir_external(const char *local_ab
                                       external_peg_rev,
                                       external_rev,
                                       pool));
+    /* Issue #4123: We don't need to keep the newly checked out external's
+       DB open. */
+    SVN_ERR(svn_wc__close_db(local_abspath, ctx->wc_ctx, pool));
   }
 
   return SVN_NO_ERROR;
@@ -693,8 +696,8 @@ handle_external_item_change(const struct
             const char *local_repos_root_url;
             const char *local_repos_uuid;
             const char *ext_repos_relpath;
-            
-            /* 
+
+            /*
              * The working copy library currently requires that all files
              * in the working copy have the same repository root URL.
              * The URL from the file external's definition differs from the
@@ -778,10 +781,6 @@ wrap_external_error(const struct externa
   return err;
 }
 
-/* This implements the 'svn_hash_diff_func_t' interface.
-   BATON is of type 'struct handle_externals_desc_change_baton *'.
-   KEY is a 'const char *'.
-*/
 static svn_error_t *
 handle_externals_change(const struct external_change_baton_t *eb,
                         const char *local_abspath,

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=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/merge.c Mon Mar  5 20:34:22 2012
@@ -48,6 +48,7 @@
 #include "svn_props.h"
 #include "svn_time.h"
 #include "svn_sorts.h"
+#include "svn_subst.h"
 #include "svn_ra.h"
 #include "client.h"
 #include "mergeinfo.h"
@@ -1393,7 +1394,7 @@ check_moved_away(svn_boolean_t *moved_aw
 {
   const char *moved_to_abspath;
   svn_error_t *err;
-  
+
   *moved_away = FALSE;
 
   err = svn_wc__node_was_moved_away(&moved_to_abspath, NULL,
@@ -1423,7 +1424,7 @@ check_moved_here(svn_boolean_t *moved_he
 {
   const char *moved_from_abspath;
   svn_error_t *err;
-  
+
   *moved_here = FALSE;
 
   err = svn_wc__node_was_moved_here(&moved_from_abspath, NULL,
@@ -1995,10 +1996,14 @@ files_same_p(svn_boolean_t *same,
       svn_opt_revision_t working_rev = { svn_opt_revision_working, { 0 } };
 
       /* Compare the file content, translating 'mine' to 'normal' form. */
-      SVN_ERR(svn_client__get_normalized_stream(&mine_stream, wc_ctx,
-                                                mine_abspath, &working_rev,
-                                                FALSE, TRUE, NULL, NULL,
-                                                scratch_pool, scratch_pool));
+      if (svn_prop_get_value(working_props, SVN_PROP_SPECIAL) != NULL)
+        SVN_ERR(svn_subst_read_specialfile(&mine_stream, mine_abspath,
+                                           scratch_pool, scratch_pool));
+      else
+        SVN_ERR(svn_client__get_normalized_stream(&mine_stream, wc_ctx,
+                                                  mine_abspath, &working_rev,
+                                                  FALSE, TRUE, NULL, NULL,
+                                                  scratch_pool, scratch_pool));
 
       SVN_ERR(svn_stream_open_readonly(&older_stream, older_abspath,
                                        scratch_pool, scratch_pool));
@@ -7540,7 +7545,7 @@ flag_subtrees_needing_mergeinfo(svn_bool
                      operational depth is empty or files, then the mere
                      existence of operative immediate children means we
                      must record non-inheritable mergeinfo.
-                     
+
                      ### What about svn_depth_immediates?  In that case
                      ### the merge target needs only normal inheritable
                      ### mergeinfo and the target's immediate children will

Modified: subversion/branches/ev2-export/subversion/libsvn_client/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/mergeinfo.c?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/mergeinfo.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/mergeinfo.c Mon Mar  5 20:34:22 2012
@@ -1147,7 +1147,7 @@ svn_client__elide_mergeinfo_catalog(svn_
           const char *top;
           const char *path_suffix;
           svn_boolean_t elides = FALSE;
-          
+
           svn_pool_clear(iterpool);
 
           /* Pop off any paths which are not ancestors of PATH. */

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=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/prop_commands.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/prop_commands.c Mon Mar  5 20:34:22 2012
@@ -41,6 +41,7 @@
 
 #include "svn_private_config.h"
 #include "private/svn_wc_private.h"
+#include "private/svn_ra_private.h"
 #include "private/svn_client_private.h"
 
 
@@ -242,6 +243,9 @@ propset_on_url(const char *propname,
                                            message, ctx, pool));
 
   /* Fetch RA commit editor. */
+  SVN_ERR(svn_ra__register_editor_shim_callbacks(ra_session,
+                        svn_client__get_shim_callbacks(ctx->wc_ctx,
+                                                       NULL, pool)));
   SVN_ERR(svn_ra_get_commit_editor3(ra_session, &editor, &edit_baton,
                                     commit_revprops,
                                     commit_callback,

Modified: subversion/branches/ev2-export/subversion/libsvn_client/repos_diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/repos_diff.c?rev=1297221&r1=1297220&r2=1297221&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/repos_diff.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/repos_diff.c Mon Mar  5 20:34:22 2012
@@ -1317,7 +1317,10 @@ fetch_kind_func(svn_kind_t *kind,
   struct edit_baton *eb = baton;
   svn_node_kind_t node_kind;
 
-  SVN_ERR(svn_ra_check_path(eb->ra_session, path, eb->revision, &node_kind,
+  if (!SVN_IS_VALID_REVNUM(base_revision))
+    base_revision = eb->revision;
+
+  SVN_ERR(svn_ra_check_path(eb->ra_session, path, base_revision, &node_kind,
                             scratch_pool));
 
   *kind = svn__kind_from_node_kind(node_kind, FALSE);
@@ -1335,12 +1338,15 @@ fetch_props_func(apr_hash_t **props,
   struct edit_baton *eb = baton;
   svn_node_kind_t node_kind;
 
-  SVN_ERR(svn_ra_check_path(eb->ra_session, path, eb->revision, &node_kind,
+  if (!SVN_IS_VALID_REVNUM(base_revision))
+    base_revision = eb->revision;
+
+  SVN_ERR(svn_ra_check_path(eb->ra_session, path, base_revision, &node_kind,
                             scratch_pool));
 
   if (node_kind == svn_node_file)
     {
-      SVN_ERR(svn_ra_get_file(eb->ra_session, path, eb->revision,
+      SVN_ERR(svn_ra_get_file(eb->ra_session, path, base_revision,
                               NULL, NULL, props, result_pool));
     }
   else if (node_kind == svn_node_dir)
@@ -1348,7 +1354,7 @@ fetch_props_func(apr_hash_t **props,
       apr_array_header_t *tmp_props;
 
       SVN_ERR(svn_ra_get_dir2(eb->ra_session, NULL, NULL, props, path,
-                              eb->revision, 0 /* Dirent fields */,
+                              base_revision, 0 /* Dirent fields */,
                               result_pool));
       tmp_props = svn_prop_hash_to_array(*props, result_pool);
       SVN_ERR(svn_categorize_props(tmp_props, NULL, NULL, &tmp_props,
@@ -1375,11 +1381,14 @@ fetch_base_func(const char **filename,
   svn_stream_t *fstream;
   svn_error_t *err;
 
+  if (!SVN_IS_VALID_REVNUM(base_revision))
+    base_revision = eb->revision;
+
   SVN_ERR(svn_stream_open_unique(&fstream, filename, NULL,
                                  svn_io_file_del_on_pool_cleanup,
                                  result_pool, scratch_pool));
 
-  err = svn_ra_get_file(eb->ra_session, path, eb->revision,
+  err = svn_ra_get_file(eb->ra_session, path, base_revision,
                         fstream, NULL, NULL, scratch_pool);
   if (err && err->apr_err == SVN_ERR_FS_NOT_FOUND)
     {
@@ -1391,7 +1400,7 @@ fetch_base_func(const char **filename,
     }
   else if (err)
     return svn_error_trace(err);
-  
+
   SVN_ERR(svn_stream_close(fstream));
 
   return SVN_NO_ERROR;