You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by vm...@apache.org on 2012/05/29 03:39:49 UTC

svn commit: r1343447 [1/27] - in /subversion/branches/javahl-ra: ./ build/ build/ac-macros/ build/generator/ build/generator/templates/ build/win32/ contrib/client-side/emacs/ contrib/server-side/ notes/ notes/api-errata/1.8/ notes/merge-tracking/ subv...

Author: vmpn
Date: Tue May 29 01:39:41 2012
New Revision: 1343447

URL: http://svn.apache.org/viewvc?rev=1343447&view=rev
Log:
On the javahl-ra branch:
Bring up-to-date with trunk@1342809


Added:
    subversion/branches/javahl-ra/notes/api-errata/1.8/
      - copied from r1342809, subversion/trunk/notes/api-errata/1.8/
    subversion/branches/javahl-ra/notes/ev2-callbacks-template.c
      - copied unchanged from r1342809, subversion/trunk/notes/ev2-callbacks-template.c
    subversion/branches/javahl-ra/subversion/libsvn_delta/deprecated.c
      - copied unchanged from r1342809, subversion/trunk/subversion/libsvn_delta/deprecated.c
    subversion/branches/javahl-ra/subversion/svnmucc/   (props changed)
      - copied from r1342809, subversion/trunk/subversion/svnmucc/
    subversion/branches/javahl-ra/subversion/tests/cmdline/merge_symmetric_tests.py
      - copied unchanged from r1342809, subversion/trunk/subversion/tests/cmdline/merge_symmetric_tests.py
    subversion/branches/javahl-ra/subversion/tests/libsvn_wc/wc-queries-test.c
      - copied unchanged from r1342809, subversion/trunk/subversion/tests/libsvn_wc/wc-queries-test.c
    subversion/branches/javahl-ra/tools/dev/sbox-ospath.py
      - copied unchanged from r1342809, subversion/trunk/tools/dev/sbox-ospath.py
Removed:
    subversion/branches/javahl-ra/contrib/server-side/svn-fast-backup
    subversion/branches/javahl-ra/tools/client-side/svnmucc/
Modified:
    subversion/branches/javahl-ra/   (props changed)
    subversion/branches/javahl-ra/CHANGES
    subversion/branches/javahl-ra/COMMITTERS
    subversion/branches/javahl-ra/Makefile.in
    subversion/branches/javahl-ra/build.conf
    subversion/branches/javahl-ra/build/ac-macros/swig.m4
    subversion/branches/javahl-ra/build/generator/gen_base.py
    subversion/branches/javahl-ra/build/generator/gen_make.py
    subversion/branches/javahl-ra/build/generator/gen_vcnet_vcproj.py
    subversion/branches/javahl-ra/build/generator/templates/build_zlib.ezt
    subversion/branches/javahl-ra/build/generator/templates/makefile.ezt
    subversion/branches/javahl-ra/build/generator/templates/vcnet_vcxproj.ezt
    subversion/branches/javahl-ra/build/run_tests.py
    subversion/branches/javahl-ra/build/transform_sql.py
    subversion/branches/javahl-ra/build/win32/make_dist.py
    subversion/branches/javahl-ra/build/win32/vc6-build.bat.in
    subversion/branches/javahl-ra/configure.ac
    subversion/branches/javahl-ra/contrib/client-side/emacs/dsvn.el
    subversion/branches/javahl-ra/contrib/client-side/emacs/vc-svn.el
    subversion/branches/javahl-ra/notes/knobs
    subversion/branches/javahl-ra/notes/merge-tracking/func-spec.html
    subversion/branches/javahl-ra/notes/sparse-directories.txt
    subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.cpp
    subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.h
    subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
    subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java
    subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
    subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
    subversion/branches/javahl-ra/subversion/include/private/svn_client_private.h
    subversion/branches/javahl-ra/subversion/include/private/svn_fs_util.h
    subversion/branches/javahl-ra/subversion/include/private/svn_mergeinfo_private.h
    subversion/branches/javahl-ra/subversion/include/private/svn_named_atomic.h
    subversion/branches/javahl-ra/subversion/include/private/svn_ra_private.h
    subversion/branches/javahl-ra/subversion/include/private/svn_repos_private.h
    subversion/branches/javahl-ra/subversion/include/private/svn_sqlite.h
    subversion/branches/javahl-ra/subversion/include/private/svn_subr_private.h
    subversion/branches/javahl-ra/subversion/include/private/svn_wc_private.h
    subversion/branches/javahl-ra/subversion/include/svn_client.h
    subversion/branches/javahl-ra/subversion/include/svn_delta.h
    subversion/branches/javahl-ra/subversion/include/svn_editor.h
    subversion/branches/javahl-ra/subversion/include/svn_error.h
    subversion/branches/javahl-ra/subversion/include/svn_error_codes.h
    subversion/branches/javahl-ra/subversion/include/svn_fs.h
    subversion/branches/javahl-ra/subversion/include/svn_hash.h
    subversion/branches/javahl-ra/subversion/include/svn_io.h
    subversion/branches/javahl-ra/subversion/include/svn_props.h
    subversion/branches/javahl-ra/subversion/include/svn_ra.h
    subversion/branches/javahl-ra/subversion/include/svn_types.h
    subversion/branches/javahl-ra/subversion/include/svn_wc.h
    subversion/branches/javahl-ra/subversion/include/svn_xml.h
    subversion/branches/javahl-ra/subversion/libsvn_client/blame.c
    subversion/branches/javahl-ra/subversion/libsvn_client/cat.c
    subversion/branches/javahl-ra/subversion/libsvn_client/client.h
    subversion/branches/javahl-ra/subversion/libsvn_client/commit.c
    subversion/branches/javahl-ra/subversion/libsvn_client/commit_util.c
    subversion/branches/javahl-ra/subversion/libsvn_client/copy.c
    subversion/branches/javahl-ra/subversion/libsvn_client/delete.c
    subversion/branches/javahl-ra/subversion/libsvn_client/deprecated.c
    subversion/branches/javahl-ra/subversion/libsvn_client/diff.c
    subversion/branches/javahl-ra/subversion/libsvn_client/export.c
    subversion/branches/javahl-ra/subversion/libsvn_client/externals.c
    subversion/branches/javahl-ra/subversion/libsvn_client/list.c
    subversion/branches/javahl-ra/subversion/libsvn_client/locking_commands.c
    subversion/branches/javahl-ra/subversion/libsvn_client/log.c
    subversion/branches/javahl-ra/subversion/libsvn_client/merge.c
    subversion/branches/javahl-ra/subversion/libsvn_client/mergeinfo.c
    subversion/branches/javahl-ra/subversion/libsvn_client/patch.c
    subversion/branches/javahl-ra/subversion/libsvn_client/prop_commands.c
    subversion/branches/javahl-ra/subversion/libsvn_client/ra.c
    subversion/branches/javahl-ra/subversion/libsvn_client/resolved.c
    subversion/branches/javahl-ra/subversion/libsvn_client/revisions.c
    subversion/branches/javahl-ra/subversion/libsvn_client/status.c
    subversion/branches/javahl-ra/subversion/libsvn_client/switch.c
    subversion/branches/javahl-ra/subversion/libsvn_client/update.c
    subversion/branches/javahl-ra/subversion/libsvn_client/util.c
    subversion/branches/javahl-ra/subversion/libsvn_delta/compat.c
    subversion/branches/javahl-ra/subversion/libsvn_delta/debug_editor.c
    subversion/branches/javahl-ra/subversion/libsvn_delta/editor.c
    subversion/branches/javahl-ra/subversion/libsvn_delta/path_driver.c
    subversion/branches/javahl-ra/subversion/libsvn_delta/text_delta.c
    subversion/branches/javahl-ra/subversion/libsvn_diff/diff_file.c
    subversion/branches/javahl-ra/subversion/libsvn_diff/diff_memory.c
    subversion/branches/javahl-ra/subversion/libsvn_fs/editor.c
    subversion/branches/javahl-ra/subversion/libsvn_fs/fs-loader.c
    subversion/branches/javahl-ra/subversion/libsvn_fs/fs-loader.h
    subversion/branches/javahl-ra/subversion/libsvn_fs_base/bdb/lock-tokens-table.c
    subversion/branches/javahl-ra/subversion/libsvn_fs_base/bdb/locks-table.c
    subversion/branches/javahl-ra/subversion/libsvn_fs_base/err.c
    subversion/branches/javahl-ra/subversion/libsvn_fs_base/fs.c
    subversion/branches/javahl-ra/subversion/libsvn_fs_base/fs.h
    subversion/branches/javahl-ra/subversion/libsvn_fs_base/lock.c
    subversion/branches/javahl-ra/subversion/libsvn_fs_base/tree.c
    subversion/branches/javahl-ra/subversion/libsvn_fs_base/uuid.c
    subversion/branches/javahl-ra/subversion/libsvn_fs_base/uuid.h
    subversion/branches/javahl-ra/subversion/libsvn_fs_fs/caching.c
    subversion/branches/javahl-ra/subversion/libsvn_fs_fs/dag.c
    subversion/branches/javahl-ra/subversion/libsvn_fs_fs/fs.c
    subversion/branches/javahl-ra/subversion/libsvn_fs_fs/fs.h
    subversion/branches/javahl-ra/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/javahl-ra/subversion/libsvn_fs_fs/fs_fs.h
    subversion/branches/javahl-ra/subversion/libsvn_fs_fs/lock.c
    subversion/branches/javahl-ra/subversion/libsvn_fs_fs/temp_serializer.c
    subversion/branches/javahl-ra/subversion/libsvn_fs_fs/tree.c
    subversion/branches/javahl-ra/subversion/libsvn_ra/debug_reporter.c
    subversion/branches/javahl-ra/subversion/libsvn_ra/ra_loader.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_local/ra_plugin.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_neon/commit.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_neon/util.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/blame.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/commit.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/get_deleted_rev.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/getdate.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/getlocations.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/getlocationsegments.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/getlocks.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/locks.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/log.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/merge.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/mergeinfo.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/options.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/property.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/ra_serf.h
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/replay.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/serf.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/update.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/util.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_serf/xml.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_svn/marshal.c
    subversion/branches/javahl-ra/subversion/libsvn_ra_svn/ra_svn.h
    subversion/branches/javahl-ra/subversion/libsvn_repos/commit.c
    subversion/branches/javahl-ra/subversion/libsvn_repos/deprecated.c
    subversion/branches/javahl-ra/subversion/libsvn_repos/dump.c
    subversion/branches/javahl-ra/subversion/libsvn_repos/hooks.c
    subversion/branches/javahl-ra/subversion/libsvn_repos/replay.c
    subversion/branches/javahl-ra/subversion/libsvn_repos/repos.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/error.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/hash.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/internal_statements.sql
    subversion/branches/javahl-ra/subversion/libsvn_subr/io.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/lock.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/named_atomic.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/path.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/properties.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/sqlite.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/stream.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/string.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/win32_crashrpt.c
    subversion/branches/javahl-ra/subversion/libsvn_subr/xml.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/adm_files.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/adm_ops.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/conflicts.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/deprecated.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/entries.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/externals.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/merge.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/node.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/props.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/questions.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/status.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/update_editor.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/wc-metadata.sql
    subversion/branches/javahl-ra/subversion/libsvn_wc/wc-queries.sql
    subversion/branches/javahl-ra/subversion/libsvn_wc/wc.h
    subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db.h
    subversion/branches/javahl-ra/subversion/libsvn_wc/wc_db_wcroot.c
    subversion/branches/javahl-ra/subversion/libsvn_wc/workqueue.h
    subversion/branches/javahl-ra/subversion/mod_dav_svn/lock.c
    subversion/branches/javahl-ra/subversion/mod_dav_svn/reports/update.c
    subversion/branches/javahl-ra/subversion/mod_dav_svn/util.c
    subversion/branches/javahl-ra/subversion/po/de.po
    subversion/branches/javahl-ra/subversion/po/fr.po
    subversion/branches/javahl-ra/subversion/svn/blame-cmd.c
    subversion/branches/javahl-ra/subversion/svn/cl.h
    subversion/branches/javahl-ra/subversion/svn/conflict-callbacks.c
    subversion/branches/javahl-ra/subversion/svn/diff-cmd.c
    subversion/branches/javahl-ra/subversion/svn/log-cmd.c
    subversion/branches/javahl-ra/subversion/svn/main.c
    subversion/branches/javahl-ra/subversion/svn/notify.c
    subversion/branches/javahl-ra/subversion/svn/propget-cmd.c
    subversion/branches/javahl-ra/subversion/svn/props.c
    subversion/branches/javahl-ra/subversion/svn/resolve-cmd.c
    subversion/branches/javahl-ra/subversion/svn/status-cmd.c
    subversion/branches/javahl-ra/subversion/svn/status.c
    subversion/branches/javahl-ra/subversion/svnadmin/main.c
    subversion/branches/javahl-ra/subversion/svnlook/main.c
    subversion/branches/javahl-ra/subversion/svnrdump/dump_editor.c
    subversion/branches/javahl-ra/subversion/svnrdump/load_editor.c
    subversion/branches/javahl-ra/subversion/svnrdump/svnrdump.c
    subversion/branches/javahl-ra/subversion/svnserve/main.c
    subversion/branches/javahl-ra/subversion/svnserve/serve.c
    subversion/branches/javahl-ra/subversion/svnsync/sync.c
    subversion/branches/javahl-ra/subversion/tests/cmdline/authz_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/autoprop_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/basic_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/changelist_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/commit_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/copy_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/davautocheck.sh
    subversion/branches/javahl-ra/subversion/tests/cmdline/depth_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/diff_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/entries_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/externals_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/getopt_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
    subversion/branches/javahl-ra/subversion/tests/cmdline/import_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/lock_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/log_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/merge_reintegrate_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/merge_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/patch_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/prop_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/revert_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/schedule_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/special_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/stat_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/svnadmin_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/svnmucc_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/err.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/main.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/sandbox.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/svntest/wc.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/switch_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/tree_conflict_tests.py
    subversion/branches/javahl-ra/subversion/tests/cmdline/update_tests.py
    subversion/branches/javahl-ra/subversion/tests/libsvn_fs/locks-test.c
    subversion/branches/javahl-ra/subversion/tests/libsvn_subr/named_atomic-test-common.h
    subversion/branches/javahl-ra/subversion/tests/libsvn_subr/named_atomic-test.c
    subversion/branches/javahl-ra/subversion/tests/libsvn_subr/string-test.c
    subversion/branches/javahl-ra/subversion/tests/libsvn_wc/   (props changed)
    subversion/branches/javahl-ra/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/javahl-ra/subversion/tests/svn_test.h
    subversion/branches/javahl-ra/tools/buildbot/slaves/bb-openbsd/svnbuild.sh
    subversion/branches/javahl-ra/tools/buildbot/slaves/centos/svnbuild.sh
    subversion/branches/javahl-ra/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd
    subversion/branches/javahl-ra/tools/client-side/bash_completion
    subversion/branches/javahl-ra/tools/dev/benchmarks/large_dirs/create_bigdir.sh
    subversion/branches/javahl-ra/tools/dev/gen-py-errors.py
    subversion/branches/javahl-ra/tools/dev/unix-build/Makefile.svn
    subversion/branches/javahl-ra/tools/dev/unix-build/README
    subversion/branches/javahl-ra/tools/dev/windows-build/Makefile
    subversion/branches/javahl-ra/tools/dist/nightly.sh
    subversion/branches/javahl-ra/tools/dist/release.py
    subversion/branches/javahl-ra/tools/server-side/svnpubsub/example.conf
    subversion/branches/javahl-ra/tools/server-side/svnpubsub/svntweet.py
    subversion/branches/javahl-ra/tools/server-side/svnpubsub/svnwcsub.py
    subversion/branches/javahl-ra/win-tests.py

