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/14 20:40:24 UTC

svn commit: r1300696 [1/6] - in /subversion/branches/fix-rdump-editor: ./ build/generator/ build/win32/ notes/ notes/directory-index/ subversion/bindings/javahl/ subversion/bindings/javahl/native/ subversion/bindings/javahl/tests/org/apache/subversion/...

Author: hwright
Date: Wed Mar 14 19:40:19 2012
New Revision: 1300696

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

FWIW, this work still needs to be done, I just don't have the cycles to do it
currently.  But I'd still like to make sure the branch doesn't fall too far
out-of-date.

Added:
    subversion/branches/fix-rdump-editor/notes/directory-index/
      - copied from r1300690, subversion/trunk/notes/directory-index/
    subversion/branches/fix-rdump-editor/tools/server-side/svnpubsub/
      - copied from r1295003, subversion/trunk/tools/server-side/svnpubsub/
    subversion/branches/fix-rdump-editor/tools/server-side/svnpubsub/daemonize.py
      - copied unchanged from r1300690, subversion/trunk/tools/server-side/svnpubsub/daemonize.py
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/build/generator/gen_win.py
    subversion/branches/fix-rdump-editor/build/win32/make_dist.py
    subversion/branches/fix-rdump-editor/build/win32/vc6-build.bat.in
    subversion/branches/fix-rdump-editor/notes/subversion-design.html
    subversion/branches/fix-rdump-editor/subversion/bindings/javahl/README
    subversion/branches/fix-rdump-editor/subversion/bindings/javahl/native/ClientContext.cpp
    subversion/branches/fix-rdump-editor/subversion/bindings/javahl/native/File.cpp
    subversion/branches/fix-rdump-editor/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
    subversion/branches/fix-rdump-editor/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/include/svn_types.swg
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/svn/repos.py
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/ruby/test/test_repos.rb
    subversion/branches/fix-rdump-editor/subversion/bindings/swig/ruby/test/util.rb
    subversion/branches/fix-rdump-editor/subversion/include/private/svn_cache.h
    subversion/branches/fix-rdump-editor/subversion/include/private/svn_cmdline_private.h
    subversion/branches/fix-rdump-editor/subversion/include/private/svn_mergeinfo_private.h
    subversion/branches/fix-rdump-editor/subversion/include/private/svn_mutex.h
    subversion/branches/fix-rdump-editor/subversion/include/private/svn_repos_private.h
    subversion/branches/fix-rdump-editor/subversion/include/private/svn_wc_private.h
    subversion/branches/fix-rdump-editor/subversion/include/svn_client.h
    subversion/branches/fix-rdump-editor/subversion/include/svn_delta.h
    subversion/branches/fix-rdump-editor/subversion/include/svn_editor.h
    subversion/branches/fix-rdump-editor/subversion/include/svn_error.h
    subversion/branches/fix-rdump-editor/subversion/include/svn_fs.h
    subversion/branches/fix-rdump-editor/subversion/include/svn_ra_svn.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_client/commit.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/mergeinfo.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_client/ra.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_client/repos_diff.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_delta/svndiff.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_delta/text_delta.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_delta/xdelta.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs/fs-loader.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs/fs-loader.h
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs_base/bdb/env.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs_base/fs.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs_base/notes/structure
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs_fs/fs.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs_fs/fs.h
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs_fs/fs_fs.h
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs_fs/rep-cache-db.sql
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs_fs/rep-cache.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs_fs/rep-cache.h
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs_fs/temp_serializer.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs_fs/temp_serializer.h
    subversion/branches/fix-rdump-editor/subversion/libsvn_fs_fs/tree.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra_local/ra_plugin.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra_neon/log.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_svn/cyrus_auth.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_ra_svn/marshal.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_repos/commit.c
    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/load-fs-vtable.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_repos/rev_hunt.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/mergeinfo.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_subr/skel.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_subr/stream.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_subr/svn_mutex.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_subr/svn_string.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_subr/utf.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_wc/adm_crawler.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_wc/adm_ops.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_wc/entries.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_wc/externals.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_wc/props.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/util.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_wc/wc_db.c
    subversion/branches/fix-rdump-editor/subversion/libsvn_wc/wc_db.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/mod_dav_svn/mod_dav_svn.c
    subversion/branches/fix-rdump-editor/subversion/mod_dav_svn/repos.c
    subversion/branches/fix-rdump-editor/subversion/mod_dav_svn/version.c
    subversion/branches/fix-rdump-editor/subversion/po/de.po
    subversion/branches/fix-rdump-editor/subversion/svn/cat-cmd.c
    subversion/branches/fix-rdump-editor/subversion/svn/list-cmd.c
    subversion/branches/fix-rdump-editor/subversion/svn/log-cmd.c
    subversion/branches/fix-rdump-editor/subversion/svn/main.c
    subversion/branches/fix-rdump-editor/subversion/svn/proplist-cmd.c
    subversion/branches/fix-rdump-editor/subversion/svn/status.c
    subversion/branches/fix-rdump-editor/subversion/svnadmin/main.c
    subversion/branches/fix-rdump-editor/subversion/svndumpfilter/main.c
    subversion/branches/fix-rdump-editor/subversion/svnlook/main.c
    subversion/branches/fix-rdump-editor/subversion/svnrdump/dump_editor.c
    subversion/branches/fix-rdump-editor/subversion/svnserve/main.c
    subversion/branches/fix-rdump-editor/subversion/svnserve/serve.c
    subversion/branches/fix-rdump-editor/subversion/svnversion/main.c
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/README
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/authz_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/basic_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/checkout_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/commit_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/depth_tests.py
    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/info_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/merge_authz_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/merge_reintegrate_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/merge_tests.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/mergeinfo_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/svndumpfilter_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/actions.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/svntest/factory.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/tree.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/svntest/verify.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/svntest/wc.py
    subversion/branches/fix-rdump-editor/subversion/tests/cmdline/tree_conflict_tests.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/subversion/tests/libsvn_client/client-test.c
    subversion/branches/fix-rdump-editor/subversion/tests/libsvn_diff/diff-diff3-test.c
    subversion/branches/fix-rdump-editor/subversion/tests/libsvn_subr/spillbuf-test.c
    subversion/branches/fix-rdump-editor/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/fix-rdump-editor/subversion/tests/libsvn_wc/wc-incomplete-tester.c
    subversion/branches/fix-rdump-editor/tools/buildbot/slaves/ubuntu-x64/svnbuild.sh
    subversion/branches/fix-rdump-editor/tools/client-side/detach.py
    subversion/branches/fix-rdump-editor/tools/client-side/mergeinfo-sanitizer.py
    subversion/branches/fix-rdump-editor/tools/dev/merge-graph.py
    subversion/branches/fix-rdump-editor/tools/dev/mergegraph/mergegraph.py
    subversion/branches/fix-rdump-editor/tools/dev/which-error.py
    subversion/branches/fix-rdump-editor/tools/dev/windows-build/Makefile
    subversion/branches/fix-rdump-editor/tools/diff/diff.c
    subversion/branches/fix-rdump-editor/tools/dist/backport.pl
    subversion/branches/fix-rdump-editor/tools/dist/release.py
    subversion/branches/fix-rdump-editor/tools/server-side/svnpredumpfilter.py
    subversion/branches/fix-rdump-editor/tools/server-side/svnpubsub/README.txt
    subversion/branches/fix-rdump-editor/tools/server-side/svnpubsub/rc.d/svnwcsub
    subversion/branches/fix-rdump-editor/tools/server-side/svnpubsub/rc.d/svnwcsub.debian
    subversion/branches/fix-rdump-editor/tools/server-side/svnpubsub/rc.d/svnwcsub.solaris
    subversion/branches/fix-rdump-editor/tools/server-side/svnpubsub/svnpubsub/client.py
    subversion/branches/fix-rdump-editor/tools/server-side/svnpubsub/svnpubsub/server.py
    subversion/branches/fix-rdump-editor/tools/server-side/svnpubsub/svntweet.py
    subversion/branches/fix-rdump-editor/tools/server-side/svnpubsub/svnwcsub.py
    subversion/branches/fix-rdump-editor/tools/server-side/svnpubsub/test.conf
    subversion/branches/fix-rdump-editor/tools/server-side/svnpubsub/watcher.py