Propchange: subversion/branches/javahl-ra/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1329209-1342809
  Merged /subversion/branches/ev2-export:r1325914,1332738

Modified: subversion/branches/javahl-ra/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/CHANGES?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/CHANGES (original)
+++ subversion/branches/javahl-ra/CHANGES Tue May 29 01:39:41 2012
@@ -19,9 +19,11 @@ http://svn.apache.org/repos/asf/subversi
     * new SVNUseUTF8 configuration option for mod_dav_svn (issue #2487)
     * new SVNHooksEnv configuration option for mod_dav_svn (r1239966)
     * new --ignore-properties option for 'svn diff' (r1239553. -617)
+    * new --properties-only option for 'svn diff' (r1336110)
     * new --patch-compatible option for 'svn diff' (r1239561)
     * new SvnPubSub distributed commit hooks (tools/server-side/svnpubsub)
     * 'svn diff' can compare arbitrary files and directories (r1310291, et al)
+    * ra_serf avoids re-downloading content present in pristine store (r1333936)
 
   - Client-side bugfixes:
     *
@@ -30,7 +32,7 @@ http://svn.apache.org/repos/asf/subversi
     *
 
   - Other tool improvements and bugfixes:
-    *
+    * 'svnmucc' promoted to first-class supported utility (issue #3308)
   
  Developer-visible changes:
   - General:
@@ -44,28 +46,54 @@ http://svn.apache.org/repos/asf/subversi
 
 
 Version 1.7.5
-(26 Apr 2012, from /branches/1.7.x)
+(17 May 2012, from /branches/1.7.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.7.5
 
-  User-visible changes:
+ User-visible changes:
+  - Client- and server-side bugfixes:
+    * http: report deleted-revision upon delete during update (r1327474)
+
+  - Client-side bugfixes:
     * avoid potential segfault when canonicalizing properties (r1296369)
-    * fix non-fatal FSFS corruption bug with concurrent commits (issue #4129)
     * improve memory and file-handle management with externals (issue #4130)
-    * ra_serf: convert assertions to errors: MERGE fails (r1302417)
-    * mod_dav_svn: error on MERGE of non-existent resource (r1298343)
+    * serf: convert assertions to "MERGE failed" errors (r1302417)
     * fix undefined behaviour during multi-segment reverse merges (issue #4144)
-    * fix potential pool lifetime problem in the diff code (r1311935)
-    * libsvn_wc: reduce resources use while looking for the wc root (r1306334)
+    * fix potential use of already freed memory during diff operation (r1311935)
+    * improve performance of scan for the working copy root (r1306334)
     * cmdline: fix segfault during 'svn diff' argument processing (r1311702)
-    * fix regression with deep commit followed by depthy update (issue #4136)
-    * propset: avoid reading unitialised variable in error path (r1325361)
-    * mod_dav_svn: support httpd-2.4 (r1232267)
-    * mod_dav_svn: forbid BDB repositories under event MPM (issue #4157)
+    * fix regression from 1.6 in update with --depth option (issue #4136)
+    * propset: avoid undefined behaviour in error path (r1325361)
+    * reset sqlite statements, partly for sqlite-3.7.11 compat (r1328846, et al)
+    * fix assertion during 'svn diff -r BASE:HEAD ^/trunk' (issue #4161)
+    * notify upon 'update' just removing locks on files (r1329876)
+    * neon: fix potential use of freed memory during commits (r1329388)
+    * 'status --xml' doesn't show repository deletes correctly (issue #4167)
+    * fix assert on svn:externals with drive letter on Windows (issue #4073)
+    * fix 'svn update --depth=empty' against 1.4 servers (issue #4046)
+    * handle missing svn:date reported by svnserve gracefully (r1306111)
+    * fix merges which first add a subtree and then delete it (issue #4166)
+    * fix a regression with checkout of file externals (issue #4087)
+    * don't add spurious mergeinfo to subtrees in edge-case merge (issue #4169)
+    * improve performance of status on large working copies (issue #4178)
 
-  Developer-visible changes:
+  - Server-side bugfixes:
+    * fix non-fatal FSFS corruption bug with concurrent commits (issue #4129)
+    * mod_dav_svn: raise an error on MERGE of non-existent resource (r1298343)
+    * mod_dav_svn: support compiling/running under httpd-2.4 (r1232267)
+    * mod_dav_svn: forbid BDB repositories under httpd's event MPM (issue #4157)
+
+  - Other tool improvements and bugfixes:
+    * emacs support: updates to dsvn.el and vc-svn.el (r1200896, et al)
+
+ Developer-visible changes:
+  - General:
+    * windows example distribution scripts: include svnrdump (r1295007)
+    * fix running the test suite with jsvn (r1335555)
+
+  - Bindings:
     * swig-py tests: avoid FAILs on APR hash order (r1296137, r1292248)
     * swig-rb tests: avoid FAILs on APR hash order (r1310535, r1310594)
-    * windows example distribution scripts: include svnrdump (r1295007)
+    * swig-pl: Improved perl detection in gen-make.py (r1291797, r1291810)
 
 
 Version 1.7.4

Modified: subversion/branches/javahl-ra/COMMITTERS
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/COMMITTERS?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/COMMITTERS [UTF-8] (original)
+++ subversion/branches/javahl-ra/COMMITTERS [UTF-8] Tue May 29 01:39:41 2012
@@ -93,8 +93,8 @@ Commit access for specific areas:
          clkao   Chia-liang Kao <cl...@clkao.org>            (Swig-Perl b.)
     joeswatosh   Joe Swatosh <jo...@gmail.com>         (Swig-Ruby b.)
     jrvernooij   Jelmer Vernooij <je...@samba.org>          (Python bindings)
-          sage   Sage LaTorra <sa...@gmail.com>             (Ctypes-Python bindings)
-        rdonch   Роман Донченко <DX...@yandex.ru>         (Swig-Python b.)
+          sage   Sage LaTorra <sa...@gmail.com>             (Ctypes-Python b.)
+        rdonch   Роман Донченко <dp...@corrigendum.ru>         (Swig-Python b.)
 
   Packages:
 
@@ -201,6 +201,7 @@ giorgio_valoti   Giorgio Valoti <giorgio
                                                               br.)
         holden   Holden Karau <ho...@pigscanfly.ca>         (scheme-bindings br.)
          moklo   Morten Kloster <mo...@gmail.com>           (diff-improvements br.)
+          vmpn   Vladimir Berezniker <vm...@hitechman.com>    (javahl-ra br.)
 
   Subprojects that are complete, abandoned or have moved elsewhere:
 

Modified: subversion/branches/javahl-ra/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/Makefile.in?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/Makefile.in (original)
+++ subversion/branches/javahl-ra/Makefile.in Tue May 29 01:39:41 2012
@@ -135,7 +135,6 @@ INCLUDES = -I$(top_srcdir)/subversion/in
 
 APACHE_INCLUDES = @APACHE_INCLUDES@
 APACHE_LIBEXECDIR = $(DESTDIR)@APACHE_LIBEXECDIR@
-APACHE_LIBEXECDIR_TOOLS = $(DESTDIR)@APACHE_LIBEXECDIR@/svn-tools
 APACHE_LDFLAGS = @APACHE_LDFLAGS@
 
 SWIG = @SWIG@
@@ -253,7 +252,6 @@ INSTALL_CONTRIB = $(LIBTOOL) --mode=inst
 INSTALL_TOOLS = $(LIBTOOL) --mode=install $(INSTALL)
 INSTALL_INCLUDE = $(INSTALL) -m 644
 INSTALL_MOD_SHARED = @APXS@ -i -S LIBEXECDIR="$(APACHE_LIBEXECDIR)" @MOD_ACTIVATION@
-INSTALL_MOD_SHARED_TOOLS = @APXS@ -i -S LIBEXECDIR="$(APACHE_LIBEXECDIR_TOOLS)"
 INSTALL_DATA = $(INSTALL) -m 644
 INSTALL_LOCALE = $(INSTALL_DATA)
 
@@ -453,7 +451,7 @@ check-all-javahl: check-apache-javahl ch
 # "make check CLEANUP=true" will clean up directories for successful tests.
 # "make check TESTS=subversion/tests/cmdline/basic_tests.py"
 #  will perform only basic tests (likewise for other tests).
-check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $(TEST_DEPS) @BDB_TEST_DEPS@ svnmucc
+check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $(TEST_DEPS) @BDB_TEST_DEPS@
 	@if test "$(PYTHON)" != "none"; then                                 \
 	  flags="--verbose";                                                 \
 	  if test "$(CLEANUP)" != ""; then                                   \
@@ -506,38 +504,38 @@ check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $
 
 # First, set up Apache as documented in
 # subversion/tests/cmdline/README.
-davcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@ apache-mod svnmucc
+davcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@ apache-mod
 	@$(MAKE) check BASE_URL=http://localhost
 
 # Automatically configure and run Apache httpd on a random port, and then
 # run make check.
-davautocheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@ apache-mod svnmucc
+davautocheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@ apache-mod
 	@# Takes MODULE_PATH, USE_HTTPV1 and SVN_PATH_AUTHZ in the environment.
 	@APXS=$(APXS) $(top_srcdir)/subversion/tests/cmdline/davautocheck.sh
 
 # First, run:
 #   subversion/svnserve/svnserve -d -r `pwd`/subversion/tests/cmdline
-svncheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@ svnmucc
+svncheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@
 	@$(MAKE) check BASE_URL=svn://127.0.0.1
 
 # 'make svnserveautocheck' runs svnserve for you and kills it.
-svnserveautocheck: svnserve bin $(TEST_DEPS) @BDB_TEST_DEPS@ svnmucc
+svnserveautocheck: svnserve bin $(TEST_DEPS) @BDB_TEST_DEPS@
 	@env PYTHON=$(PYTHON) THREADED=$(THREADED) \
 	  $(top_srcdir)/subversion/tests/cmdline/svnserveautocheck.sh
 
 # First, run:
 #   subversion/svnserve/svnserve --listen-host "::1" -d -r `pwd`/subversion/tests/cmdline
 
-svncheck6: bin $(TEST_DEPS) @BDB_TEST_DEPS@ svnmucc
+svncheck6: bin $(TEST_DEPS) @BDB_TEST_DEPS@
 	@$(MAKE) check BASE_URL=svn://\[::1\]
 
 # First make sure you can ssh to localhost and that "svnserve" is in
 # the path of the resulting shell.
-svnsshcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@ svnmucc
+svnsshcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@
 	@$(MAKE) check \
 	  BASE_URL=svn+ssh://localhost`pwd`/subversion/tests/cmdline
 
-bdbcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@ svnmucc
+bdbcheck: bin $(TEST_DEPS) @BDB_TEST_DEPS@
 	@$(MAKE) check FS_TYPE=bdb
 
 check-clean:
@@ -865,3 +863,11 @@ clean-ctypes-python:
 # manually describe a dependency, which we won't otherwise detect
 subversion/libsvn_wc/wc-queries.h: $(abs_srcdir)/subversion/libsvn_wc/wc-metadata.sql
 subversion/libsvn_wc/wc-queries.h: $(abs_srcdir)/subversion/libsvn_wc/wc-checks.sql
+
+# Compatibility symlink.
+# This runs after the target of the same name in build-outputs.mk.
+INSTALL_EXTRA_TOOLS=\
+  $(MKDIR) $(DESTDIR)$(bindir); \
+  test -n "$$SVN_SVNMUCC_IS_SVNSYITF" && \
+  ln -sf svnmucc$(EXEEXT) $(DESTDIR)$(bindir)/svnsyitf$(EXEEXT); \
+  ln -sf $(DESTDIR)$(bindir)/svnmucc$(EXEEXT) $(DESTDIR)$(toolsdir)/svnmucc$(EXEEXT)

Modified: subversion/branches/javahl-ra/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build.conf?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build.conf (original)
+++ subversion/branches/javahl-ra/build.conf Tue May 29 01:39:41 2012
@@ -174,6 +174,14 @@ libs = libsvn_client libsvn_ra libsvn_re
 install = bin
 manpages = subversion/svnrdump/svnrdump.1
 
+[svnmucc]
+description = Subversion Multiple URL Command Client
+type = exe
+path = subversion/svnmucc
+libs = libsvn_client libsvn_ra libsvn_subr libsvn_delta apriconv apr neon
+install = bin
+manpages = subversion/svnmucc/svnmucc.1
+
 # Support for GNOME Keyring
 [libsvn_auth_gnome_keyring]
 description = Subversion GNOME Keyring Library
@@ -207,7 +215,7 @@ type = lib
 install = fsmod-lib
 path = subversion/libsvn_delta
 libs = libsvn_subr aprutil apriconv apr zlib
-msvc-export = svn_delta.h
+msvc-export = svn_delta.h svn_editor.h private/svn_delta_private.h
 
 # Routines for diffing
 [libsvn_diff]
@@ -993,13 +1001,21 @@ install = test
 libs = libsvn_client libsvn_test libsvn_wc libsvn_subr apriconv apr
 
 [op-depth-test]
-description = Test the main WC API functions
+description = Test layered tree changes
 type = exe
 path = subversion/tests/libsvn_wc
 sources = op-depth-test.c utils.c
 install = test
 libs = libsvn_client libsvn_test libsvn_wc libsvn_subr apriconv apr
 
+[wc-queries-test]
+description = Test Sqlite query evaluation
+type = exe
+path = subversion/tests/libsvn_wc
+sources = wc-queries-test.c
+install = test
+libs = libsvn_test libsvn_subr apriconv apr sqlite
+
 # ----------------------------------------------------------------------------
 # These are not unit tests at all, they are small programs that exercise
 # parts of the libsvn_delta API from the command line.  They are stuck here
@@ -1169,7 +1185,7 @@ libs = __ALL__
        diff diff3 diff4
        client-test
        tree-conflict-data-test db-test pristine-store-test entries-compat-test
-       op-depth-test dirent_uri-test
+       op-depth-test dirent_uri-test wc-queries-test
        auth-test
        parse-diff-test
        svn-rep-sharing-stats svn-populate-node-origins-index
@@ -1215,13 +1231,6 @@ libs = __JAVAHL__ javahl-tests javahl-co
 # ----------------------------------------------------------------------------
 # Contrib and tools
 
-[svnmucc]
-type = exe
-path = tools/client-side/svnmucc
-sources = svnmucc.c
-install = tools
-libs = libsvn_client libsvn_ra libsvn_subr libsvn_delta apriconv apr neon
-
 [diff]
 type = exe
 path = tools/diff

Modified: subversion/branches/javahl-ra/build/ac-macros/swig.m4
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/ac-macros/swig.m4?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/ac-macros/swig.m4 (original)
+++ subversion/branches/javahl-ra/build/ac-macros/swig.m4 Tue May 29 01:39:41 2012
@@ -187,7 +187,7 @@ AC_DEFUN(SVN_FIND_SWIG,
     for var_name in arch archdir CC LDSHARED DLEXT LIBS LIBRUBYARG \
                     rubyhdrdir sitedir sitelibdir sitearchdir libdir
     do
-      rbconfig_tmp=`$rbconfig "print Config::CONFIG@<:@'$var_name'@:>@"`
+      rbconfig_tmp=`$rbconfig "print RbConfig::CONFIG@<:@'$var_name'@:>@"`
       eval "rbconfig_$var_name=\"$rbconfig_tmp\""
     done
 

Modified: subversion/branches/javahl-ra/build/generator/gen_base.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/generator/gen_base.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/generator/gen_base.py (original)
+++ subversion/branches/javahl-ra/build/generator/gen_base.py Tue May 29 01:39:41 2012
@@ -117,6 +117,7 @@ class GeneratorBase:
     # Lists of pathnames of various kinds
     self.test_deps = []      # Non-BDB dependent items to build for the tests
     self.test_progs = []     # Subset of the above to actually execute
+    self.test_helpers = []   # $ {test_deps} \setminus {test_progs} $
     self.bdb_test_deps = []  # BDB-dependent items to build for the tests
     self.bdb_test_progs = [] # Subset of the above to actually execute
     self.target_dirs = []    # Directories in which files are built
@@ -470,6 +471,8 @@ class TargetExe(TargetLinked):
       self.gen_obj.test_deps.append(self.filename)
       if self.testing != 'skip':
         self.gen_obj.test_progs.append(self.filename)
+      else:
+        self.gen_obj.test_helpers.append(self.filename)
     elif self.install == 'bdb-test':
       self.gen_obj.bdb_test_deps.append(self.filename)
       if self.testing != 'skip':

Modified: subversion/branches/javahl-ra/build/generator/gen_make.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/generator/gen_make.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/generator/gen_make.py (original)
+++ subversion/branches/javahl-ra/build/generator/gen_make.py Tue May 29 01:39:41 2012
@@ -141,6 +141,7 @@ class Generator(gen_base.GeneratorBase):
     data.bdb_test_progs = self.bdb_test_progs + self.bdb_scripts
     data.test_deps = self.test_deps + self.scripts
     data.test_progs = self.test_progs + self.scripts
+    data.test_helpers = self.test_helpers
 
     # write list of all manpages
     data.manpages = self.manpages
@@ -421,7 +422,8 @@ class Generator(gen_base.GeneratorBase):
         # in Makefile.in
         ### we should turn AREA into an object, then test it instead of this
         if area[:5] == 'swig-' and area[-4:] != '-lib' or \
-           area[:7] == 'javahl-':
+           area[:7] == 'javahl-' \
+           or area == 'tools':
           ezt_area.extra_install = 'yes'
 
     ########################################

Modified: subversion/branches/javahl-ra/build/generator/gen_vcnet_vcproj.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/generator/gen_vcnet_vcproj.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/generator/gen_vcnet_vcproj.py (original)
+++ subversion/branches/javahl-ra/build/generator/gen_vcnet_vcproj.py Tue May 29 01:39:41 2012
@@ -124,10 +124,6 @@ class Generator(gen_win.WinGeneratorBase
       self.write_with_template(fname, 'templates/vcnet_vcxproj.ezt', data)
       self.write_with_template(fname + '.filters', 'templates/vcnet_vcxproj_filters.ezt', data)
 
-  def find_rootpath(self):
-    "Gets the root path as understand by the project system"
-    return "$(SolutionDir)"
-
   def write(self):
     "Write a Solution (.sln)"
 
@@ -203,7 +199,8 @@ class Generator(gen_win.WinGeneratorBase
         if depends[i].fname.startswith(self.projfilesdir):
           path = depends[i].fname[len(self.projfilesdir) + 1:]
         else:
-          path = '$(SolutionDir)' + depends[i].fname
+          path = os.path.join(os.path.relpath('.', self.projfilesdir),
+                              depends[i].fname)
         deplist.append(gen_win.ProjectItem(guid=guids[depends[i].name],
                                            index=i,
                                            path=path,

Modified: subversion/branches/javahl-ra/build/generator/templates/build_zlib.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/generator/templates/build_zlib.ezt?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/generator/templates/build_zlib.ezt (original)
+++ subversion/branches/javahl-ra/build/generator/templates/build_zlib.ezt Tue May 29 01:39:41 2012
@@ -55,7 +55,7 @@ set OBJA=contrib\masmx86\gvmat32c.obj co
 set ASM_OPTS=ASFLAGS="%ASFLAGS%" LOC="%LOC%" OBJA="%OBJA%"
 [else]
 if /i "%2" == "Win32" (
-  set ASM_OPTS=LOC="-DASMV -DASMINF" OBJA="inffas32.obj match686.obj"
+  set ASM_OPTS=LOC="-DASMV -DASMINF" OBJA="inffas32.obj match686.obj" "AS=ml -safeseh"
 ) else if /i "%2" == "x64" (
   set ASM_OPTS=LOC="-DASMV -DASMINF" OBJA="inffasx64.obj gvmat64.obj inffas8664.obj" AS=ml64 
 )

Modified: subversion/branches/javahl-ra/build/generator/templates/makefile.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/generator/templates/makefile.ezt?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/generator/templates/makefile.ezt (original)
+++ subversion/branches/javahl-ra/build/generator/templates/makefile.ezt Tue May 29 01:39:41 2012
@@ -38,6 +38,8 @@ TEST_DEPS =[for test_deps] [test_deps][e
 
 TEST_PROGRAMS =[for test_progs] [test_progs][end]
 
+check-deps test-deps: [for test_helpers] [test_helpers][end]
+
 MANPAGES =[for manpages] [manpages][end]
 
 CLEAN_FILES =[for cfiles] [cfiles][end]
@@ -131,7 +133,7 @@ $([target.varname]_OBJECTS): $([target.v
 	$(MKDIR) [areas.files.installdir]
 	cd [areas.files.dirname] ; $(INSTALL_[areas.uppervar]) [areas.files.filename] [areas.files.installdir]/$(PACKAGE_NAME)[areas.files.objext][else]
 	cd [areas.files.dirname] ; $(INSTALL_[areas.uppervar]) [areas.files.filename] $(DESTDIR)[areas.files.install_fname][end][end][for areas.apache_files]
-	cd [areas.apache_files.dirname] ; $(MKDIR) "$(APACHE_LIBEXECDIR_TOOLS)" ; $(INSTALL_MOD_SHARED_TOOLS) -n [areas.apache_files.name] [areas.apache_files.filename][end]
+	cd [areas.apache_files.dirname] ; $(MKDIR) "$(APACHE_LIBEXECDIR)" ; $(INSTALL_MOD_SHARED) -n [areas.apache_files.name] [areas.apache_files.filename][end]
 [if-any areas.extra_install]	$(INSTALL_EXTRA_[areas.uppervar])
 [end][end][end]
 

Modified: subversion/branches/javahl-ra/build/generator/templates/vcnet_vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/generator/templates/vcnet_vcxproj.ezt?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/generator/templates/vcnet_vcxproj.ezt (original)
+++ subversion/branches/javahl-ra/build/generator/templates/vcnet_vcxproj.ezt Tue May 29 01:39:41 2012
@@ -33,7 +33,8 @@
 [for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'" Label="Configuration">
     <ConfigurationType>[config_type]</ConfigurationType>
     <UseDebugLibraries>[is configs.name "Debug"]true[else]false[end]</UseDebugLibraries>
-    <PlatformToolset>[toolset_version]</PlatformToolset>
+[is configs.name "Release"]    <WholeProgramOptimization>true</WholeProgramOptimization>
+[end]    <PlatformToolset>[toolset_version]</PlatformToolset>
   </PropertyGroup>
 [end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">

Modified: subversion/branches/javahl-ra/build/run_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/run_tests.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/run_tests.py (original)
+++ subversion/branches/javahl-ra/build/run_tests.py Tue May 29 01:39:41 2012
@@ -453,6 +453,11 @@ class TestHarness:
     if self.milestone_filter is not None:
       svntest.main.options.milestone_filter = self.milestone_filter
     if self.set_log_level is not None:
+      # Somehow the logger is not setup correctly from win-tests.py, so
+      # setting the log level would fail. ### Please fix
+      if svntest.main.logger is None:
+        import logging
+        svntest.main.logger = logging.getLogger()
       svntest.main.logger.setLevel(self.set_log_level)
     if self.svn_bin is not None:
       svntest.main.options.svn_bin = self.svn_bin

Modified: subversion/branches/javahl-ra/build/transform_sql.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/transform_sql.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/transform_sql.py (original)
+++ subversion/branches/javahl-ra/build/transform_sql.py Tue May 29 01:39:41 2012
@@ -49,7 +49,7 @@ class Processor(object):
 
   # a few SQL comments that act as directives for this transform system
   re_format = re.compile('-- *format: *([0-9]+)')
-  re_statement = re.compile('-- *STMT_([A-Z_0-9]+)')
+  re_statement = re.compile('-- *STMT_([A-Z_0-9]+)( +\(([^\)]*)\))?')
   re_include = re.compile('-- *include: *([-a-z]+)')
   re_define = re.compile('-- *define: *([A-Z_0-9]+)')
 
@@ -66,6 +66,13 @@ class Processor(object):
     self.close_define()
     self.output.write('#define STMT_%s %d\n' % (match.group(1),
                                                 self.stmt_count))
+
+    if match.group(3) == None:
+      info = 'NULL'
+    else:
+      info = '"' + match.group(3) + '"'
+    self.output.write('#define STMT_%d_INFO {"STMT_%s", %s}\n' %
+                      (self.stmt_count, match.group(1), info))
     self.output.write('#define STMT_%d \\\n' % (self.stmt_count,))
     self.var_printed = True
 
@@ -103,10 +110,35 @@ class Processor(object):
     for line in input.split('\n'):
       line = line.replace('"', '\\"')
 
+      # IS_STRICT_DESCENDANT_OF()
+
+      # A common operation in the working copy is determining descendants of
+      # a node. To allow Sqlite to use its indexes to provide the answer we
+      # must provide simple less than and greater than operations.
+      #
+      # For relative paths that consist of one or more components like 'subdir'
+      # we can accomplish this by comparing local_relpath with 'subdir/' and
+      # 'subdir0' ('/'+1 = '0')
+      #
+      # For the working copy root this case is less simple and not strictly
+      # valid utf-8/16 (but luckily Sqlite doesn't validate utf-8 nor utf-16).
+      # The binary blob x'FFFF' is higher than any valid utf-8 and utf-16
+      # sequence.
+      #
+      # So for the root we can compare with > '' and < x'FFFF'. (This skips the
+      # root itself and selects all descendants)
+      #
+      ### RH: I implemented this first with a user defined Sqlite function. But
+      ### when I wrote the documentation for it, I found out I could just
+      ### define it this way, without losing the option of just dropping the
+      ### query in a plain sqlite3.
+
       # '/'+1 == '0'
-      line = re.sub(r'IS_STRICT_DESCENDANT_OF[(]([A-Za-z_.]+), ([?][0-9]+)[)]',
-                    r"((\1) > (\2) || '/' AND (\1) < (\2) || '0') ",
-                    line)
+      line = re.sub(
+            r'IS_STRICT_DESCENDANT_OF[(]([A-Za-z_.]+), ([?][0-9]+)[)]',
+            r"(((\1) > (CASE (\2) WHEN '' THEN '' ELSE (\2) || '/' END))" +
+            r" AND ((\1) < CASE (\2) WHEN '' THEN X'FFFF' ELSE (\2) || '0' END))",
+            line)
 
       if line.strip():
         handled = False
@@ -167,6 +199,13 @@ def main(input_filepath, output):
       + ', \\\n'.join('    STMT_%d' % (i,) for i in range(proc.stmt_count))
       + ', \\\n    NULL \\\n  }\n')
 
+    output.write('\n')
+
+    output.write(
+      '#define %s_DECLARE_STATEMENT_INFO(varname) \\\n' % (var_name,)
+      + '  static const char * const varname[][2] = { \\\n'
+      + ', \\\n'.join('    STMT_%d_INFO' % (i) for i in range(proc.stmt_count))
+      + ', \\\n    {NULL, NULL} \\\n  }\n')
 
 if __name__ == '__main__':
   if len(sys.argv) < 2 or len(sys.argv) > 3:

Modified: subversion/branches/javahl-ra/build/win32/make_dist.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/win32/make_dist.py?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/win32/make_dist.py (original)
+++ subversion/branches/javahl-ra/build/win32/make_dist.py Tue May 29 01:39:41 2012
@@ -211,10 +211,10 @@ _disttree = {'': OptFile('%(readme)s', '
                      File('%(blddir)s/svnversion/svnversion.pdb'),
                      File('%(blddir)s/svnrdump/svnrdump.exe'),
                      File('%(blddir)s/svnrdump/svnrdump.pdb'),
+                     File('%(blddir)s/svnmucc/svnmucc.exe'),
+                     File('%(blddir)s/svnmucc/svnmucc.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'),
-                     File('%(blddir)s/../tools/client-side/svnmucc/svnmucc.pdb'),
                      File('%(blddir)s/../tools/server-side/svnauthz-validate.exe'),
                      File('%(blddir)s/../tools/server-side/svnauthz-validate.pdb'),
                      File('%(blddir)s/../tools/server-side/svn-populate-node-origins-index.exe'),

Modified: subversion/branches/javahl-ra/build/win32/vc6-build.bat.in
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/win32/vc6-build.bat.in?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/win32/vc6-build.bat.in (original)
+++ subversion/branches/javahl-ra/build/win32/vc6-build.bat.in Tue May 29 01:39:41 2012
@@ -137,6 +137,7 @@ copy src-%DIR%\Release\subversion\svnloo
 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\svnmucc\svnmucc.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/javahl-ra/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/configure.ac?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/configure.ac (original)
+++ subversion/branches/javahl-ra/configure.ac Tue May 29 01:39:41 2012
@@ -1184,12 +1184,12 @@ if test "$RUBY" != "none"; then
       AC_PATH_PROGS(RDOC, rdoc rdoc1.8 rdoc18, none)
     fi
     AC_CACHE_CHECK([for Ruby major version], [svn_cv_ruby_major],[
-    svn_cv_ruby_major="`$RUBY -rrbconfig -e 'print Config::CONFIG.fetch(%q(MAJOR))'`"
+    svn_cv_ruby_major="`$RUBY -rrbconfig -e 'print RbConfig::CONFIG.fetch(%q(MAJOR))'`"
     ])
     RUBY_MAJOR="$svn_cv_ruby_major"
 
     AC_CACHE_CHECK([for Ruby minor version], [svn_cv_ruby_minor],[
-    svn_cv_ruby_minor="`$RUBY -rrbconfig -e 'print Config::CONFIG.fetch(%q(MINOR))'`"
+    svn_cv_ruby_minor="`$RUBY -rrbconfig -e 'print RbConfig::CONFIG.fetch(%q(MINOR))'`"
     ])
     RUBY_MINOR="$svn_cv_ruby_minor"
 

Modified: subversion/branches/javahl-ra/contrib/client-side/emacs/dsvn.el
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/contrib/client-side/emacs/dsvn.el?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/contrib/client-side/emacs/dsvn.el (original)
+++ subversion/branches/javahl-ra/contrib/client-side/emacs/dsvn.el Tue May 29 01:39:41 2012
@@ -1083,19 +1083,24 @@ outside."
       (goto-char (point-max))
       (insert str)
       (goto-char svn-output-marker)
-      (while (cond ((looking-at
-                     "\\([ ACDGIMRX?!~][ CM][ L][ +][ S][ KOTB]\\)[ C]? \\([^ ].*\\)\n")
-                    (let ((status (match-string 1))
-                          (filename (svn-normalise-path (match-string 2))))
-                      (delete-region (match-beginning 0)
-                                     (match-end 0))
-                      (svn-insert-file filename status))
-                    t)
-                   ((looking-at
-                     "\n\\|Performing status on external item at .*\n")
-                    (delete-region (match-beginning 0)
-                                   (match-end 0))
-                    t))))))
+      (while
+	 (cond
+	  ((looking-at
+	    "\\([ ACDGIMRX?!~][ CM][ L][ +][ S][ KOTB]\\)[ C]? \\([^ ].*\\)\n")
+	   (let ((status (match-string 1))
+		 (filename (svn-normalise-path (match-string 2))))
+	     (delete-region (match-beginning 0) (match-end 0))
+	     (svn-insert-file filename status))
+	   t)
+	  ((looking-at "\n\\|Performing status on external item at .*\n")
+	   (delete-region (match-beginning 0) (match-end 0))
+	   t)
+	  ((looking-at "      > +\\([^ ].*\\)\n")
+	   (let ((tree-conflict (match-string 1)))
+	     (delete-region (match-beginning 0) (match-end 0))
+	     (svn-update-status-msg svn-last-inserted-marker "TConflict")
+	     (svn-update-conflict-msg svn-last-inserted-marker tree-conflict))
+	   t))))))
 
 (defun svn-status-sentinel (proc reason)
   (with-current-buffer (process-buffer proc)
@@ -1110,15 +1115,23 @@ outside."
       (goto-char (point-max))
       (insert str)
       (goto-char svn-output-marker)
-      (while (looking-at
-              "\\(?:\\(\\?.....\\)\\|\\([ ACDGIMRX!~][ CM][ L][ +][ S][ KOTB]\\)[ C]? [* ] +[^ ]+ +[^ ]+ +[^ ]+\\) +\\([^ ].*\\)\n")
-        (let ((status (or (match-string 1) (match-string 2)))
-              (filename (svn-normalise-path (match-string 3))))
-          (delete-region (match-beginning 0)
-                         (match-end 0))
-	  (when (or (not svn-file-filter)
-		    (member filename svn-file-filter))
-	    (svn-insert-file filename status)))))))
+      (while
+	  (cond
+	   ((looking-at
+	     "\\(?:\\(\\?.....\\)\\|\\([ ACDGIMRX!~][ CM][ L][ +][ S][ KOTB]\\)[ C]? [* ] +[^ ]+ +[^ ]+ +[^ ]+\\) +\\([^ ].*\\)\n")
+	    (let ((status (or (match-string 1) (match-string 2)))
+		  (filename (svn-normalise-path (match-string 3))))
+	      (delete-region (match-beginning 0) (match-end 0))
+	      (when (or (not svn-file-filter)
+			(member filename svn-file-filter))
+		(svn-insert-file filename status)))
+	    t)
+	   ((looking-at "      > +\\([^ ].*\\)\n")
+	    (let ((tree-conflict (match-string 1)))
+	      (delete-region (match-beginning 0) (match-end 0))
+	      (svn-update-status-msg svn-last-inserted-marker "TConflict")
+	      (svn-update-conflict-msg svn-last-inserted-marker tree-conflict))
+	    t))))))
 
 (defun svn-status-v-sentinel (proc reason)
   (with-current-buffer (process-buffer proc)
@@ -1209,11 +1222,12 @@ With prefix arg, prompt for REVISION."
       (goto-char svn-output-marker)
       (while (not nomore)
         (cond ((looking-at
-                "\\([ ADUCGE][ ADUCGE][ B]\\)  \\(.*\\)\n")
+                "\\([ ADUCGE][ ADUCGE][ B]\\)\\([ C]?\\) \\([^ ].*\\)\n")
                (let* ((status (match-string 1))
                       (file-status (elt status 0))
                       (prop-status (elt status 1))
-                      (filename (svn-normalise-path (match-string 2))))
+		      (tree-status (match-string 2))
+                      (filename (svn-normalise-path (match-string 3))))
                  (delete-region (match-beginning 0)
                                 (match-end 0))
                  (svn-insert-file
@@ -1223,7 +1237,9 @@ With prefix arg, prompt for REVISION."
                           (svn-remap-update-to-status file-status)
                           (svn-remap-update-to-status prop-status))
                   ;; Optimize for some common cases
-                  (cond ((= prop-status ?\ )
+                  (cond ((string= tree-status "C")
+			 "TConflict")
+			((= prop-status ?\ )
                          (cdr (assq file-status svn-update-flag-name)))
                         ((= file-status ?\ )
                          (let ((s (format "P %s"
@@ -2104,7 +2120,14 @@ Argument MSG is the character to use."
   (save-excursion
     (goto-char (+ pos svn-status-msg-col))
     (delete-char 9)
-    (insert-and-inherit (format "%9s" msg))))
+    (insert-and-inherit (format "%-9s" msg))))
+
+(defun svn-update-conflict-msg (pos msg)
+  (save-excursion
+    (let ((filename (svn-getprop pos 'file)))
+      (goto-char (+ pos svn-status-file-col (length filename)))
+      (delete-char (- (line-end-position) (point)))
+      (insert-and-inherit (concat " -- " msg)))))
 
 (defun svn-foreach-svn-buffer (file-name function)
   "Call FUNCTION for each svn status buffer that contains FILE-NAME.

Modified: subversion/branches/javahl-ra/contrib/client-side/emacs/vc-svn.el
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/contrib/client-side/emacs/vc-svn.el?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/contrib/client-side/emacs/vc-svn.el (original)
+++ subversion/branches/javahl-ra/contrib/client-side/emacs/vc-svn.el Tue May 29 01:39:41 2012
@@ -200,9 +200,9 @@ If the file is newly added, LOCAL is \"0
     (cond
      ((not state) nil)
      ;; A newly added file has no revision.
-     ((looking-at "....\\s-+\\(\\*\\s-+\\)?[-0]\\s-+\\(\\?\\|[0-9]+\\)")
+     ((looking-at ".......\\s-+\\(\\*\\s-+\\)?[-0]\\s-+\\(\\?\\|[0-9]+\\)")
       (list state "0" nil))
-     ((looking-at "....\\s-+\\(\\*\\s-+\\)?\\([0-9]+\\)\\s-+\\([0-9]+\\)")
+     ((looking-at ".......\\s-+\\(\\*\\s-+\\)?\\([0-9]+\\)\\s-+\\([0-9]+\\)")
       (list state
             (match-string 2)
             (match-string 3)))

Modified: subversion/branches/javahl-ra/notes/knobs
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/notes/knobs?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/notes/knobs (original)
+++ subversion/branches/javahl-ra/notes/knobs Tue May 29 01:39:41 2012
@@ -460,5 +460,10 @@ SVN_I_LIKE_LATENCY_SO_IGNORE_HTTPV2
              advertisement of HTTPv2 protocol support (if any), effectively
              causing them to only speak our original HTTP protocol.
 
+7.7 SVN_SVNMUCC_IS_SVNSYITF
+
+  Scope:     'make install-tools'
+  Purpose:   Symlinks $prefix/bin/svnsyitf to $prefix/bin/svnmucc
+
 * (TODO: others)
 

Modified: subversion/branches/javahl-ra/notes/merge-tracking/func-spec.html
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/notes/merge-tracking/func-spec.html?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/notes/merge-tracking/func-spec.html (original)
+++ subversion/branches/javahl-ra/notes/merge-tracking/func-spec.html Tue May 29 01:39:41 2012
@@ -149,6 +149,29 @@ mergeinfo for the merge is set on the de
 
 </ul>
 
+<h3>Rationale</h3>
+
+<p><em>[JAF] The above may be the actual behaviour but sounds too simplistic
+  to be the desired behaviour.  Although a simple depth attribute is
+  recorded for each dir in the WC, the ambient depth of a dir in the WC is
+  not simply one of empty/files/immediates/infinity, but rather is a tree in
+  which different branches are populated to different depths.  Surely the
+  merge ought to respond to the ambient depth rather than the simple depth
+  attribute.</em></p>
+
+<p><em>[JAF] It's not clear whether an incoming addition should be honoured
+  if the added node would fall outside the ambient depth.  The sparse-
+  directories design doesn't seem to address this case for updates, let
+  alone merges.  It would be silly if a merge could delete such a node (that
+  was present in the WC despite being outside its parent's 'depth'
+  attribute) and could not then re-add a node of the same name in order to
+  perform both halves of an incoming replacement.  <a
+  href="http://subversion.tigris.org/issues/show_bug.cgi?id=4164" >Issue
+  #4164 "inconsistencies in merge handling of adds vs. edits in shallow
+  targets"</a> is related.</em></p>
+
+<p>See <a href="../sparse-directories.txt">sparse-directories design</a>.</p>
+
 </div>  <!-- sparse-checkouts -->
 
 <div class="h2" id="switched-paths">
@@ -239,6 +262,50 @@ SSRP - Switched subtree's repository par
 
 </ul>
 
+<h3>Delete</h3>
+
+<p><a href="http://subversion.tigris.org/issues/show_bug.cgi?id=4163"
+  >Issue #4163 "merged deletion of switched subtrees records non-inheritable
+  mergeinfo"</a>: If a merge deletes the path SS, the desired behaviour
+  is currently undefined and the actual behaviour is that a commit will
+  delete <strong>both</strong> SS (from SSRP) and SS@BASE (from SSP).</p>
+
+<h3>Rationale</h3>
+
+<p>Why does merging work this way with switched subtrees?</p>
+
+<p>If a subtree (SS) is switched, that means the user has chosen for
+  the time being to work with a substitute for the original subtree
+  (SS@BASE), knowing that any modifications made in SS can be
+  committed only to the repository location of SS and the original
+  subtree SS@BASE remains hidden and unaffected.</p>
+
+<p>The general semantics of a merge is to apply local modifications
+  to the working copy and record the merge as having been applied
+  to the tree that is represented by the working copy.</p>
+
+<p>Merge tracking should ensure that the subtree of the merge that
+  goes into SS is recorded as being applied to SS, while the
+  subtree SS@BASE should be recorded as not having received that
+  merge.</p>
+
+<p>Since the working copy represents parts of two different branches,
+  two parts of the merge are thus applied to the two different
+  branches, and recorded as such when the user commits the result.</p>
+
+<p>If the user is doing a merge that may affect SS, it is reasonable
+  to assume that SS is an alternative variant of SS@BASE rather than
+  some totally unrelated item.  So, in terms of Subversion's loose
+  branching semantics, SS is a 'branch' of SS@BASE.  If the user
+  chooses to merge when the assumption is false and SS doesn't have
+  a sensible branching relationship with SS@BASE, the result will be
+  nonsensical or, in concrete terms, there will be merge conflicts.</p>
+
+<p>Note:  Many typical branching policies would forbid committing to
+  two branches at once, let alone committing merges to two branches
+  at once.  However, the user may have reasons for doing this merge
+  without intending to commit the result as-is.</p>
+
 </div>  <!-- switched-paths -->
 
 <div class="h2" id="prop-change">

Modified: subversion/branches/javahl-ra/notes/sparse-directories.txt
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/notes/sparse-directories.txt?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/notes/sparse-directories.txt (original)
+++ subversion/branches/javahl-ra/notes/sparse-directories.txt Tue May 29 01:39:41 2012
@@ -410,7 +410,21 @@ Contents
 7. Work Remaining
 =================
 
-   The list of outstanding issues is shown by this issue tracker query
-   (showing Summary fields that start with "[sparse-directories]"):
+   * The list of outstanding issues is shown by this issue tracker query
+     (showing Summary fields that start with "[sparse-directories]"):
 
 <http://subversion.tigris.org/issues/buglist.cgi?component=subversion&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED&short_desc=%5Bsparse-directories%5D&short_desc_type=casesubstring>
+
+   * Update this doc (sections 1 & 6) to WC-NG.
+
+   * Clarify whether an update should honour an incoming change that
+     adds a new node outside the ambient depth.  For example, if a new
+     node 'A/foo' has been added in the repository, and directory 'A' is
+     depth-empty in the WC (and an 'A/foo' is not already present),
+     should the update add 'A/foo', or should it skip it on the basis
+     that it's outside the current ambient depth?  If not, an update (or
+     merge) could delete an earlier node at the path 'A/foo' (that was
+     present in the WC despite being outside its parent's 'depth'
+     attribute) but could not then re-add a node of the same name in
+     order to perform both halves of an incoming replacement.  Wouldn't
+     that be silly?

Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.cpp?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.cpp Tue May 29 01:39:41 2012
@@ -936,7 +936,7 @@ void SVNClient::diff(const char *target1
                      OutputStream &outputStream, svn_depth_t depth,
                      StringArray &changelists,
                      bool ignoreAncestry, bool noDiffDelete, bool force,
-                     bool showCopiesAsAdds, bool ignoreProps)
+                     bool showCopiesAsAdds, bool ignoreProps, bool propsOnly)
 {
     SVN::Pool subPool(pool);
     const char *c_relToDir = relativeToDir ?
@@ -973,6 +973,7 @@ void SVNClient::diff(const char *target1
                                    showCopiesAsAdds,
                                    force,
                                    ignoreProps,
+                                   propsOnly,
                                    FALSE, /* use_git_diff_format */
                                    SVN_APR_LOCALE_CHARSET,
                                    outputStream.getStream(subPool),
@@ -1000,6 +1001,7 @@ void SVNClient::diff(const char *target1
                                showCopiesAsAdds,
                                force,
                                ignoreProps,
+                               propsOnly,
                                FALSE, /* use_git_diff_format */
                                SVN_APR_LOCALE_CHARSET,
                                outputStream.getStream(subPool),
@@ -1016,11 +1018,11 @@ void SVNClient::diff(const char *target1
                      const char *relativeToDir, OutputStream &outputStream,
                      svn_depth_t depth, StringArray &changelists,
                      bool ignoreAncestry, bool noDiffDelete, bool force,
-                     bool showCopiesAsAdds, bool ignoreProps)
+                     bool showCopiesAsAdds, bool ignoreProps, bool propsOnly)
 {
     diff(target1, revision1, target2, revision2, NULL, relativeToDir,
          outputStream, depth, changelists, ignoreAncestry, noDiffDelete, force,
-         showCopiesAsAdds, ignoreProps);
+         showCopiesAsAdds, ignoreProps, propsOnly);
 }
 
 void SVNClient::diff(const char *target, Revision &pegRevision,
@@ -1028,12 +1030,12 @@ void SVNClient::diff(const char *target,
                      const char *relativeToDir, OutputStream &outputStream,
                      svn_depth_t depth, StringArray &changelists,
                      bool ignoreAncestry, bool noDiffDelete, bool force,
-                     bool showCopiesAsAdds, bool ignoreProps)
+                     bool showCopiesAsAdds, bool ignoreProps, bool propsOnly)
 {
     diff(target, startRevision, NULL, endRevision, &pegRevision,
          relativeToDir, outputStream, depth, changelists,
          ignoreAncestry, noDiffDelete, force, showCopiesAsAdds,
-         ignoreProps);
+         ignoreProps, propsOnly);
 }
 
 void

Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.h?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.h (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.h Tue May 29 01:39:41 2012
@@ -177,13 +177,13 @@ class SVNClient :public SVNBase
             const char *relativeToDir, OutputStream &outputStream,
             svn_depth_t depth, StringArray &changelists,
             bool ignoreAncestry, bool noDiffDelete, bool force,
-            bool showCopiesAsAdds, bool ignoreProps);
+            bool showCopiesAsAdds, bool ignoreProps, bool propsOnly);
   void diff(const char *target, Revision &pegevision,
             Revision &startRevision, Revision &endRevision,
             const char *relativeToDir, OutputStream &outputStream,
             svn_depth_t depth, StringArray &changelists,
             bool ignoreAncestry, bool noDiffDelete, bool force,
-            bool showCopiesAsAdds, bool ignoreProps);
+            bool showCopiesAsAdds, bool ignoreProps, bool propsOnly);
   void diffSummarize(const char *target1, Revision &revision1,
                      const char *target2, Revision &revision2,
                      svn_depth_t depth, StringArray &changelists,
@@ -212,7 +212,7 @@ class SVNClient :public SVNBase
             OutputStream &outputStream, svn_depth_t depth,
             StringArray &changelists,
             bool ignoreAncestry, bool noDiffDelete, bool force,
-            bool showCopiesAsAdds, bool ignoreProps);
+            bool showCopiesAsAdds, bool ignoreProps, bool propsOnly);
 
   Path m_lastPath;
   ClientContext context;

Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Tue May 29 01:39:41 2012
@@ -1171,12 +1171,12 @@ JNIEXPORT void JNICALL Java_org_apache_s
 }
 
 JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Ljava_io_OutputStream_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZZ
+Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Ljava_io_OutputStream_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZZZ
 (JNIEnv *env, jobject jthis, jstring jtarget1, jobject jrevision1,
  jstring jtarget2, jobject jrevision2, jstring jrelativeToDir,
  jobject jstream, jobject jdepth, jobject jchangelists,
  jboolean jignoreAncestry, jboolean jnoDiffDeleted, jboolean jforce,
- jboolean jcopiesAsAdds, jboolean jignoreProps)
+ jboolean jcopiesAsAdds, jboolean jignoreProps, jboolean jpropsOnly)
 {
   JNIEntry(SVNClient, diff);
   SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -1217,16 +1217,17 @@ Java_org_apache_subversion_javahl_SVNCli
            EnumMapper::toDepth(jdepth), changelists,
            jignoreAncestry ? true:false,
            jnoDiffDeleted ? true:false, jforce ? true:false,
-           jcopiesAsAdds ? true:false, jignoreProps ? true:false);
+           jcopiesAsAdds ? true:false, jignoreProps ? true:false,
+           jpropsOnly ? true:false);
 }
 
 JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Ljava_io_OutputStream_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZZ
+Java_org_apache_subversion_javahl_SVNClient_diff__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Ljava_lang_String_2Ljava_io_OutputStream_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2ZZZZZZ
 (JNIEnv *env, jobject jthis, jstring jtarget, jobject jpegRevision,
  jobject jstartRevision, jobject jendRevision, jstring jrelativeToDir,
  jobject jstream, jobject jdepth, jobject jchangelists,
  jboolean jignoreAncestry, jboolean jnoDiffDeleted, jboolean jforce,
- jboolean jcopiesAsAdds, jboolean jignoreProps)
+ jboolean jcopiesAsAdds, jboolean jignoreProps, jboolean jpropsOnly)
 {
   JNIEntry(SVNClient, diff);
   SVNClient *cl = SVNClient::getCppObject(jthis);
@@ -1267,7 +1268,8 @@ Java_org_apache_subversion_javahl_SVNCli
            dataOut, EnumMapper::toDepth(jdepth), changelists,
            jignoreAncestry ? true:false,
            jnoDiffDeleted ? true:false, jforce ? true:false,
-           jcopiesAsAdds ? true:false, jignoreProps ? true:false);
+           jcopiesAsAdds ? true:false, jignoreProps ? true:false,
+           jpropsOnly ? true:false);
 }
 
 JNIEXPORT void JNICALL

Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java Tue May 29 01:39:41 2012
@@ -544,7 +544,14 @@ public class ClientNotifyInformation ext
         failed_forbidden_by_server ("failed forbidden by server"),
 
         /** Operation skipped the path because it was conflicted */
-        skip_conflicted ("skipped conflicted path");
+        skip_conflicted ("skipped conflicted path"),
+
+        /** The lock on a file was removed during update */
+        update_broken_lock ("broken lock removed"),
+
+        /** Operation failed because a node is obstructed */
+        failed_obstructed ("failed by obstruction");
+
 
         /**
          * The description of the action.

Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Tue May 29 01:39:41 2012
@@ -522,13 +522,14 @@ public interface ISVNClient
      * @param copiesAsAdds  if set, copied files will be shown in their
      *                      entirety, not as diffs from their sources
      * @param ignoreProps   don't show property diffs
+     * @param propsOnly     show property changes only
      * @throws ClientException
      */
     void diff(String target1, Revision revision1, String target2,
               Revision revision2, String relativeToDir, OutputStream outStream,
               Depth depth, Collection<String> changelists,
               boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
-              boolean copiesAsAdds, boolean ignoreProps)
+              boolean copiesAsAdds, boolean ignoreProps, boolean propsOnly)
             throws ClientException;
 
     void diff(String target1, Revision revision1, String target2,
@@ -554,6 +555,7 @@ public interface ISVNClient
      * @param copiesAsAdds  if set, copied files will be shown in their
      *                      entirety, not as diffs from their sources
      * @param ignoreProps   don't show property diffs
+     * @param propsOnly     show property changes only
      * @throws ClientException
      */
     void diff(String target, Revision pegRevision, Revision startRevision,
@@ -561,7 +563,7 @@ public interface ISVNClient
               OutputStream outStream,
               Depth depth, Collection<String> changelists,
               boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
-              boolean copiesAsAdds, boolean ignoreProps)
+              boolean copiesAsAdds, boolean ignoreProps, boolean propsOnly)
             throws ClientException;
 
     void diff(String target, Revision pegRevision, Revision startRevision,

Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Tue May 29 01:39:41 2012
@@ -278,7 +278,7 @@ public class SVNClient implements ISVNCl
             OutputStream stream = new FileOutputStream(outFileName);
             diff(target1, revision1, target2, revision2, relativeToDir,
                  stream, depth, changelists, ignoreAncestry, noDiffDeleted,
-                 force, copiesAsAdds, false);
+                 force, copiesAsAdds, false, false);
         } catch (FileNotFoundException ex) {
             throw ClientException.fromException(ex);
         }
@@ -290,7 +290,7 @@ public class SVNClient implements ISVNCl
                             Collection<String> changelists,
                             boolean ignoreAncestry, boolean noDiffDeleted,
                             boolean force, boolean copiesAsAdds,
-                            boolean ignoreProps)
+                            boolean ignoreProps, boolean propsOnly)
             throws ClientException;
 
     public void diff(String target, Revision pegRevision,
@@ -305,7 +305,7 @@ public class SVNClient implements ISVNCl
             OutputStream stream = new FileOutputStream(outFileName);
             diff(target, pegRevision, startRevision, endRevision,
                  relativeToDir, stream, depth, changelists, ignoreAncestry,
-                 noDiffDeleted, force, copiesAsAdds, false);
+                 noDiffDeleted, force, copiesAsAdds, false, false);
         } catch (FileNotFoundException ex) {
             throw ClientException.fromException(ex);
         }
@@ -317,7 +317,7 @@ public class SVNClient implements ISVNCl
                             Depth depth, Collection<String> changelists,
                             boolean ignoreAncestry, boolean noDiffDeleted,
                             boolean force, boolean copiesAsAdds,
-                            boolean ignoreProps)
+                            boolean ignoreProps, boolean propsOnly)
             throws ClientException;
 
     public native void diffSummarize(String target1, Revision revision1,

Modified: subversion/branches/javahl-ra/subversion/include/private/svn_client_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/include/private/svn_client_private.h?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/include/private/svn_client_private.h (original)
+++ subversion/branches/javahl-ra/subversion/include/private/svn_client_private.h Tue May 29 01:39:41 2012
@@ -144,9 +144,33 @@ svn_client__youngest_common_ancestor(con
                                      apr_pool_t *result_pool,
                                      apr_pool_t *scratch_pool);
 
-/* Set *ORIGIN_P to the origin of the WC node at WC_ABSPATH.  If the node
+/* Get the repository location of the base node at LOCAL_ABSPATH.
+ *
+ * A pathrev_t wrapper around svn_wc__node_get_base().
+ *
+ * Set *BASE_P to the location that this node was checked out at or last
+ * updated/switched to, regardless of any uncommitted changes (delete,
+ * replace and/or copy-here/move-here).
+ *
+ * If there is no base node at LOCAL_ABSPATH (such as when there is a
+ * locally added/copied/moved-here node that is not part of a replace),
+ * set *BASE_P to NULL.
+ */
+svn_error_t *
+svn_client__wc_node_get_base(svn_client__pathrev_t **base_p,
+                             const char *wc_abspath,
+                             svn_client_ctx_t *ctx,
+                             apr_pool_t *result_pool,
+                             apr_pool_t *scratch_pool);
+
+/* Get the original location of the WC node at LOCAL_ABSPATH.
+ *
+ * A pathrev_t wrapper around svn_wc__node_get_origin().
+ *
+ * Set *ORIGIN_P to the origin of the WC node at WC_ABSPATH.  If the node
  * is a local copy, give the copy-from location.  If the node is locally
- * added or deleted, set *ORIGIN_P to NULL. */
+ * added or deleted, set *ORIGIN_P to NULL.
+ */
 svn_error_t *
 svn_client__wc_node_get_origin(svn_client__pathrev_t **origin_p,
                                const char *wc_abspath,

Modified: subversion/branches/javahl-ra/subversion/include/private/svn_fs_util.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/include/private/svn_fs_util.h?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/include/private/svn_fs_util.h (original)
+++ subversion/branches/javahl-ra/subversion/include/private/svn_fs_util.h Tue May 29 01:39:41 2012
@@ -59,6 +59,13 @@ svn_fs__canonicalize_abspath(const char 
 svn_error_t *
 svn_fs__check_fs(svn_fs_t *fs, svn_boolean_t expect_open);
 
+/* An identifier for FS to be used in the text of error messages.
+   (Not used anywhere but in this header.)
+
+   Note: we log the UUID, rather than (fs)->path, since some of these
+   errors are marshalled to the client. */
+#define svn_fs__identifier(fs) ((fs)->uuid)
+
 /* Constructing nice error messages for roots.  */
 
 /* Build an SVN_ERR_FS_NOT_FOUND error, with a detailed error text,
@@ -79,17 +86,17 @@ svn_fs__check_fs(svn_fs_t *fs, svn_boole
 
 /* Build a detailed `file already exists' message for PATH in ROOT.
    ROOT is of type svn_fs_root_t *. */
-#define SVN_FS__ALREADY_EXISTS(root, path_str, pool) (                         \
+#define SVN_FS__ALREADY_EXISTS(root, path_str) (                               \
   root->is_txn_root ?                                                          \
     svn_error_createf                                                          \
       (SVN_ERR_FS_ALREADY_EXISTS, 0,                                           \
        _("File already exists: filesystem '%s', transaction '%s', path '%s'"), \
-       svn_dirent_local_style(root->fs->path, pool), root->txn, path_str)      \
+       svn_fs__identifier(root->fs), root->txn, path_str)      \
   :                                                                            \
     svn_error_createf                                                          \
       (SVN_ERR_FS_ALREADY_EXISTS, 0,                                           \
        _("File already exists: filesystem '%s', revision %ld, path '%s'"),     \
-       svn_dirent_local_style(root->fs->path, pool), root->rev, path_str)      \
+       svn_fs__identifier(root->fs), root->rev, path_str)      \
   )
 
 /* ROOT is of type svn_fs_root_t *. */
@@ -100,64 +107,64 @@ svn_fs__check_fs(svn_fs_t *fs, svn_boole
 
 /* SVN_FS__ERR_NOT_MUTABLE: the caller attempted to change a node
    outside of a transaction. FS is of type "svn_fs_t *". */
-#define SVN_FS__ERR_NOT_MUTABLE(fs, rev, path_in_repo, scratch_pool)     \
+#define SVN_FS__ERR_NOT_MUTABLE(fs, rev, path_in_repo)                   \
   svn_error_createf(                                                     \
      SVN_ERR_FS_NOT_MUTABLE, 0,                                          \
      _("File is not mutable: filesystem '%s', revision %ld, path '%s'"), \
-     svn_dirent_local_style(fs->path, scratch_pool), rev, path_in_repo)
+     svn_fs__identifier(fs), rev, path_in_repo)
 
-/* FS is of type "svn fs_t *".*/
-#define SVN_FS__ERR_NOT_DIRECTORY(fs, path_in_repo, scratch_pool) \
+/* FS is of type "svn_fs_t *".*/
+#define SVN_FS__ERR_NOT_DIRECTORY(fs, path_in_repo)               \
   svn_error_createf(                                              \
      SVN_ERR_FS_NOT_DIRECTORY, 0,                                 \
      _("'%s' is not a directory in filesystem '%s'"),             \
-     path_in_repo, svn_dirent_local_style(fs->path, scratch_pool))
+     path_in_repo, svn_fs__identifier(fs))
 
-/* FS is of type "svn fs_t *".   */
-#define SVN_FS__ERR_NOT_FILE(fs, path_in_repo, scratch_pool)      \
+/* FS is of type "svn_fs_t *".   */
+#define SVN_FS__ERR_NOT_FILE(fs, path_in_repo)                    \
   svn_error_createf(                                              \
      SVN_ERR_FS_NOT_FILE, 0,                                      \
      _("'%s' is not a file in filesystem '%s'"),                  \
-     path_in_repo, svn_dirent_local_style(fs->path, scratch_pool))
+     path_in_repo, svn_fs__identifier(fs))
 
 
-/* FS is of type "svn fs_t *", LOCK is of type "svn_lock_t *".   */
-#define SVN_FS__ERR_PATH_ALREADY_LOCKED(fs, lock, scratch_pool)             \
+/* FS is of type "svn_fs_t *", LOCK is of type "svn_lock_t *".   */
+#define SVN_FS__ERR_PATH_ALREADY_LOCKED(fs, lock)                           \
   svn_error_createf(                                                        \
      SVN_ERR_FS_PATH_ALREADY_LOCKED, 0,                                     \
      _("Path '%s' is already locked by user '%s' in filesystem '%s'"),      \
-     lock->path, lock->owner, svn_dirent_local_style(fs->path, scratch_pool))
+     (lock)->path, (lock)->owner, svn_fs__identifier(fs))
 
-/* FS is of type "svn fs_t *". */
-#define SVN_FS__ERR_NO_SUCH_LOCK(fs, path_in_repo, scratch_pool)  \
+/* FS is of type "svn_fs_t *". */
+#define SVN_FS__ERR_NO_SUCH_LOCK(fs, path_in_repo)                \
   svn_error_createf(                                              \
      SVN_ERR_FS_NO_SUCH_LOCK, 0,                                  \
      _("No lock on path '%s' in filesystem '%s'"),                \
-     path_in_repo, svn_dirent_local_style(fs->path, scratch_pool))
+     path_in_repo, svn_fs__identifier(fs))
 
-/* FS is of type "svn fs_t *". */
-#define SVN_FS__ERR_LOCK_EXPIRED(fs, token, scratch_pool)        \
+/* FS is of type "svn_fs_t *". */
+#define SVN_FS__ERR_LOCK_EXPIRED(fs, token)                      \
   svn_error_createf(                                             \
      SVN_ERR_FS_LOCK_EXPIRED, 0,                                 \
      _("Lock has expired: lock-token '%s' in filesystem '%s'"),  \
-     token, svn_dirent_local_style(fs->path, scratch_pool))
+     token, svn_fs__identifier(fs))
 
-/* FS is of type "svn fs_t *". */
-#define SVN_FS__ERR_NO_USER(fs, scratch_pool)                       \
+/* FS is of type "svn_fs_t *". */
+#define SVN_FS__ERR_NO_USER(fs)                                     \
   svn_error_createf(                                                \
      SVN_ERR_FS_NO_USER, 0,                                         \
      _("No username is currently associated with filesystem '%s'"), \
-     svn_dirent_local_style(fs->path, scratch_pool))
+     svn_fs__identifier(fs))
 
 /* SVN_FS__ERR_LOCK_OWNER_MISMATCH: trying to use a lock whose
    LOCK_OWNER doesn't match the USERNAME associated with FS.
-   FS is of type "svn fs_t *". */
-#define SVN_FS__ERR_LOCK_OWNER_MISMATCH(fs, username, lock_owner, pool) \
+   FS is of type "svn_fs_t *". */
+#define SVN_FS__ERR_LOCK_OWNER_MISMATCH(fs, username, lock_owner)       \
   svn_error_createf(                                                    \
      SVN_ERR_FS_LOCK_OWNER_MISMATCH, 0,                                 \
      _("User '%s' is trying to use a lock owned by '%s' in "            \
        "filesystem '%s'"),                                              \
-     username, lock_owner, svn_dirent_local_style(fs->path, pool))
+     username, lock_owner, svn_fs__identifier(fs))
 
 /* Return a NULL-terminated copy of the first component of PATH,
    allocated in POOL.  If path is empty, or consists entirely of

Modified: subversion/branches/javahl-ra/subversion/include/private/svn_mergeinfo_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/include/private/svn_mergeinfo_private.h?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/include/private/svn_mergeinfo_private.h (original)
+++ subversion/branches/javahl-ra/subversion/include/private/svn_mergeinfo_private.h Tue May 29 01:39:41 2012
@@ -185,7 +185,8 @@ svn_mergeinfo__to_formatted_string(svn_s
                                    apr_pool_t *pool);
 
 /* Set *YOUNGEST_REV and *OLDEST_REV to the youngest and oldest revisions
-   found in the rangelists within MERGEINFO.  If MERGEINFO is NULL or empty
+   found in the rangelists within MERGEINFO.  Note that *OLDEST_REV is
+   exclusive and *YOUNGEST_REV is inclusive.  If MERGEINFO is NULL or empty
    set *YOUNGEST_REV and *OLDEST_REV to SVN_INVALID_REVNUM. */
 svn_error_t *
 svn_mergeinfo__get_range_endpoints(svn_revnum_t *youngest_rev,
@@ -194,9 +195,9 @@ svn_mergeinfo__get_range_endpoints(svn_r
                                    apr_pool_t *pool);
 
 /* Set *FILTERED_MERGEINFO to a deep copy of MERGEINFO, allocated in
-   RESULT_POOL, less any rangelists that fall outside of the range
-   OLDEST_REV:YOUNGEST_REV (inclusive) if INCLUDE_RANGE is true, or less
-   any rangelists within the range OLDEST_REV:YOUNGEST_REV if INCLUDE_RANGE
+   RESULT_POOL, less any revision ranges that fall outside of the range
+   OLDEST_REV:YOUNGEST_REV (exclusive:inclusive) if INCLUDE_RANGE is true,
+   or less any ranges within OLDEST_REV:YOUNGEST_REV if INCLUDE_RANGE
    is false.  If all the rangelists mapped to a given path are filtered
    then filter that path as well.  If all paths are filtered or MERGEINFO is
    empty or NULL then *FILTERED_MERGEINFO is set to an empty hash.

Modified: subversion/branches/javahl-ra/subversion/include/private/svn_named_atomic.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/include/private/svn_named_atomic.h?rev=1343447&r1=1343446&r2=1343447&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/include/private/svn_named_atomic.h (original)
+++ subversion/branches/javahl-ra/subversion/include/private/svn_named_atomic.h Tue May 29 01:39:41 2012
@@ -51,6 +51,16 @@ typedef struct svn_named_atomic__t svn_n
  */
 #define SVN_NAMED_ATOMIC__MAX_NAME_LENGTH 30
 
+/** Returns #FALSE when named atomics are not available to our process
+ * and svn_atomic_namespace__create is likely to fail.
+ *
+ * Please note that the actual check will be performed only once and later
+ * changes in process privileges will not reflect in the outcome of future
+ * calls to this function.
+ */
+svn_boolean_t
+svn_named_atomic__is_supported(void);
+
 /** Returns #TRUE on platforms that don't need expensive synchronization
  * objects to serialize access to named atomics. If this returns #FALSE,
  * reading from or modifying a #svn_named_atomic__t may be as expensive