Propchange: subversion/branches/fix-rdump-editor/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Mar 14 19:40:19 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:1242650-1294190
+/subversion/trunk:1242650-1295003,1295006-1300690

Modified: subversion/branches/fix-rdump-editor/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/CHANGES?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/CHANGES (original)
+++ subversion/branches/fix-rdump-editor/CHANGES Wed Mar 14 19:40:19 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/fix-rdump-editor/COMMITTERS
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/COMMITTERS?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/COMMITTERS [UTF-8] (original)
+++ subversion/branches/fix-rdump-editor/COMMITTERS [UTF-8] Wed Mar 14 19:40:19 2012
@@ -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/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=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/build/generator/gen_win.py (original)
+++ subversion/branches/fix-rdump-editor/build/generator/gen_win.py Wed Mar 14 19:40:19 2012
@@ -1160,7 +1160,7 @@ class WinGeneratorBase(GeneratorBase):
                                               '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', os.path.relpath(zlib_path,
                                                        self.projfilesdir)),
@@ -1269,7 +1269,7 @@ class WinGeneratorBase(GeneratorBase):
              % (msg, self.perl_lib))
     finally:
       fp.close()
-      
+
     fp = os.popen('perl -MConfig -e ' + escape_shell_arg(
                   'print $Config{archlib}'), 'r')
     try:

Modified: subversion/branches/fix-rdump-editor/build/win32/make_dist.py
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/build/win32/make_dist.py?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/build/win32/make_dist.py (original)
+++ subversion/branches/fix-rdump-editor/build/win32/make_dist.py Wed Mar 14 19:40:19 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/fix-rdump-editor/build/win32/vc6-build.bat.in
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/build/win32/vc6-build.bat.in?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/build/win32/vc6-build.bat.in (original)
+++ subversion/branches/fix-rdump-editor/build/win32/vc6-build.bat.in Wed Mar 14 19:40:19 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/fix-rdump-editor/notes/subversion-design.html
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/notes/subversion-design.html?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/notes/subversion-design.html (original)
+++ subversion/branches/fix-rdump-editor/notes/subversion-design.html Wed Mar 14 19:40:19 2012
@@ -2340,7 +2340,10 @@ 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>.
+        (Some details in that document are specific to the BDB-based
+        filesystem implementation.  Details specific to FSFS are recorded in
+        <tt class="filename">subversion/libsvn_fs_fs/structure</tt>.)</p>
 
       <p>Finally, read the well-documented API in
         <tt class="filename">subversion/include/svn_fs.h</tt>.</p>

Modified: subversion/branches/fix-rdump-editor/subversion/bindings/javahl/README
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/bindings/javahl/README?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/bindings/javahl/README (original)
+++ subversion/branches/fix-rdump-editor/subversion/bindings/javahl/README Wed Mar 14 19:40:19 2012
@@ -5,7 +5,7 @@ JavaHL provides a (mostly native, using 
 a high level Java API for Subversion, which was originally targeted for
 implementors of GUI clients and IDE plug-ins for Subversion.  JavaHL
 currently provides a minimal-but-complete set of APIs which expose the
-core Subversion C API to Java.  It requires a JRE 1.2+ (runtime).
+core Subversion C API to Java.  It requires a JRE 1.5+ (runtime).
 
 It is currently quite mature, and can be considered for production use.
 
@@ -14,7 +14,7 @@ Build system
 ------------
 
 JavaHL should compile and run under Linux, Win32, and Mac OS X with a
-JDK 1.3+.
+JDK 1.5+.
 
 Its build will produce both a native library (libsvnjavahl-1.so on Unix
 or libsvnjavahl-1.dll on Win32) and a platform independent archive of
@@ -62,9 +62,6 @@ Success stories
 
 Subclipse, Eclipse IDE plug-in <http://subclipse.tigris.org/>
 
-Svn-Up, Swing GUI and plug-in for the IDEA IDE
-<http://svnup.tigris.org/>
-
 
 Why not 100% pure Java?
 -----------------------

Modified: subversion/branches/fix-rdump-editor/subversion/bindings/javahl/native/ClientContext.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/bindings/javahl/native/ClientContext.cpp?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/bindings/javahl/native/ClientContext.cpp (original)
+++ subversion/branches/fix-rdump-editor/subversion/bindings/javahl/native/ClientContext.cpp Wed Mar 14 19:40:19 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/fix-rdump-editor/subversion/bindings/javahl/native/File.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/bindings/javahl/native/File.cpp?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/bindings/javahl/native/File.cpp (original)
+++ subversion/branches/fix-rdump-editor/subversion/bindings/javahl/native/File.cpp Wed Mar 14 19:40:19 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/fix-rdump-editor/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/fix-rdump-editor/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Wed Mar 14 19:40:19 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/fix-rdump-editor/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java (original)
+++ subversion/branches/fix-rdump-editor/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java Wed Mar 14 19:40:19 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/fix-rdump-editor/subversion/bindings/swig/include/svn_types.swg
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/bindings/swig/include/svn_types.swg?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/bindings/swig/include/svn_types.swg (original)
+++ subversion/branches/fix-rdump-editor/subversion/bindings/swig/include/svn_types.swg Wed Mar 14 19:40:19 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,

Modified: subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/svn/repos.py
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/svn/repos.py?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/svn/repos.py (original)
+++ subversion/branches/fix-rdump-editor/subversion/bindings/swig/python/svn/repos.py Wed Mar 14 19:40:19 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/fix-rdump-editor/subversion/bindings/swig/ruby/test/test_repos.rb
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/bindings/swig/ruby/test/test_repos.rb?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/bindings/swig/ruby/test/test_repos.rb (original)
+++ subversion/branches/fix-rdump-editor/subversion/bindings/swig/ruby/test/test_repos.rb Wed Mar 14 19:40:19 2012
@@ -94,7 +94,7 @@ class SvnReposTest < Test::Unit::TestCas
   end
 
   def test_create
-    tmp_repos_path = File.join(@tmp_path, "repos")
+    tmp_repos_path = File.join(@tmp_path, "repos2")
     fs_type = Svn::Fs::TYPE_FSFS
     fs_config = {Svn::Fs::CONFIG_FS_TYPE => fs_type}
     repos = nil

Modified: subversion/branches/fix-rdump-editor/subversion/bindings/swig/ruby/test/util.rb
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/bindings/swig/ruby/test/util.rb?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/bindings/swig/ruby/test/util.rb (original)
+++ subversion/branches/fix-rdump-editor/subversion/bindings/swig/ruby/test/util.rb Wed Mar 14 19:40:19 2012
@@ -37,15 +37,17 @@ module SvnTestUtil
     @author = ENV["USER"] || "sample-user"
     @password = "sample-password"
     @realm = "sample realm"
-    @repos_path = "repos"
-    @full_repos_path = File.expand_path(@repos_path)
-    @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_path = File.join(@wc_base_dir, "wc")
+
+    @tmp_path = Dir.mktmpdir
+    @wc_path = File.join(@tmp_path, "wc")
     @full_wc_path = File.expand_path(@wc_path)
-    @tmp_path = "tmp"
+    @repos_path = File.join(@tmp_path, "repos")
+    @full_repos_path = File.expand_path(@repos_path)
+    @repos_uri = "file://#{@full_repos_path.sub(/^\/?/, '/')}"
+
     @config_path = "config"
     @greek = Greek.new(@tmp_path, @wc_path, @repos_uri)
   end
@@ -140,7 +142,7 @@ module SvnTestUtil
   end
 
   def teardown_wc
-    remove_recursively_with_retry(@wc_base_dir)
+    remove_recursively_with_retry(@wc_path)
   end
 
   def setup_config

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=1300696&r1=1300695&r2=1300696&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 Wed Mar 14 19:40:19 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/fix-rdump-editor/subversion/include/private/svn_cmdline_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/include/private/svn_cmdline_private.h?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/private/svn_cmdline_private.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/private/svn_cmdline_private.h Wed Mar 14 19:40:19 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/fix-rdump-editor/subversion/include/private/svn_mergeinfo_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/include/private/svn_mergeinfo_private.h?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/private/svn_mergeinfo_private.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/private/svn_mergeinfo_private.h Wed Mar 14 19:40:19 2012
@@ -99,9 +99,10 @@ svn_mergeinfo__remove_empty_rangelists(s
 
 /* Make a shallow (ie, mergeinfos are not duped, or altered at all;
    keys share storage) copy of IN_CATALOG in *OUT_CATALOG, removing
-   PREFIX_PATH (which is an absolute path) from the beginning of each
-   key in the catalog (each of which is also an absolute path).  It is
-   illegal for any key to not start with PREFIX_PATH.  The new hash
+   PREFIX_PATH from the beginning of each key in the catalog.
+   PREFIX_PATH and the keys of IN_CATALOG are absolute 'fspaths',
+   starting with '/'.  It is illegal for any key to not start with
+   PREFIX_PATH.  The keys of *OUT_CATALOG are relpaths.  The new hash
    and temporary values are allocated in POOL.  (This is useful for
    making the return value from svn_ra_get_mergeinfo relative to the
    session root, say.) */

Modified: subversion/branches/fix-rdump-editor/subversion/include/private/svn_mutex.h
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/include/private/svn_mutex.h?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/private/svn_mutex.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/private/svn_mutex.h Wed Mar 14 19:40:19 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/fix-rdump-editor/subversion/include/private/svn_repos_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/include/private/svn_repos_private.h?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/private/svn_repos_private.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/private/svn_repos_private.h Wed Mar 14 19:40:19 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/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=1300696&r1=1300695&r2=1300696&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 Wed Mar 14 19:40:19 2012
@@ -549,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/fix-rdump-editor/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/include/svn_client.h?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/svn_client.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/svn_client.h Wed Mar 14 19:40:19 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/fix-rdump-editor/subversion/include/svn_delta.h
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/include/svn_delta.h?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/svn_delta.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/svn_delta.h Wed Mar 14 19:40:19 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/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=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/svn_editor.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/svn_editor.h Wed Mar 14 19:40:19 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/fix-rdump-editor/subversion/include/svn_error.h
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/include/svn_error.h?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/svn_error.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/svn_error.h Wed Mar 14 19:40:19 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/fix-rdump-editor/subversion/include/svn_fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/include/svn_fs.h?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/svn_fs.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/svn_fs.h Wed Mar 14 19:40:19 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/fix-rdump-editor/subversion/include/svn_ra_svn.h
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/include/svn_ra_svn.h?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/svn_ra_svn.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/svn_ra_svn.h Wed Mar 14 19:40:19 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/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=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/svn_repos.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/svn_repos.h Wed Mar 14 19:40:19 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.
  *
@@ -1780,6 +1780,8 @@ svn_repos_get_logs(svn_repos_t *repos,
  * set @a *catalog to a catalog of this mergeinfo.  @a *catalog will
  * never be @c NULL but may be empty.
  *
+ * The paths in @a paths, and the keys of @a catalog, start with '/'.
+ *
  * @a inherit indicates whether explicit, explicit or inherited, or
  * only inherited mergeinfo for @a paths is fetched.
  *

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=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/include/svn_wc.h (original)
+++ subversion/branches/fix-rdump-editor/subversion/include/svn_wc.h Wed Mar 14 19:40:19 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/fix-rdump-editor/subversion/libsvn_client/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/libsvn_client/commit.c?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/libsvn_client/commit.c (original)
+++ subversion/branches/fix-rdump-editor/subversion/libsvn_client/commit.c Wed Mar 14 19:40:19 2012
@@ -671,16 +671,22 @@ 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(base_dir_abspath, relpath, pool);
+      anchor_abspath = svn_dirent_join(wcroot_abspath, relpath, pool);
     }
   else
+#endif
     anchor_abspath = NULL;
 
   /* Fetch RA commit editor. */
@@ -1273,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 *) =
@@ -1509,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/fix-rdump-editor/subversion/libsvn_client/diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/libsvn_client/diff.c?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/libsvn_client/diff.c (original)
+++ subversion/branches/fix-rdump-editor/subversion/libsvn_client/diff.c Wed Mar 14 19:40:19 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/fix-rdump-editor/subversion/libsvn_client/externals.c
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/libsvn_client/externals.c?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/libsvn_client/externals.c (original)
+++ subversion/branches/fix-rdump-editor/subversion/libsvn_client/externals.c Wed Mar 14 19:40:19 2012
@@ -138,6 +138,8 @@ switch_dir_external(const char *local_ab
   svn_revnum_t external_peg_rev = SVN_INVALID_REVNUM;
   svn_revnum_t external_rev = SVN_INVALID_REVNUM;
   apr_pool_t *subpool = svn_pool_create(pool);
+  const char *repos_root_url;
+  const char *repos_uuid;
 
   SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
 
@@ -168,9 +170,6 @@ switch_dir_external(const char *local_ab
 
       if (node_url)
         {
-          const char *repos_root_url;
-          const char *repos_uuid;
-
           /* If we have what appears to be a version controlled
              subdir, and its top-level URL matches that of our
              externals definition, perform an update. */
@@ -183,7 +182,7 @@ switch_dir_external(const char *local_ab
                                                   timestamp_sleep,
                                                   ctx, subpool));
               svn_pool_destroy(subpool);
-              return SVN_NO_ERROR;
+              goto cleanup;
             }
 
           SVN_ERR(svn_wc__node_get_repos_info(&repos_root_url, &repos_uuid,
@@ -243,7 +242,7 @@ switch_dir_external(const char *local_ab
                                                 subpool));
 
               svn_pool_destroy(subpool);
-              return SVN_NO_ERROR;
+              goto cleanup;
             }
         }
     }
@@ -281,28 +280,25 @@ switch_dir_external(const char *local_ab
                                         FALSE, FALSE, timestamp_sleep,
                                         ctx, pool));
 
-  {
-    const char *repos_root_url;
-    const char *repos_uuid;
+  SVN_ERR(svn_wc__node_get_repos_info(&repos_root_url,
+                                      &repos_uuid,
+                                      ctx->wc_ctx, local_abspath,
+                                      pool, pool));
+
+  SVN_ERR(svn_wc__external_register(ctx->wc_ctx,
+                                    defining_abspath,
+                                    local_abspath, svn_node_dir,
+                                    repos_root_url, repos_uuid,
+                                    svn_uri_skip_ancestor(repos_root_url,
+                                                          url, pool),
+                                    external_peg_rev,
+                                    external_rev,
+                                    pool));
 
-    SVN_ERR(svn_wc__node_get_repos_info(&repos_root_url,
-                                        &repos_uuid,
-                                        ctx->wc_ctx, local_abspath,
-                                        pool, pool));
-
-    SVN_ERR(svn_wc__external_register(ctx->wc_ctx,
-                                      defining_abspath,
-                                      local_abspath, svn_node_dir,
-                                      repos_root_url, repos_uuid,
-                                      svn_uri_skip_ancestor(repos_root_url,
-                                                            url, pool),
-                                      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));
-  }
+ cleanup:
+  /* Issues #4123 and #4130: 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;
 }
@@ -696,8 +692,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
@@ -781,10 +777,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/fix-rdump-editor/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/libsvn_client/merge.c?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/fix-rdump-editor/subversion/libsvn_client/merge.c Wed Mar 14 19:40:19 2012
@@ -1394,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,
@@ -1424,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,
@@ -3476,8 +3476,8 @@ fix_deleted_subtree_ranges(const merge_s
    is older than START, then the base revision is used as the younger
    bound in place of START.
 
-   RA_SESSION is an open RA session to the repository in which SOURCE lives.
-   It may be temporarily reparented as needed by this function.
+   RA_SESSION is an RA session open to the repository in which TARGET_ABSPATH
+   lives.  It may be temporarily reparented as needed by this function.
 
    Allocate *RECORDED_MERGEINFO and *IMPLICIT_MERGEINFO in RESULT_POOL.
    Use SCRATCH_POOL for any temporary allocations. */
@@ -3570,7 +3570,7 @@ get_full_mergeinfo(svn_mergeinfo_t *reco
 
 /* Helper for ensure_implicit_mergeinfo().
 
-   PARENT, CHILD, REVISION1, REVISION2, RA_SESSION, and CTX
+   PARENT, CHILD, REVISION1, REVISION2 and CTX
    are all cascaded from the arguments of the same names in
    ensure_implicit_mergeinfo().  PARENT and CHILD must both exist, i.e.
    this function should never be called where CHILD is the merge target.
@@ -3580,6 +3580,9 @@ get_full_mergeinfo(svn_mergeinfo_t *reco
    Set CHILD->IMPLICIT_MERGEINFO to the mergeinfo inherited from
    PARENT->IMPLICIT_MERGEINFO.  CHILD->IMPLICIT_MERGEINFO is allocated
    in RESULT_POOL.
+
+   RA_SESSION is an RA session open to the repository that contains CHILD.
+   It may be temporarily reparented by this function.
    */
 static svn_error_t *
 inherit_implicit_mergeinfo_from_parent(svn_client__merge_path_t *parent,
@@ -3630,7 +3633,10 @@ inherit_implicit_mergeinfo_from_parent(s
    PARENT->IMPLICIT_MERGEINFO, otherwise contact the repository.  Use
    SCRATCH_POOL for all temporary allocations.
 
-   PARENT, CHILD, REVISION1, REVISION2, RA_SESSION, and
+   RA_SESSION is an RA session open to the repository that contains CHILD.
+   It may be temporarily reparented by this function.
+
+   PARENT, CHILD, REVISION1, REVISION2 and
    CTX are all cascaded from the arguments of the same name in
    filter_merged_revisions() and the same conditions for that function
    hold here. */
@@ -7545,7 +7551,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
@@ -9261,7 +9267,7 @@ target_node_location(merge_target_t **ta
   merge_target_t *target = apr_palloc(result_pool, sizeof(*target));
   const char *relpath;
 
-  target->abspath = wc_abspath;
+  target->abspath = apr_pstrdup(result_pool, wc_abspath);
   SVN_ERR(svn_wc_read_kind(&target->kind, ctx->wc_ctx, wc_abspath, FALSE,
                            scratch_pool));
   SVN_ERR(svn_wc__node_get_origin(NULL /* is_copy */,
@@ -10396,7 +10402,18 @@ calculate_left_hand_side(const char **ur
   return SVN_NO_ERROR;
 }
 
-/* The body of svn_client_find_reintegrate_merge(), which see for details. */
+/* Determine the URLs and revisions needed to perform a reintegrate merge
+ * from SOURCE_PATH_OR_URL at SOURCE_PEG_REVISION into the working
+ * copy at TARGET.
+ *
+ * Set *TARGET_RA_SESSION_P and *SOURCE_RA_SESSION_P to new RA sessions
+ * opened to the target and source branches respectively.  Set *SOURCE_P to
+ * the source-left and source-right locations of the required merge.  Set
+ * *YC_ANCESTOR_REV_P to the revision number of the youngest ancestor.
+ * Any of these output pointers may be NULL if not wanted.
+ *
+ * See svn_client_find_reintegrate_merge() for other details.
+ */
 static svn_error_t *
 find_reintegrate_merge(svn_ra_session_t **target_ra_session_p,
                        svn_ra_session_t **source_ra_session_p,
@@ -10404,7 +10421,7 @@ find_reintegrate_merge(svn_ra_session_t 
                        svn_revnum_t *yc_ancestor_rev_p,
                        const char *source_path_or_url,
                        const svn_opt_revision_t *source_peg_revision,
-                       const char *target_abspath,
+                       const merge_target_t *target,
                        svn_client_ctx_t *ctx,
                        apr_pool_t *result_pool,
                        apr_pool_t *scratch_pool)
@@ -10412,10 +10429,9 @@ find_reintegrate_merge(svn_ra_session_t 
   url_uuid_t source_repos_root;
   svn_ra_session_t *target_ra_session;
   svn_ra_session_t *source_ra_session;
-  const char *source_repos_rel_path, *target_repos_rel_path;
+  const char *source_url, *source_repos_rel_path, *target_repos_rel_path;
   const char *yc_ancestor_relpath;
   svn_revnum_t yc_ancestor_rev;
-  merge_target_t *target;
   merge_source_t source;
   svn_mergeinfo_t unmerged_to_source_mergeinfo_catalog;
   svn_mergeinfo_t merged_to_source_mergeinfo_catalog;
@@ -10423,20 +10439,17 @@ find_reintegrate_merge(svn_ra_session_t 
   apr_hash_t *subtrees_with_mergeinfo;
 
   /* Make sure we're dealing with a real URL. */
-  SVN_ERR(svn_client_url_from_path2(&source.url2, source_path_or_url, ctx,
+  SVN_ERR(svn_client_url_from_path2(&source_url, source_path_or_url, ctx,
                                     scratch_pool, scratch_pool));
-  if (! source.url2)
+  if (! source_url)
     return svn_error_createf(SVN_ERR_ENTRY_MISSING_URL, NULL,
                              _("'%s' has no URL"),
                              svn_dirent_local_style(source_path_or_url,
                                                     scratch_pool));
 
-  SVN_ERR(target_node_location(&target, target_abspath,
-                               ctx, scratch_pool, scratch_pool));
-
   /* Determine the source's repository root URL. */
   SVN_ERR(svn_client_get_repos_root(&source_repos_root.url,
-                                    &source_repos_root.uuid, source.url2,
+                                    &source_repos_root.uuid, source_url,
                                     ctx, scratch_pool, scratch_pool));
 
   /* source_repos_root and target->repos_root are required to be the same,
@@ -10445,12 +10458,13 @@ find_reintegrate_merge(svn_ra_session_t 
                            svn_dirent_local_style(source_path_or_url,
                                                   scratch_pool),
                            &target->repos_root,
-                           svn_dirent_local_style(target_abspath, scratch_pool),
+                           svn_dirent_local_style(target->abspath,
+                                                  scratch_pool),
                            TRUE /* strict_urls */, scratch_pool));
 
   /* A reintegrate merge requires the merge target to reflect a subtree
    * of the repository as found at a single revision. */
-  SVN_ERR(ensure_wc_is_suitable_merge_target(target_abspath, ctx,
+  SVN_ERR(ensure_wc_is_suitable_merge_target(target->abspath, ctx,
                                              FALSE, FALSE, FALSE,
                                              scratch_pool));
 
@@ -10458,12 +10472,12 @@ find_reintegrate_merge(svn_ra_session_t 
      the default revision for the left side of our merge, since that's
      what the repository sub-tree is required to be up to date with
      (with regard to the WC). */
-  source.rev1 = target->rev;
+  /* ### Bogus/obsolete comment? */
 
-  source_repos_rel_path = svn_uri_skip_ancestor(target->repos_root.url, source.url2,
+  source_repos_rel_path = svn_uri_skip_ancestor(target->repos_root.url, source_url,
                                                 scratch_pool);
   SVN_ERR(svn_client__path_relative_to_root(&target_repos_rel_path,
-                                            ctx->wc_ctx, target_abspath,
+                                            ctx->wc_ctx, target->abspath,
                                             NULL, FALSE, NULL,
                                             scratch_pool, scratch_pool));
 
@@ -10476,7 +10490,7 @@ find_reintegrate_merge(svn_ra_session_t 
 
   /* Find all the subtrees in TARGET_WCPATH that have explicit mergeinfo. */
   err = get_wc_explicit_mergeinfo_catalog(&subtrees_with_mergeinfo,
-                                          target_abspath, svn_depth_infinity,
+                                          target->abspath, svn_depth_infinity,
                                           ctx, scratch_pool, scratch_pool);
   /* Issue #3896: If invalid mergeinfo in the reintegrate target
      prevents us from proceeding, then raise the best error possible. */
@@ -10486,21 +10500,21 @@ find_reintegrate_merge(svn_ra_session_t 
 
   /* Open two RA sessions, one to our source and one to our target. */
   SVN_ERR(svn_client__ra_session_from_path(&source_ra_session, &source.rev2, &source.url2,
-                                           source.url2, NULL, source_peg_revision,
+                                           source_url, NULL, source_peg_revision,
                                            source_peg_revision,
                                            ctx, result_pool));
   SVN_ERR(svn_client__open_ra_session_internal(&target_ra_session, NULL,
                                                target->url,
                                                NULL, NULL, FALSE, FALSE,
-                                               ctx, scratch_pool));
+                                               ctx, result_pool));
 
   SVN_ERR(calculate_left_hand_side(&source.url1, &source.rev1,
                                    &merged_to_source_mergeinfo_catalog,
                                    &unmerged_to_source_mergeinfo_catalog,
-                                   target_abspath,
+                                   target->abspath,
                                    target_repos_rel_path,
                                    subtrees_with_mergeinfo,
-                                   source.rev1,
+                                   target->rev,
                                    source_repos_rel_path,
                                    source_repos_root.url,
                                    source.rev2,
@@ -10605,13 +10619,16 @@ svn_client_find_reintegrate_merge(const 
                                   apr_pool_t *scratch_pool)
 {
   const char *target_abspath;
+  merge_target_t *target;
   merge_source_t *source;
 
   SVN_ERR(svn_dirent_get_absolute(&target_abspath, target_wcpath,
                                   scratch_pool));
+  SVN_ERR(target_node_location(&target, target_abspath,
+                               ctx, scratch_pool, scratch_pool));
   SVN_ERR(find_reintegrate_merge(NULL, NULL, &source, NULL,
                                  source_path_or_url, source_peg_revision,
-                                 target_abspath,
+                                 target,
                                  ctx, result_pool, scratch_pool));
   if (source)
     {
@@ -10653,7 +10670,7 @@ merge_reintegrate_locked(const char *sou
   SVN_ERR(find_reintegrate_merge(&target_ra_session, &source_ra_session,
                                  &source, &yc_ancestor_rev,
                                  source_path_or_url, source_peg_revision,
-                                 target_abspath,
+                                 target,
                                  ctx, scratch_pool, scratch_pool));
 
   if (! source)

Modified: subversion/branches/fix-rdump-editor/subversion/libsvn_client/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/libsvn_client/mergeinfo.c?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/libsvn_client/mergeinfo.c (original)
+++ subversion/branches/fix-rdump-editor/subversion/libsvn_client/mergeinfo.c Wed Mar 14 19:40:19 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/fix-rdump-editor/subversion/libsvn_client/ra.c
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/libsvn_client/ra.c?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/libsvn_client/ra.c (original)
+++ subversion/branches/fix-rdump-editor/subversion/libsvn_client/ra.c Wed Mar 14 19:40:19 2012
@@ -52,10 +52,6 @@ typedef struct callback_baton_t
      this base directory. */
   const char *base_dir_abspath;
 
-  /* When true, makes sure temporary files are created
-     outside the working copy. */
-  svn_boolean_t read_only_wc;
-
   /* An array of svn_client_commit_item3_t * structures, present only
      during working copy commits. */
   const apr_array_header_t *commit_items;
@@ -63,9 +59,6 @@ typedef struct callback_baton_t
   /* A client context. */
   svn_client_ctx_t *ctx;
 
-  /* The pool to use for session-related items. */
-  apr_pool_t *pool;
-
 } callback_baton_t;
 
 
@@ -293,8 +286,6 @@ svn_client__open_ra_session_internal(svn
   cbtable->get_client_string = get_client_string;
 
   cb->base_dir_abspath = base_dir_abspath;
-  cb->read_only_wc = read_only_wc;
-  cb->pool = pool;
   cb->commit_items = commit_items;
   cb->ctx = ctx;
 

Modified: subversion/branches/fix-rdump-editor/subversion/libsvn_client/repos_diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/libsvn_client/repos_diff.c?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/libsvn_client/repos_diff.c (original)
+++ subversion/branches/fix-rdump-editor/subversion/libsvn_client/repos_diff.c Wed Mar 14 19:40:19 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;

Modified: subversion/branches/fix-rdump-editor/subversion/libsvn_client/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/libsvn_client/util.c?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/libsvn_client/util.c (original)
+++ subversion/branches/fix-rdump-editor/subversion/libsvn_client/util.c Wed Mar 14 19:40:19 2012
@@ -248,6 +248,34 @@ struct shim_callbacks_baton
 };
 
 static svn_error_t *
+rationalize_shim_path(const char **local_abspath,
+                      struct shim_callbacks_baton *scb,
+                      const char *path,
+                      apr_pool_t *result_pool,
+                      apr_pool_t *scratch_pool)
+{
+  if (svn_path_is_url(path))
+    {
+      /* This is a copyfrom URL */
+      const char *wcroot_abspath;
+      const char *wcroot_url;
+      const char *relpath;
+
+      SVN_ERR(svn_wc__get_wc_root(&wcroot_abspath, scb->wc_ctx,
+                                  scb->anchor_abspath,
+                                  scratch_pool, scratch_pool));
+      SVN_ERR(svn_wc__node_get_url(&wcroot_url, scb->wc_ctx, wcroot_abspath,
+                                   scratch_pool, scratch_pool));
+      relpath = svn_uri_skip_ancestor(wcroot_url, path, scratch_pool);
+      *local_abspath = svn_dirent_join(wcroot_abspath, relpath, result_pool);
+    }
+  else
+    *local_abspath = svn_dirent_join(scb->anchor_abspath, path, result_pool);
+
+  return SVN_NO_ERROR;
+}
+
+static svn_error_t *
 fetch_props_func(apr_hash_t **props,
                  void *baton,
                  const char *path,
@@ -256,12 +284,25 @@ fetch_props_func(apr_hash_t **props,
                  apr_pool_t *scratch_pool)
 {
   struct shim_callbacks_baton *scb = baton;
-  const char *local_abspath = svn_dirent_join(scb->anchor_abspath, path,
-                                              scratch_pool);
+  const char *local_abspath;
+
+  /* Early out: if we didn't get an anchor_abspath, it means we don't have a
+     working copy, and hence no method of fetching the requisite information. */
+  if (!scb->anchor_abspath)
+    {
+      *props = apr_hash_make(result_pool);
+      return SVN_NO_ERROR;
+    }
+
+  SVN_ERR(rationalize_shim_path(&local_abspath, scb, path, scratch_pool,
+                                scratch_pool));
 
   SVN_ERR(svn_wc_get_pristine_props(props, scb->wc_ctx, local_abspath,
                                     result_pool, scratch_pool));
 
+  if (!*props)
+    *props = apr_hash_make(result_pool);
+
   return SVN_NO_ERROR;
 }
 
@@ -274,8 +315,18 @@ fetch_kind_func(svn_kind_t *kind,
 {
   struct shim_callbacks_baton *scb = baton;
   svn_node_kind_t node_kind;
-  const char *local_abspath = svn_dirent_join(scb->anchor_abspath, path,
-                                              scratch_pool);
+  const char *local_abspath;
+
+  /* Early out: if we didn't get an anchor_abspath, it means we don't have a
+     working copy, and hence no method of fetching the requisite information. */
+  if (!scb->anchor_abspath)
+    {
+      *kind = svn_kind_unknown;
+      return SVN_NO_ERROR;
+    }
+
+  SVN_ERR(rationalize_shim_path(&local_abspath, scb, path, scratch_pool,
+                                scratch_pool));
 
   SVN_ERR(svn_wc_read_kind(&node_kind, scb->wc_ctx, local_abspath, FALSE,
                            scratch_pool));
@@ -293,12 +344,22 @@ fetch_base_func(const char **filename,
                 apr_pool_t *scratch_pool)
 {
   struct shim_callbacks_baton *scb = baton;
-  const char *local_abspath = svn_dirent_join(scb->anchor_abspath, path,
-                                              scratch_pool);
+  const char *local_abspath;
   svn_stream_t *pristine_stream;
   svn_stream_t *temp_stream;
   svn_error_t *err;
 
+  /* Early out: if we didn't get an anchor_abspath, it means we don't have a
+     working copy, and hence no method of fetching the requisite information. */
+  if (!scb->anchor_abspath)
+    {
+      *filename = NULL;
+      return SVN_NO_ERROR;
+    }
+
+  SVN_ERR(rationalize_shim_path(&local_abspath, scb, path, scratch_pool,
+                                scratch_pool));
+
   err = svn_wc_get_pristine_contents2(&pristine_stream, scb->wc_ctx,
                                       local_abspath, scratch_pool,
                                       scratch_pool);
@@ -325,7 +386,7 @@ svn_client__get_shim_callbacks(svn_wc_co
                                const char *anchor_abspath,
                                apr_pool_t *result_pool)
 {
-  svn_delta_shim_callbacks_t *callbacks = 
+  svn_delta_shim_callbacks_t *callbacks =
                             svn_delta_shim_callbacks_default(result_pool);
   struct shim_callbacks_baton *scb = apr_pcalloc(result_pool, sizeof(*scb));
 

Modified: subversion/branches/fix-rdump-editor/subversion/libsvn_delta/compat.c
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/libsvn_delta/compat.c?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/libsvn_delta/compat.c (original)
+++ subversion/branches/fix-rdump-editor/subversion/libsvn_delta/compat.c Wed Mar 14 19:40:19 2012
@@ -129,7 +129,11 @@ struct extra_baton
 struct ev2_edit_baton
 {
   svn_editor_t *editor;
+
   apr_hash_t *paths;
+  apr_array_header_t *path_order;
+  int paths_processed;
+
   apr_pool_t *edit_pool;
   struct extra_baton *exb;
   svn_boolean_t closed;
@@ -221,10 +225,12 @@ add_action(struct ev2_edit_baton *eb,
 
   if (action_list == NULL)
     {
+      const char *path_dup = apr_pstrdup(eb->edit_pool, path);
+
       action_list = apr_array_make(eb->edit_pool, 1,
                                    sizeof(struct path_action *));
-      apr_hash_set(eb->paths, apr_pstrdup(eb->edit_pool, path),
-                   APR_HASH_KEY_STRING, action_list);
+      apr_hash_set(eb->paths, path_dup, APR_HASH_KEY_STRING, action_list);
+      APR_ARRAY_PUSH(eb->path_order, const char *) = path_dup;
     }
 
   APR_ARRAY_PUSH(action_list, struct path_action *) = p_action;
@@ -250,7 +256,7 @@ get_children(struct ev2_edit_baton *eb,
       /* Sanitize our paths. */
       if (*p == '/')
         p++;
-      
+
       /* Find potential children. */
       child = svn_relpath_skip_ancestor(path, p);
       if (!child || !*child)
@@ -266,7 +272,7 @@ get_children(struct ev2_edit_baton *eb,
 
   return children;
 }
-                  
+
 
 static svn_error_t *
 process_actions(void *edit_baton,
@@ -281,7 +287,7 @@ process_actions(void *edit_baton,
   svn_boolean_t need_copy = FALSE;
   const char *copyfrom_path;
   svn_revnum_t copyfrom_rev;
-  apr_array_header_t *children;
+  apr_array_header_t *children = NULL;
   svn_stream_t *contents = NULL;
   svn_checksum_t *checksum = NULL;
   svn_revnum_t delete_revnum = SVN_INVALID_REVNUM;
@@ -372,7 +378,7 @@ process_actions(void *edit_baton,
               struct path_checksum_args *pca = action->args;
 
               /* We can only set text on files. */
-              kind = svn_node_file;
+              kind = svn_kind_file;
 
               SVN_ERR(svn_io_file_checksum2(&checksum, pca->path,
                                             svn_checksum_sha1, scratch_pool));
@@ -484,29 +490,21 @@ run_ev2_actions(void *edit_baton,
                 apr_pool_t *scratch_pool)
 {
   struct ev2_edit_baton *eb = edit_baton;
-  apr_array_header_t *sorted_hash;
   apr_pool_t *iterpool;
-  int i;
-
-  /* Sort the paths touched by this edit.
-   * Ev2 doesn't really have any particular need for depth-first-ness, but
-   * we want to ensure all parent directories are handled before children in
-   * the case of adds (which does introduce an element of depth-first-ness). */
-  sorted_hash = svn_sort__hash(eb->paths, svn_sort_compare_items_as_paths,
-                               scratch_pool);
 
   iterpool = svn_pool_create(scratch_pool);
-  for (i = 0; i < sorted_hash->nelts; i++)
-    {
-      svn_sort__item_t *item = &APR_ARRAY_IDX(sorted_hash, i, svn_sort__item_t);
-      apr_array_header_t *actions = item->value;
-      const char *path = item->key;
+
+  /* Possibly pick up where we left off. Ocassionally, we do some of these
+     as part of close_edit() and then some more as part of abort_edit()  */
+  for (; eb->paths_processed < eb->path_order->nelts; ++eb->paths_processed)
+    {
+      const char *path = APR_ARRAY_IDX(eb->path_order, eb->paths_processed,
+                                       const char *);
+      apr_array_header_t *actions = apr_hash_get(eb->paths, path,
+                                                 APR_HASH_KEY_STRING);
 
       svn_pool_clear(iterpool);
       SVN_ERR(process_actions(edit_baton, path, actions, iterpool));
-
-      /* Remove this item from the hash. */
-      apr_hash_set(eb->paths, path, APR_HASH_KEY_STRING, NULL);
     }
   svn_pool_destroy(iterpool);
 
@@ -672,7 +670,7 @@ ev2_absent_directory(const char *path,
 {
   struct ev2_dir_baton *pb = parent_baton;
   svn_kind_t *kind = apr_palloc(pb->eb->edit_pool, sizeof(*kind));
-  
+
   *kind = svn_kind_dir;
   SVN_ERR(add_action(pb->eb, path, ACTION_ADD_ABSENT, kind));
 
@@ -823,7 +821,7 @@ ev2_apply_textdelta(void *file_baton,
                     &hb->apply_handler, &hb->apply_baton);
 
   hb->pool = handler_pool;
-                    
+
   *handler_baton = hb;
   *handler = window_handler;
 
@@ -875,7 +873,7 @@ ev2_absent_file(const char *path,
 {
   struct ev2_dir_baton *pb = parent_baton;
   svn_kind_t *kind = apr_palloc(pb->eb->edit_pool, sizeof(*kind));
-  
+
   *kind = svn_kind_file;
   SVN_ERR(add_action(pb->eb, path, ACTION_ADD_ABSENT, kind));
 
@@ -925,7 +923,7 @@ ev2_abort_edit(void *edit_baton,
  *  - EXB: An 'extra baton' which is used to communicate between the shims.
  *         Its callbacks should be invoked at the appropriate time by this
  *         shim.
- */ 
+ */
 static svn_error_t *
 delta_from_editor(const svn_delta_editor_t **deditor,
                   void **dedit_baton,
@@ -963,6 +961,7 @@ delta_from_editor(const svn_delta_editor
 
   eb->editor = editor;
   eb->paths = apr_hash_make(pool);
+  eb->path_order = apr_array_make(pool, 1, sizeof(const char *));
   eb->edit_pool = pool;
   eb->found_abs_paths = found_abs_paths;
   *eb->found_abs_paths = FALSE;
@@ -1143,7 +1142,7 @@ build(struct editor_baton *eb,
              actual structures, not pointers to them. */
           svn_prop_t *prop = &APR_ARRAY_IDX(propdiffs, i, svn_prop_t);
           if (!prop->value)
-            APR_ARRAY_PUSH(operation->prop_dels, const char *) = 
+            APR_ARRAY_PUSH(operation->prop_dels, const char *) =
                                         apr_pstrdup(eb->edit_pool, prop->name);
           else
             apr_hash_set(operation->prop_mods,
@@ -1572,7 +1571,8 @@ drive_tree(struct operation *op,
     {
       /* Open or create our baton. */
       if (op->operation == OP_OPEN || op->operation == OP_PROPSET)
-        SVN_ERR(editor->open_directory(path, parent_op->baton, op->base_revision,
+        SVN_ERR(editor->open_directory(path, parent_op->baton,
+                                       op->base_revision,
                                        scratch_pool, &op->baton));
 
       else if (op->operation == OP_ADD || op->operation == OP_REPLACE)
@@ -1612,7 +1612,7 @@ drive_tree(struct operation *op,
          I don't know that that's a valid assumption... */
 
       void *file_baton = NULL;
-      
+
       /* Open or create our baton. */
       if (op->operation == OP_OPEN || op->operation == OP_PROPSET)
         SVN_ERR(editor->open_file(path, parent_op->baton, op->base_revision,
@@ -1687,7 +1687,7 @@ drive_root(struct operation *root,
       svn_pool_clear(iterpool);
       SVN_ERR(drive_tree(child, root, editor, make_abs_paths, iterpool));
     }
-  
+
   /* We need to close the root directory, but leave it to our caller to call
      close_ or abort_edit(). */
   SVN_ERR(editor->close_directory(root->baton, scratch_pool));

Modified: subversion/branches/fix-rdump-editor/subversion/libsvn_delta/editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/libsvn_delta/editor.c?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/libsvn_delta/editor.c (original)
+++ subversion/branches/fix-rdump-editor/subversion/libsvn_delta/editor.c Wed Mar 14 19:40:19 2012
@@ -33,7 +33,7 @@
 /* This enables runtime checks of the editor API constraints.  This may
    introduce additional memory and runtime overhead, and should not be used
    in production builds.
-   
+
    ### Remove before release? */
 #define ENABLE_ORDERING_CHECK
 #endif
@@ -420,7 +420,8 @@ svn_editor_add_file(svn_editor_t *editor
 {
   svn_error_t *err = SVN_NO_ERROR;
 
-  SVN_ERR_ASSERT(checksum != NULL);
+  SVN_ERR_ASSERT(checksum != NULL
+                    && checksum->kind == SVN_EDITOR_CHECKSUM_KIND);
   SVN_ERR_ASSERT(contents != NULL);
   SVN_ERR_ASSERT(props != NULL);
   SHOULD_NOT_BE_FINISHED(editor);
@@ -539,6 +540,8 @@ svn_editor_alter_file(svn_editor_t *edit
   SVN_ERR_ASSERT((checksum != NULL && contents != NULL)
                  || (checksum == NULL && contents == NULL));
   SVN_ERR_ASSERT(props != NULL || checksum != NULL);
+  if (checksum)
+    SVN_ERR_ASSERT(checksum->kind == SVN_EDITOR_CHECKSUM_KIND);
   SHOULD_NOT_BE_FINISHED(editor);
   SHOULD_ALLOW_ALTER(editor, relpath);
 

Modified: subversion/branches/fix-rdump-editor/subversion/libsvn_delta/svndiff.c
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/libsvn_delta/svndiff.c?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/libsvn_delta/svndiff.c (original)
+++ subversion/branches/fix-rdump-editor/subversion/libsvn_delta/svndiff.c Wed Mar 14 19:40:19 2012
@@ -645,7 +645,7 @@ decode_window(svn_txdelta_window_t *wind
       svn_stringbuf_t *ndout = svn_stringbuf_create_empty(pool);
 
       /* these may in fact simply return references to insend */
-      
+
       SVN_ERR(zlib_decode(insend, newlen, ndout,
                           SVN_DELTA_WINDOW_SIZE));
       SVN_ERR(zlib_decode(data, insend - data, instout,

Modified: subversion/branches/fix-rdump-editor/subversion/libsvn_delta/text_delta.c
URL: http://svn.apache.org/viewvc/subversion/branches/fix-rdump-editor/subversion/libsvn_delta/text_delta.c?rev=1300696&r1=1300695&r2=1300696&view=diff
==============================================================================
--- subversion/branches/fix-rdump-editor/subversion/libsvn_delta/text_delta.c (original)
+++ subversion/branches/fix-rdump-editor/subversion/libsvn_delta/text_delta.c Wed Mar 14 19:40:19 2012
@@ -291,7 +291,7 @@ svn_txdelta__remove_copy(svn_txdelta__op
       /*  we can't modify svn_txdelta_target ops -> stop there */
       if (op->action_code == svn_txdelta_target)
         break;
-      
+
       /*  handle the case that we cannot remove the op entirely */
       if (op->length + len > max_len)
         {
@@ -303,18 +303,18 @@ svn_txdelta__remove_copy(svn_txdelta__op
                op->length -= max_len - len;
                len = max_len;
             }
-          
+
           break;
         }
-        
+
       /* drop the op entirely */
       if (op->action_code == svn_txdelta_new)
         build_baton->new_data->len -= op->length;
-      
+
       len += op->length;
       --build_baton->num_ops;
     }
-    
+
   return len;
 }