You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2013/06/30 03:03:14 UTC

svn commit: r1498045 [1/8] - in /subversion/branches/fsfs-format7: ./ build/ build/generator/ build/generator/templates/ notes/tree-conflicts/ subversion/bindings/cxxhl/include/ subversion/bindings/cxxhl/include/svncxxhl/ subversion/bindings/cxxhl/src/...

Author: stefan2
Date: Sun Jun 30 01:03:10 2013
New Revision: 1498045

URL: http://svn.apache.org/r1498045
Log:
On the fsfs-format7 branch: catch up with /trunk up to r1498043.
Resolved various conflicts due to fs_fs.c changes.

Added:
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/CommitEditor.cpp
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/native/CommitEditor.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/CommitEditor.h
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/native/CommitEditor.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/Iterator.cpp
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/native/Iterator.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/Iterator.h
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/native/Iterator.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/LockTokenTable.cpp
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/native/LockTokenTable.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/LockTokenTable.h
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/native/LockTokenTable.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/OperationContext.cpp
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/native/OperationContext.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/OperationContext.h
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/native/OperationContext.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/RemoteSession.cpp
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/native/RemoteSession.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/RemoteSession.h
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/native/RemoteSession.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/RemoteSessionContext.cpp
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/native/RemoteSessionContext.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/RemoteSessionContext.h
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/native/RemoteSessionContext.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/org_apache_subversion_javahl_ConfigImpl_Category.cpp
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_ConfigImpl_Category.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.cpp
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_CommitEditor.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.cpp
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteSession.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConfigImpl.java
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConfigImpl.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNConfig.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRemote.java
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRemote.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNReporter.java
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNReporter.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIObject.java
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/JNIObject.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/OperationContext.java
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/OperationContext.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ConfigEvent.java
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ConfigEvent.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/
      - copied from r1498043, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/
    subversion/branches/fsfs-format7/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
      - copied unchanged from r1498043, subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
    subversion/branches/fsfs-format7/subversion/libsvn_subr/utf8proc/utf8proc.c
      - copied unchanged from r1498043, subversion/trunk/subversion/libsvn_subr/utf8proc/utf8proc.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/utf8proc/utf8proc_data.c
      - copied unchanged from r1498043, subversion/trunk/subversion/libsvn_subr/utf8proc/utf8proc_data.c
Removed:
    subversion/branches/fsfs-format7/subversion/libsvn_subr/utf8proc/utf8proc.c.inline
    subversion/branches/fsfs-format7/subversion/libsvn_subr/utf8proc/utf8proc_data.c.inline
Modified:
    subversion/branches/fsfs-format7/   (props changed)
    subversion/branches/fsfs-format7/CHANGES
    subversion/branches/fsfs-format7/COMMITTERS
    subversion/branches/fsfs-format7/Makefile.in
    subversion/branches/fsfs-format7/build.conf
    subversion/branches/fsfs-format7/build/generator/gen_win.py
    subversion/branches/fsfs-format7/build/generator/templates/vcnet_vcproj.ezt
    subversion/branches/fsfs-format7/build/generator/templates/vcnet_vcxproj.ezt
    subversion/branches/fsfs-format7/build/run_tests.py
    subversion/branches/fsfs-format7/notes/tree-conflicts/use-cases.txt
    subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl.hpp
    subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl/_compat.hpp
    subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl/exception.hpp
    subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl/tristate.hpp
    subversion/branches/fsfs-format7/subversion/bindings/cxxhl/src/exception.cpp
    subversion/branches/fsfs-format7/subversion/bindings/cxxhl/src/tristate.cpp
    subversion/branches/fsfs-format7/subversion/bindings/cxxhl/tests/test_exception.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ClientContext.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ClientContext.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/CommitCallback.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/CommitCallback.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/CreateJ.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/CreateJ.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/EnumMapper.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/EnumMapper.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/JNIStringHolder.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/JNIUtil.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/JNIUtil.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ListCallback.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/Path.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/Path.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/Prompter.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/RevpropTable.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/RevpropTable.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/SVNBase.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/SVNBase.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/SVNClient.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/SVNClient.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientException.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/tests/org/apache/subversion/javahl/RunTests.java
    subversion/branches/fsfs-format7/subversion/bindings/swig/perl/native/Client.pm
    subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/util.rb
    subversion/branches/fsfs-format7/subversion/include/private/svn_client_private.h
    subversion/branches/fsfs-format7/subversion/include/private/svn_editor.h
    subversion/branches/fsfs-format7/subversion/include/private/svn_io_private.h
    subversion/branches/fsfs-format7/subversion/include/private/svn_ra_private.h
    subversion/branches/fsfs-format7/subversion/include/private/svn_repos_private.h
    subversion/branches/fsfs-format7/subversion/include/private/svn_wc_private.h
    subversion/branches/fsfs-format7/subversion/include/svn_client.h
    subversion/branches/fsfs-format7/subversion/include/svn_config.h
    subversion/branches/fsfs-format7/subversion/include/svn_error_codes.h
    subversion/branches/fsfs-format7/subversion/include/svn_fs.h
    subversion/branches/fsfs-format7/subversion/include/svn_ra.h
    subversion/branches/fsfs-format7/subversion/include/svn_repos.h
    subversion/branches/fsfs-format7/subversion/include/svn_wc.h
    subversion/branches/fsfs-format7/subversion/libsvn_client/blame.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/cleanup.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/client.h
    subversion/branches/fsfs-format7/subversion/libsvn_client/commit.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/copy.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/deprecated.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/diff.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/log.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/merge.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/ra.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/switch.c
    subversion/branches/fsfs-format7/subversion/libsvn_delta/compat.c
    subversion/branches/fsfs-format7/subversion/libsvn_delta/editor.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs/editor.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs/fs-loader.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs/fs-loader.h
    subversion/branches/fsfs-format7/subversion/libsvn_fs_base/bdb/env.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_base/fs.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_base/tree.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/cached_data.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/fs.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/fs_fs.h
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/pack.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/revprops.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/revprops.h
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/tree.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra/ra_loader.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra/util.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/blame.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/commit.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getdate.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getlocations.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getlocationsegments.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getlocks.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/inherited_props.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/log.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/mergeinfo.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/options.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/property.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/ra_serf.h
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/replay.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/serf.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/update.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/util.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/commit.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/deprecated.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/dump.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/fs-wrap.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/replay.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/repos.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/config_file.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/io.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/sqlite.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/stream.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/utf8proc.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/adm_ops.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/conflicts.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/crop.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/deprecated.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/entries.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/externals.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/info.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/tree_conflicts.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/update_editor.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/upgrade.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/util.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/wc-queries.sql
    subversion/branches/fsfs-format7/subversion/libsvn_wc/wc.h
    subversion/branches/fsfs-format7/subversion/libsvn_wc/wc_db.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/wc_db.h
    subversion/branches/fsfs-format7/subversion/libsvn_wc/wc_db_update_move.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/wc_db_wcroot.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/workqueue.c
    subversion/branches/fsfs-format7/subversion/mod_dav_svn/version.c
    subversion/branches/fsfs-format7/subversion/po/de.po
    subversion/branches/fsfs-format7/subversion/svn/cl.h
    subversion/branches/fsfs-format7/subversion/svn/cleanup-cmd.c
    subversion/branches/fsfs-format7/subversion/svn/conflict-callbacks.c
    subversion/branches/fsfs-format7/subversion/svn/file-merge.c
    subversion/branches/fsfs-format7/subversion/svn/merge-cmd.c
    subversion/branches/fsfs-format7/subversion/svn/mergeinfo-cmd.c
    subversion/branches/fsfs-format7/subversion/svn/notify.c
    subversion/branches/fsfs-format7/subversion/svn/svn.c
    subversion/branches/fsfs-format7/subversion/svn/util.c
    subversion/branches/fsfs-format7/subversion/svnadmin/svnadmin.c
    subversion/branches/fsfs-format7/subversion/svnlook/svnlook.c
    subversion/branches/fsfs-format7/subversion/tests/cmdline/README
    subversion/branches/fsfs-format7/subversion/tests/cmdline/blame_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/checkout_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/lock_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/mergeinfo_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/move_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/svnadmin_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/svnmucc_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/svntest/main.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/wc_tests.py
    subversion/branches/fsfs-format7/subversion/tests/libsvn_fs/   (props changed)
    subversion/branches/fsfs-format7/subversion/tests/libsvn_fs_fs/fs-pack-test.c
    subversion/branches/fsfs-format7/subversion/tests/libsvn_subr/io-test.c
    subversion/branches/fsfs-format7/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/fsfs-format7/subversion/tests/svn_test_fs.c
    subversion/branches/fsfs-format7/tools/client-side/svn-bench/help-cmd.c
    subversion/branches/fsfs-format7/tools/dev/po-merge.py
    subversion/branches/fsfs-format7/tools/dev/unix-build/Makefile.svn
    subversion/branches/fsfs-format7/tools/dist/backport.pl
    subversion/branches/fsfs-format7/tools/dist/make-deps-tarball.sh   (props changed)
    subversion/branches/fsfs-format7/tools/server-side/fsfs-stats.c
    subversion/branches/fsfs-format7/tools/server-side/svnpubsub/svnpubsub/server.py
    subversion/branches/fsfs-format7/tools/server-side/svnpubsub/svnwcsub.py
    subversion/branches/fsfs-format7/win-tests.py

Propchange: subversion/branches/fsfs-format7/
------------------------------------------------------------------------------
  Merged /subversion/branches/javahl-ra:r991978-1342681,1342683-1344976,1344978-1494640
  Merged /subversion/trunk:r1490670-1498043
  Merged /subversion/branches/verify-keep-going:r1439280-1492639

Modified: subversion/branches/fsfs-format7/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/CHANGES?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/CHANGES (original)
+++ subversion/branches/fsfs-format7/CHANGES Sun Jun 30 01:03:10 2013
@@ -24,6 +24,50 @@ http://svn.apache.org/repos/asf/subversi
   - Bindings:
 
 
+Version 1.8.1
+(?? July 2013, from /branches/1.8.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.8.1
+
+ User-visible changes:
+  - Client-side bugfixes:
+    * rename 'automatic merge' to 'complete merge' (r1491432)
+    * resolve endless loop problem when files contain inproper data (r1492145)
+    * remove revision property buffer limit in fsfs (r1491770)
+    * reduce network usage for 'svn mergeinfo --show-revs' (r1492005)
+    * resolve segfault in fsfs-stats when passing invalid path (r1492164)
+    * fix 'svnadmin upgrade' error of non-shared fsfs repositories (r1494287)
+    * fix data loss when cancelling 'svnadmin upgrade' in last stage (r1494298)
+    * deny 'svnadmin create --fs-type=fsfs --compatible-version=1.0' (r1494223)
+    * improve http status handling in ra_serf (r1495104)
+    * avoid unneeded ra session in 'svn merge' (r1495279)
+    * reduce network usage for 'svn merge' (r1478987)
+    * remove duplicated ancestry check in 'svn merge' (r1493424)
+    * fix the standard 'Accept-Encoding' header (r1497641)
+
+  - Server-side bugfixes:
+    * provide better http status for anonymous user errors (r1495918)
+    * provide better http status for commit failures (r1490684)
+    * fix performance regression in 'svn log' against root (r1494913)
+    * allow deleting non-default 'svn:' properties (r1495432)
+
+ Developer-visible changes
+  - General:
+    * fix some ra_serf specific test runner issues on Windows (r1490679)
+    * fix help output of 'svn-bench' (r1493951)
+    * fix two issues in reverse svn_ra_get_file_revs() (r1492148, et al)
+    * handle --compatible-version=1.8 in the C tests (r1494342)
+    * improve clang compatibility (r1480080 et all)
+    * add version header to svnpubsub server (r1491707)
+    * use proper cancel baton when handling conflicts (r1495850)
+    * tweak configure.ac documentation (r1495967)
+    * provide proper error value from BDB (r1495428)
+    * tweak ra_serf connection failed error value (r1496132, et al)
+    * resolve possible segfault in 'svn log' (r1496110)
+
+  - Bindings:
+    * fix swig-rb tests with out-of-tree-builds (r1492295)
+
+
 Version 1.8.0
 (18 Jun 2013, from /branches/1.8.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.8.0
@@ -125,7 +169,6 @@ http://svn.apache.org/repos/asf/subversi
     * support ipv6 in URLs (e.g. http://[::1]/svn/repos) (r1454047)
     * conflict resolver now iterates paths in a sorted order (r1461820)
     * mod_dav_svn does keyword expansion with 'kw=1' query arg (r1466055)
-    * add support for custom keyword definitions (issue #890)
 
   - Minor new features and improvements (server-side):
     * improve performance of config file parsing (r1344347 et al)

Modified: subversion/branches/fsfs-format7/COMMITTERS
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/COMMITTERS?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/COMMITTERS [UTF-8] (original)
+++ subversion/branches/fsfs-format7/COMMITTERS [UTF-8] Sun Jun 30 01:03:10 2013
@@ -159,6 +159,7 @@ Commit access for specific areas:
          arwin   Arwin Arni <ar...@collab.net>               (svn-bisect)
           joes   Joe Schaefer <jo...@yahoo.com>       (svnpubsub)
       prabhugs   Prabhu Gnana Sundar <pr...@collab.net>   (verify-keep-going)
+        schabi   Markus Schaber <sc...@apache.org>          (testsuite)
 
 
   Translation of message files:

Modified: subversion/branches/fsfs-format7/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/Makefile.in?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/Makefile.in (original)
+++ subversion/branches/fsfs-format7/Makefile.in Sun Jun 30 01:03:10 2013
@@ -523,6 +523,9 @@ check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $
 	  if test "$(HTTP_PROXY)" != ""; then                                \
 	    flags="--http-proxy $(HTTP_PROXY) $$flags";                      \
 	  fi;                                                                \
+	  if test "$(EXCLUSIVE_WC_LOCKS)" != ""; then                        \
+	    flags="--exclusive-wc-locks $$flags";                            \
+	  fi;                                                                \
 	  LD_LIBRARY_PATH='$(auth_plugin_dirs):$(LD_LIBRARY_PATH)'           \
 	  $(PYTHON) $(top_srcdir)/build/run_tests.py                         \
 	            --config-file $(top_srcdir)/subversion/tests/tests.conf  \
@@ -642,9 +645,10 @@ doc-javahl:
 	  -sourcepath $(top_srcdir)/subversion/bindings/javahl/src \
 	  -link http://java.sun.com/javase/6/docs/api/ \
 	  org.tigris.subversion.javahl \
-      org.apache.subversion.javahl \
-      org.apache.subversion.javahl.callback \
-      org.apache.subversion.javahl.types
+	  org.apache.subversion.javahl \
+	  org.apache.subversion.javahl.remote \
+	  org.apache.subversion.javahl.callback \
+	  org.apache.subversion.javahl.types
 
 doc-clean:
 	rm -rf $(top_srcdir)/doc/doxygen
@@ -912,5 +916,5 @@ INSTALL_EXTRA_TOOLS=\
   test -n "$$SVN_SVNMUCC_IS_SVNSYITF" && \
   ln -sf svnmucc$(EXEEXT) $(DESTDIR)$(bindir)/svnsyitf$(EXEEXT); \
   if test "$(DESTDIR)$(bindir)" != "$(DESTDIR)$(toolsdir)"; then \
-    ln -sf $(DESTDIR)$(bindir)/svnmucc$(EXEEXT) $(DESTDIR)$(toolsdir)/svnmucc$(EXEEXT); \
+    ln -sf ../svnmucc$(EXEEXT) $(DESTDIR)$(toolsdir)/svnmucc$(EXEEXT); \
   fi

Modified: subversion/branches/fsfs-format7/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/build.conf?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/build.conf (original)
+++ subversion/branches/fsfs-format7/build.conf Sun Jun 30 01:03:10 2013
@@ -41,8 +41,8 @@ private-includes =
         subversion/bindings/cxxhl/include/*.hpp
         subversion/bindings/cxxhl/include/svncxxhl/*.hpp
         subversion/libsvn_subr/utf8proc/utf8proc.h
-        subversion/libsvn_subr/utf8proc/utf8proc.c.inline
-        subversion/libsvn_subr/utf8proc/utf8proc_data.c.inline
+        subversion/libsvn_subr/utf8proc/utf8proc.c
+        subversion/libsvn_subr/utf8proc/utf8proc_data.c
 private-built-includes =
         subversion/svn_private_config.h
         subversion/libsvn_fs_fs/rep-cache-db.h
@@ -67,7 +67,10 @@ private-built-includes =
         subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LoadedLibIterator.h
         subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Revision.h
         subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_UserPasswordCallback.h
-
+        subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RemoteSession.h
+        subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_RemoteFactory.h
+        subversion/bindings/javahl/include/org_apache_subversion_javahl_remote_CommitEditor.h
+        subversion/bindings/javahl/include/org_apache_subversion_javahl_ConfigImpl_Category.h
 
 test-scripts =
         subversion/tests/cmdline/*_tests.py
@@ -542,6 +545,7 @@ type = java
 path = subversion/bindings/javahl/src/org/apache/subversion/javahl
   subversion/bindings/javahl/src/org/apache/subversion/javahl/callback
   subversion/bindings/javahl/src/org/apache/subversion/javahl/types
+  subversion/bindings/javahl/src/org/apache/subversion/javahl/remote
 src-root = subversion/bindings/javahl/src
 sources = *.java
 install = javahl-java
@@ -596,6 +600,17 @@ add-deps = $(javahl_java_DEPS)
 install = javahl-javah
 link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
 
+[javahl-remote-javah]
+type = javah 
+path = subversion/bindings/javahl/src/org/apache/subversion/javahl/remote
+classes = subversion/bindings/javahl/classes
+headers = subversion/bindings/javahl/include
+package = org.apache.subversion.javahl.remote
+sources = *.java
+add-deps = $(javahl_java_DEPS)
+install = javahl-javah
+link-cmd = $(COMPILE_JAVAHL_JAVAH) -force
+
 [javahl-callback-javah]
 type = javah 
 path = subversion/bindings/javahl/src/org/apache/subversion/javahl/callback
@@ -625,7 +640,7 @@ path = subversion/bindings/javahl/native
 libs = libsvn_repos libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff 
        libsvn_subr libsvn_fs aprutil apriconv apr
 sources = *.cpp *.c
-add-deps = $(javahl_javah_DEPS) $(javahl_java_DEPS) $(javahl_callback_javah_DEPS) $(javahl_types_javah_DEPS)
+add-deps = $(javahl_javah_DEPS) $(javahl_java_DEPS) $(javahl_callback_javah_DEPS) $(javahl_types_javah_DEPS) $(javahl_remote_javah_DEPS)
 install = javahl-lib
 # need special build rule to include -I$(JDK)/include/jni.h
 compile-cmd = $(COMPILE_JAVAHL_CXX)

Modified: subversion/branches/fsfs-format7/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/build/generator/gen_win.py?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/build/generator/gen_win.py (original)
+++ subversion/branches/fsfs-format7/build/generator/gen_win.py Sun Jun 30 01:03:10 2013
@@ -207,6 +207,11 @@ class GeneratorBase(gen_base.GeneratorBa
     # Initialize parent
     gen_base.GeneratorBase.__init__(self, fname, verfname, options)
 
+    # These files will be excluded from the build when they're not
+    # explicitly listed as project sources.
+    self._excluded_from_build = frozenset(self.private_includes
+                                          + self.private_built_includes)
+
     # Find Berkeley DB
     self._find_bdb()
 
@@ -514,6 +519,7 @@ class WinGeneratorBase(GeneratorBase):
         cbuild = None
         ctarget = None
         cdesc = None
+        cignore = None
         if isinstance(target, gen_base.TargetJavaHeaders):
           classes = self.path(target.classes)
           if self.junit_path is not None:
@@ -548,9 +554,18 @@ class WinGeneratorBase(GeneratorBase):
         if quote_path and '-' in rsrc:
           rsrc = '"%s"' % rsrc
 
+        if (not isinstance(source, gen_base.SourceFile)
+            and cbuild is None and ctarget is None and cdesc is None
+            and source in self._excluded_from_build):
+          # Make sure include dependencies are excluded from the build.
+          # This is an 'orrible 'ack that relies on the source being a
+          # string if it's an include dependency, or a SourceFile object
+          # otherwise.
+          cignore = 'yes'
+
         sources.append(ProjectItem(path=rsrc, reldir=reldir, user_deps=[],
                                    custom_build=cbuild, custom_target=ctarget,
-                                   custom_desc=cdesc,
+                                   custom_desc=cdesc, ignored = cignore,
                                    extension=os.path.splitext(rsrc)[1]))
 
     if isinstance(target, gen_base.TargetJavaClasses) and target.jar:
@@ -1641,6 +1656,7 @@ class WinGeneratorBase(GeneratorBase):
 class ProjectItem:
   "A generic item class for holding sources info, config info, etc for a project"
   def __init__(self, **kw):
+    self.ignored = None
     vars(self).update(kw)
 
 # ============================================================================

Modified: subversion/branches/fsfs-format7/build/generator/templates/vcnet_vcproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/build/generator/templates/vcnet_vcproj.ezt?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/build/generator/templates/vcnet_vcproj.ezt (original)
+++ subversion/branches/fsfs-format7/build/generator/templates/vcnet_vcproj.ezt Sun Jun 30 01:03:10 2013
@@ -121,9 +121,15 @@
 		<Filter
 			Name="Source Files"
 			Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
-[for sources][is sources.extension ".h"][else]		<File
+[for sources][is sources.extension ".h"][else][is sources.extension ".hpp"][else]		<File
 			RelativePath="[sources.path]">
-[if-any sources.custom_build][for platforms][for configs]
+[if-any sources.ignored][for platforms][for configs]			<FileConfiguration
+				Name="[configs.name]|[platforms]"
+				ExcludedFromBuild="TRUE">
+				<Tool
+					Name="VCCustomBuildTool"/>
+			</FileConfiguration>
+[end][end][else][if-any sources.custom_build][for platforms][for configs]
 			<FileConfiguration
 				Name="[configs.name]|[platforms]">
 				<Tool
@@ -142,9 +148,9 @@
 					ObjectFile="$(IntDir)/[sources.reldir]/"
 					ProgramDataBaseFileName="$(IntDir)/[sources.reldir]/[target.proj_name]-[sources.reldir].pdb"/>
 			</FileConfiguration>
-[end][end][end]
+[end][end][end][end]
 		</File>
-[end][end]
+[end][end][end]
 [is target_type "2"]		<File RelativePath="..\empty.c"/>[end]
         </Filter>
 		<Filter
@@ -153,7 +159,10 @@
 [for sources][is sources.extension ".h"]
 		<File
 			RelativePath="[sources.path]" />
-[end][end]
+[else][is sources.extension ".hpp"]
+		<File
+			RelativePath="[sources.path]" />
+[end][end][end]
         </Filter>
 	</Files>
 	<Globals>

Modified: subversion/branches/fsfs-format7/build/generator/templates/vcnet_vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/build/generator/templates/vcnet_vcxproj.ezt?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/build/generator/templates/vcnet_vcxproj.ezt (original)
+++ subversion/branches/fsfs-format7/build/generator/templates/vcnet_vcxproj.ezt Sun Jun 30 01:03:10 2013
@@ -94,20 +94,21 @@
 [end][end]    </ResourceCompile>
   </ItemGroup>
 [end]  <ItemGroup>
-[for sources][is sources.extension ".h"][else][if-any sources.custom_build]    <CustomBuild Include="[sources.path]">
+[for sources][is sources.extension ".h"][else][is sources.extension ".hpp"][else][if-any sources.custom_build]    <CustomBuild Include="[sources.path]">
       <FileType>Document</FileType>
 [for configs][for platforms]      <Command Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">[sources.custom_build]</Command>
       <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">[for sources.user_deps][sources.user_deps];[end]%(AdditionalInputs)</AdditionalInputs>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">[sources.custom_target];%(Outputs)</Outputs>
 [if-any sources.custom_desc]<Message Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">[sources.custom_desc]</Message>
 [end][end][end]    </CustomBuild>
-[else][is sources.extension ".c"]    <ClCompile Include="[sources.path]" />
-[else][is sources.extension ".cpp"]    <ClCompile Include="[sources.path]" />
+[else][is sources.extension ".c"][if-any sources.ignored]    <None Include="[sources.path]" />[else]    <ClCompile Include="[sources.path]" />[end]
+[else][is sources.extension ".cpp"][if-any sources.ignored]    <None Include="[sources.path]" />[else]    <ClCompile Include="[sources.path]" />[end]
 [else]    <None Include="[sources.path]" />
-[end][end][end][end][end]  </ItemGroup>
+[end][end][end][end][end][end]  </ItemGroup>
   <ItemGroup>
 [for sources][is sources.extension ".h"]    <ClInclude Include="[sources.path]" />
-[end][end]  </ItemGroup>
+[else][is sources.extension ".hpp"]    <ClInclude Include="[sources.path]" />
+[end][end][end]  </ItemGroup>
   <ItemGroup>
 [for depends]    <ProjectReference Include="[depends.path]">
       <Project>[depends.guid]</Project>

Modified: subversion/branches/fsfs-format7/build/run_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/build/run_tests.py?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/build/run_tests.py (original)
+++ subversion/branches/fsfs-format7/build/run_tests.py Sun Jun 30 01:03:10 2013
@@ -30,6 +30,7 @@
             [--list] [--milestone-filter=<regex>] [--mode-filter=<type>]
             [--server-minor-version=<version>] [--http-proxy=<host>:<port>]
             [--config-file=<file>] [--ssl-cert=<file>]
+            [--exclusive-wc-locks]
             <abs_srcdir> <abs_builddir>
             <prog ...>
 
@@ -125,7 +126,7 @@ class TestHarness:
                fsfs_sharding=None, fsfs_packing=None,
                list_tests=None, svn_bin=None, mode_filter=None,
                milestone_filter=None, set_log_level=None, ssl_cert=None,
-               http_proxy=None):
+               http_proxy=None, exclusive_wc_locks=None):
     '''Construct a TestHarness instance.
 
     ABS_SRCDIR and ABS_BUILDDIR are the source and build directories.
@@ -178,6 +179,7 @@ class TestHarness:
     self.log = None
     self.ssl_cert = ssl_cert
     self.http_proxy = http_proxy
+    self.exclusive_wc_locks = exclusive_wc_locks
     if not sys.stdout.isatty() or sys.platform == 'win32':
       TextColors.disable()
 
@@ -481,6 +483,8 @@ class TestHarness:
       svntest.main.options.ssl_cert = self.ssl_cert
     if self.http_proxy is not None:
       svntest.main.options.http_proxy = self.http_proxy
+    if self.exclusive_wc_locks is not None:
+      svntest.main.options.exclusive_wc_locks = self.exclusive_wc_locks
 
     svntest.main.options.srcdir = self.srcdir
 
@@ -645,7 +649,7 @@ def main():
                             'enable-sasl', 'parallel', 'config-file=',
                             'log-to-stdout', 'list', 'milestone-filter=',
                             'mode-filter=', 'set-log-level=', 'ssl-cert=',
-                            'http-proxy='])
+                            'http-proxy=', 'exclusive-wc-locks'])
   except getopt.GetoptError:
     args = []
 
@@ -656,9 +660,9 @@ def main():
   base_url, fs_type, verbose, cleanup, enable_sasl, http_library, \
     server_minor_version, fsfs_sharding, fsfs_packing, parallel, \
     config_file, log_to_stdout, list_tests, mode_filter, milestone_filter, \
-    set_log_level, ssl_cert, http_proxy = \
+    set_log_level, ssl_cert, http_proxy, exclusive_wc_locks = \
             None, None, None, None, None, None, None, None, None, None, None, \
-            None, None, None, None, None, None, None
+            None, None, None, None, None, None, None, None
   for opt, val in opts:
     if opt in ['-u', '--url']:
       base_url = val
@@ -696,6 +700,8 @@ def main():
       ssl_cert = val
     elif opt in ['--http-proxy']:
       http_proxy = val
+    elif opt in ['--exclusive-wc-locks']:
+      exclusive_wc_locks = 1
     else:
       raise getopt.GetoptError
 
@@ -712,7 +718,8 @@ def main():
                    fsfs_sharding, fsfs_packing, list_tests,
                    mode_filter=mode_filter, milestone_filter=milestone_filter,
                    set_log_level=set_log_level, ssl_cert=ssl_cert,
-                   http_proxy=http_proxy)
+                   http_proxy=http_proxy,
+                   exclusive_wc_locks=exclusive_wc_locks)
 
   failed = th.run(args[2:])
   if failed:

Modified: subversion/branches/fsfs-format7/notes/tree-conflicts/use-cases.txt
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/notes/tree-conflicts/use-cases.txt?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/notes/tree-conflicts/use-cases.txt (original)
+++ subversion/branches/fsfs-format7/notes/tree-conflicts/use-cases.txt Sun Jun 30 01:03:10 2013
@@ -4,10 +4,16 @@
 
 
 Issue reference:  http://subversion.tigris.org/issues/show_bug.cgi?id=2282
+                  http://subversion.tigris.org/issues/show_bug.cgi?id=3630
 
-(These use cases are based on a scenario paper "SVN move/rename
+These use cases are based on a scenario paper "SVN move/rename
 problems & suggested improvements" submitted by a corporate Subversion
-user, which may be found attached to issue #2282.)
+user, which may be found attached to issue #2282.
+
+These notes were originally written during development of Subversion 1.6.
+The original version focussed on detection of tree conflicts. The notes
+have since been updated with behaviour changes up to Subversion 1.8.
+Any 'desired behaviour' mentioned here is yet to be implemented.
 
 --------------------------------------------------------------------------
 
@@ -19,7 +25,7 @@ Description
 
    During an update, a file modification is merged onto a file move.
 
-Current Behavior
+Behavior of Subversion <= 1.5
 
    Developer A modifies Foo.c and commits it to the repository.
 
@@ -30,7 +36,7 @@ Current Behavior
    update'. The update will apply A's modifications to Foo.c in the
    repository to Foo.c in B's working copy.
 
-Problems With Current Behavior
+Problems With Behavior of Subversion <= 1.5
 
    First problem:
    
@@ -46,7 +52,7 @@ Problems With Current Behavior
    B's working copy because it has "local" modifications (which were in
    fact made by A). This will likely escape B's attention.
 
-Diagram of current behavior
+Diagram of behavior of Subversion <= 1.5
 
 
               (edit)
@@ -61,18 +67,23 @@ Diagram of current behavior
     wcB          -- +Bar.c ---------- +Bar.c ----  Bar.c --->
              (move) -Foo.c            -Foo.c'     ?Foo.c' (unversioned)
 
+Behaviour of Subversion >= 1.6
 
-Desired behavior
+   Foo.c will be deleted from B's working copy.
 
-   When user B updates, A's modifications to Foo.c should be merged into
-   Bar.c. Signal a text conflict if necessary.
-   
-   Foo.c should be deleted from B's working copy.
+   A tree conflict is signalled to inform B of the new changes to Bar.c,
+   so that B can review the modified Bar.c before committing it.
+
+Behavior of Subversion >= 1.8
    
-   A tree conflict should be signalled to inform B of the new changes
-   to Bar.c, so that B can review the modified Bar.c before committing it.
+   As above, a tree conflict is flagged on Foo.c.
 
-Diagram of desired behaviour
+   When user B resolves the tree conflict on Foo.c, A's modifications
+   to Foo.c will be merged into Bar.c.
+   
+   Text/Prop conflicts are signalled necessary.
+   
+Diagram of Behaviour of Subversion >= 1.8
 
 
               (edit)
@@ -101,7 +112,7 @@ Description
    This is essentially the same as Use Case 1, with the difference that
    this time, B does the edit and A does the move.
 
-Current Behavior
+Behavior of Subversion <= 1.5
 
    Developer B modifies Foo.c in his working copy.
    
@@ -114,7 +125,7 @@ Current Behavior
    B's working copy. Since B made local modifications to Foo.c,
    it will not be deleted from disk but left behind unversioned.
 
-Problems with Current Behavior
+Problems with behavior of Subversion <= 1.5
 
    Developer B may not notice that Foo.c fell out of version control.
    B's source tree in the working copy likely builds fine because Foo.c
@@ -122,7 +133,7 @@ Problems with Current Behavior
    possibly breaking the tree.  Everybody will get angry with B if this
    happens.
 
-Diagram of Current Behaviour
+Diagram of Behaviour of Subversion <= 1.5
 
 
               (move)
@@ -137,6 +148,11 @@ Diagram of Current Behaviour
     wcB          -- Foo.c' ------------  Bar.c  ------->
              (edit)                     ?Foo.c' (unversioned)
 
+Behavior of Subversion >= 1.6
+
+   When B updates, Bar.c is added to B's working copy, and a tree conflict
+   is flagged on Foo.c. B is expected to figure out that A renamed Foo.c
+   to Bar.c, and must resolve the conflict in some way before committing.
 
 Desired Behavior
 
@@ -174,7 +190,7 @@ Description
 
    During an update, a file move is merged onto a conflicting file move.
 
-Current Behavior
+Behavior of Subversion <= 1.5
 
    Developer A moves Foo.c to Bar.c and commits the move to the repository.
    
@@ -184,7 +200,7 @@ Current Behavior
    'svn update'. The update will add Bar.c to B's working copy and
    delete Foo.c from B's working copy (the latter is a no-op).
 
-Problems with Current Behavior
+Problems with behavior of Subversion <= 1.5
 
    After B's next commit, the content of the original Foo.c
    will exist twice in the source tree under two different paths,
@@ -192,7 +208,7 @@ Problems with Current Behavior
    
    This may not have been intended.
 
-Diagram of Current Behavior
+Diagram of behavior of Subversion <= 1.5
 
 
              (move)
@@ -208,12 +224,12 @@ Diagram of Current Behavior
              (move) -Foo.c             Bar.c
 
 
-Desired Behavior
+Behavior of Subversion >= 1.6
 
-   A tree conflict should be signaled to inform B of the conflicting rename
+   A tree conflict is signaled to inform B of the conflicting rename
    operation. B can now decide on deleting either file or committing both.
 
-Diagram of Desired Behavior
+Diagram of behavior of Subversion >= 1.6
 
 
              (move)
@@ -230,6 +246,13 @@ Diagram of Desired Behavior
                                                     |
                                                  resolved
 
+Problems with Behaviour of Subversion >= 1.6
+
+   The incoming move is labeled as 'incoming delete' in the tree
+   conflict description, rather than 'incoming move'. No assistance
+   is provided while resolving the tree conflict. Inexperienced users
+   are often unsure why the conflict occurred and don't know how to
+   proceed.
 
 ==========
 USE CASE 4
@@ -239,7 +262,7 @@ Description
 
    A file modification is merged onto the source of a file move.
 
-Current Behavior
+Behavior of Subversion <= 1.5
 
    Developer A modifies Foo.c and commits it to the repository.
 
@@ -249,7 +272,7 @@ Current Behavior
    will apply A's modification to Foo.c to the Foo.c in B's working
    copy.
 
-Problems With Current Behavior
+Problems With behavior of Subversion <= 1.5
 
    First problem:
    
@@ -262,7 +285,7 @@ Problems With Current Behavior
    except for a "skipped" warning in the output of the merge command,
    which might not be noticed.
 
-Diagram of current behavior
+Diagram of behavior of Subversion <= 1.5
 
 
             (edit)
@@ -279,15 +302,12 @@ Diagram of current behavior
     wcB                      -- Bar.c -- Bar.c ------ -->
 
 
-Desired behavior
+Behavior of Subversion >= 1.6
 
-   When user B merges, A's modifications to Foo.c should be merged into
-   Bar.c. Signal a text conflict if necessary.
-   
-   A tree conflict should be signalled to inform B of the new changes
-   to Bar.c, so that B can review the modified Bar.c before committing it.
+   A tree conflict is signalled to inform B of the new changes to Bar.c,
+   so that B can review the modified Bar.c before committing it.
 
-Diagram of desired behaviour
+Diagram of Behaviour of Subversion >= 1.6
 
 
             (edit)
@@ -306,6 +326,17 @@ Diagram of desired behaviour
                                                          |
                                                       resolved
 
+Problems with Behaviour of Subversion >= 1.6
+
+   No assistance is provided while resolving the tree conflict.
+   Inexperienced users are often unsure why the conflict occurred
+   and don't know how to proceed.
+
+Desired Behaviour
+
+   When user B merges, A's modifications to Foo.c should be merged into
+   Bar.c. Signal a text conflict if necessary.
+   
 
 ==========
 USE CASE 5
@@ -318,7 +349,7 @@ Description
    This is essentially the same as Use Case 4, with the difference that
    this time, B does the edit and A does the move.
 
-Current Behavior
+Behavior of Subversion <= 1.5
 
    Developer A moves Foo.c to Bar.c and commits it to the repository.
 
@@ -328,15 +359,13 @@ Current Behavior
    will add Bar.c (with the same content as the original Foo.c) and
    will delete B's Foo.c.
 
-Problems With Current Behavior
+Problems with behavior of Subversion <= 1.5
 
-   First problem:
-   
    B's has modified Foo.c in the past.  This modification will be lost
    unless B reviews the history of Foo.c and Bar.c at both URLs and
    corrects the problem (e.g., via 'svn copy').
 
-Diagram of current behavior
+Diagram of behavior of Subversion <= 1.5
 
 
             (move)
@@ -354,17 +383,31 @@ Diagram of current behavior
                                           -Foo.c'
 
 
+Behavior Subversion >= 1.6
+
+   A tree conflict is signaled on Foo.c to inform B that Foo.c has been
+   renamed to Bar.c
+
+Problems with Behaviour of Subversion >= 1.6
+
+   The incoming move is labeled as 'incoming delete' in the tree
+   conflict description, rather than 'incoming move'. No assistance
+   is provided while resolving the tree conflict. Inexperienced users
+   are often unsure why the conflict occurred and don't know how to
+   proceed.
+
+Behavior of Subversion <= 1.8
+
+    Same as 1.6, but also for directories instead of just files.
+
 Desired behavior
 
    In B's working copy, the update should add Bar.c and merge the local
    modifications to Foo.c into Bar.c. Signal a text conflict if necessary.
    
    Foo.c should be deleted from B's working copy.
-   
-   A tree conflict should be signaled to inform B that Foo.c has been
-   renamed to Bar.c
 
-Diagram of desired behaviour
+Diagram of Desired Behaviour
 
 
             (move)
@@ -383,7 +426,6 @@ Diagram of desired behaviour
                                                          |
                                                       resolved
 
-
 ==========
 USE CASE 6
 ==========
@@ -392,7 +434,7 @@ Description
 
    A file move is merged onto a conflicting file move.
 
-Current Behavior
+Behavior of Subversion <= 1.5
 
    Developer A moves Foo.c to Bar.c and commits it to the repository.
 
@@ -401,13 +443,13 @@ Current Behavior
    Developer B merges A's new revision into his working copy.  The merge
    will add Bar.c with history in B's working copy.
 
-Problems With Current Behavior
+Problems with behavior of Subversion <= 1.5
 
    After B's next commit, the content of the original Foo.c will exist
    twice in the source tree under two different paths (Bar.c and
    Bix.c).  This may not have been intended.
 
-Diagram of current behavior
+Diagram of Behavior of Subversion <= 1.5
 
 
             (move)
@@ -425,12 +467,24 @@ Diagram of current behavior
                                         +Bar.c
 
 
+Behavior of Subversion <= 1.6
+
+    A tree conflict is flagged on Foo.c in B's working copy.
+
+Problems with Behaviour of Subversion >= 1.6
+
+   The incoming move is labeled as 'incoming delete' in the tree
+   conflict description, rather than 'incoming move'. No assistance
+   is provided while resolving the tree conflict. Inexperienced users
+   are often unsure why the conflict occurred and don't know how to
+   proceed.
+
 Desired behavior
 
    A tree conflict should be signaled to inform B of the conflicting
    rename operation.  B can delete either file or commit both.
 
-Diagram of desired behaviour
+Diagram of Desired Behaviour
 
 
             (move)

Modified: subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl.hpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl.hpp?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl.hpp (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl.hpp Sun Jun 30 01:03:10 2013
@@ -32,6 +32,6 @@
 #include "svncxxhl/exception.hpp"
 #include "svncxxhl/tristate.hpp"
 
-namespace svn = ::subversion::cxxhl::version_1_9_dev;
+namespace SVN = ::apache::subversion::cxxhl;
 
 #endif  // SVN_CXXHL_HPP

Modified: subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl/_compat.hpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl/_compat.hpp?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl/_compat.hpp (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl/_compat.hpp Sun Jun 30 01:03:10 2013
@@ -28,64 +28,76 @@
 #ifndef SVN_CXXHL_COMPAT_HPP
 #define SVN_CXXHL_COMPAT_HPP
 
-// Configuration test: std::shared_ptr<>
+// Configuration test: std::shared_ptr<> and friends
 // Currently detects: clang++, g++, msvc-2010+
-#ifndef SVN_CXXHL_HAVE_STD_SHARED_PTR
+#ifndef SVN_CXXHL_HAVE_STD_SMART_PTRS
 #  if   (defined(__clang__) && __cplusplus >= 201103L) \
      || (defined(__GNUC__) && defined(__GXX_EXPERIMENTAL_CXX0X__)) \
      || (defined(_MSC_VER) && _MSC_VER >= 1600)
-#    define SVN_CXXHL_HAVE_STD_SHARED_PTR
+#    define SVN_CXXHL_HAVE_STD_SMART_PTRS
 #  endif  // config test: std::shared_ptr<>
-#endif  // SVN_CXXHL_HAVE_STD_SHARED_PTR
+#endif  // SVN_CXXHL_HAVE_STD_SMART_PTRS
 
-// Configuration test: std::tr1::shared_ptr<>
+// Configuration test: std::tr1::shared_ptr<> and friends
 // Currently detects: clang++, g++
-#ifndef SVN_CXXHL_HAVE_STD_SHARED_PTR
-#  ifndef SVN_CXXHL_HAVE_STD_TR1_SHARED_PTR
+#ifndef SVN_CXXHL_HAVE_STD_SMART_PTRS
+#  ifndef SVN_CXXHL_HAVE_STD_TR1_SMART_PTRS
 #    if   defined(__GNUC__) \
        && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 1)
-#      define SVN_CXXHL_HAVE_STD_TR1_SHARED_PTR
+#      define SVN_CXXHL_HAVE_STD_TR1_SMART_PTRS
 #    endif  // config test: std::tr1::shared_ptr<>
-#  endif  // SVN_CXXHL_HAVE_STD_TR1_SHARED_PTR
-#endif  // SVN_CXXHL_HAVE_STD_SHARED_PTR
+#  endif  // SVN_CXXHL_HAVE_STD_TR1_SMART_PTRS
+#endif  // SVN_CXXHL_HAVE_STD_SMART_PTRS
 
 
-#if defined(SVN_CXXHL_HAVE_STD_SHARED_PTR)
+#if defined(SVN_CXXHL_HAVE_STD_SMART_PTRS)
 
 #include <memory>
+namespace apache {
 namespace subversion {
 namespace cxxhl {
 namespace compat {
+using std::weak_ptr;
 using std::shared_ptr;
+using std::enable_shared_from_this;
 } // namespace compat
 } // namespace cxxhl
 } // namespace subversion
+} // namespace apache
 
-#elif defined(SVN_CXXHL_HAVE_STD_TR1_SHARED_PTR)
+#elif defined(SVN_CXXHL_HAVE_STD_TR1_SMART_PTRS)
 
 #include <tr1/memory>
+namespace apache {
 namespace subversion {
 namespace cxxhl {
 namespace compat {
+using std::tr1::weak_ptr;
 using std::tr1::shared_ptr;
+using std::tr1::enable_shared_from_this;
 } // namespace compat
 } // namespace cxxhl
 } // namespace subversion
+} // namespace apache
 
 #else
-// We need shared_ptr<> from somewhere. If we cannot find it in ::std
-// given known compiler characteristics, then try boost as a last
-// resort.
+// We need smart pointers from somewhere. If we cannot find them in
+// ::std given known compiler characteristics, then try Boost as a
+// last resort.
 
 #include <boost/shared_ptr.hpp>
+namespace apache {
 namespace subversion {
 namespace cxxhl {
 namespace compat {
+using boost::weak_ptr;
 using boost::shared_ptr;
+using boost::enable_shared_from_this;
 } // namespace compat
 } // namespace cxxhl
 } // namespace subversion
+} // namespace apache
 
-#endif  // SVN_CXXHL_HAVE_STD_SHARED_PTR
+#endif  // SVN_CXXHL_HAVE_STD_SMART_PTRS
 
 #endif  // SVN_CXXHL_COMPAT_HPP

Modified: subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl/exception.hpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl/exception.hpp?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl/exception.hpp (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl/exception.hpp Sun Jun 30 01:03:10 2013
@@ -38,6 +38,7 @@
 // Forward declaration of implementation-specific structure
 struct svn_error_t;
 
+namespace apache {
 namespace subversion {
 namespace cxxhl {
 
@@ -45,22 +46,20 @@ namespace compat {} // Announce the comp
 
 namespace detail {
 // Forward declaration of implementation-specific structure
-class error_description;
+class ErrorDescription;
 } // namespace detail
 
-namespace version_1_9_dev {
-
-class error : public std::exception
+class Error : public std::exception
 {
 public:
-  typedef compat::shared_ptr<error> shared_ptr;
+  typedef compat::shared_ptr<Error> shared_ptr;
 
-  error(const char* description, int error_code);
-  error(const char* description, int error_code, shared_ptr nested_error);
+  Error(const char* description, int error_code);
+  Error(const char* description, int error_code, shared_ptr nested_error);
 
-  error(const error& that) throw();
-  error& operator=(const error& that) throw();
-  virtual ~error() throw();
+  Error(const Error& that) throw();
+  Error& operator=(const Error& that) throw();
+  virtual ~Error() throw();
 
   /**
    * Returns the error code associated with the exception.
@@ -83,18 +82,18 @@ public:
    * describes the location in the source code where the error was
    * generated from.
    */
-  typedef std::pair<int, std::string> message;
+  typedef std::pair<int, std::string> Message;
 
   /**
    * The list of messages associated with an error.
    */
-  typedef std::vector<message> message_list;
+  typedef std::vector<Message> MessageList;
 
   /**
    * Returns the complete list of error messages, including those from
    * nested exceptions.
    */
-  virtual message_list messages() const
+  virtual MessageList messages() const
     {
       return compile_messages(false);
     }
@@ -106,7 +105,7 @@ public:
    * Traceback is only available if the Subversion libraries were
    * compiled with tracing enabled.
    */
-  virtual message_list traced_messages() const
+  virtual MessageList traced_messages() const
     {
       return compile_messages(true);
     }
@@ -116,29 +115,29 @@ public:
   static void throw_svn_error(svn_error_t*);
 
 protected:
-  error(int error_code, detail::error_description* description) throw();
+  Error(int error_code, detail::ErrorDescription* description) throw();
 
 private:
-  std::vector<message> compile_messages(bool show_traces) const;
+  MessageList compile_messages(bool show_traces) const;
 
   int m_errno;                /**< The (SVN or APR) error code. */
   shared_ptr m_nested;        /**< Optional pointer to nessted error. */
   /** Error description and trace location information. */
-  detail::error_description* m_description;
+  detail::ErrorDescription* m_description;
 };
 
-class cancelled : public error
+class Cancelled : public Error
 {
-  friend void error::throw_svn_error(svn_error_t*);
+  friend void Error::throw_svn_error(svn_error_t*);
 
 protected:
-  cancelled(int error_code, detail::error_description* description) throw()
-    : error(error_code, description)
+  Cancelled(int error_code, detail::ErrorDescription* description) throw()
+    : Error(error_code, description)
     {}
 };
 
-} // namespace version_1_9_dev
 } // namespace cxxhl
 } // namespace subversion
+} // namespace apache
 
 #endif  // SVN_CXXHL_EXCEPTION_HPP

Modified: subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl/tristate.hpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl/tristate.hpp?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl/tristate.hpp (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/cxxhl/include/svncxxhl/tristate.hpp Sun Jun 30 01:03:10 2013
@@ -28,37 +28,37 @@
 #ifndef SVN_CXXHL_TRISTATE_HPP
 #define SVN_CXXHL_TRISTATE_HPP
 
+namespace apache {
 namespace subversion {
 namespace cxxhl {
-namespace version_1_9_dev {
 
-class tristate
+class Tristate
 {
 public:
-  static const tristate TRUE;
-  static const tristate FALSE;
-  static const tristate UNKNOWN;
+  static const Tristate TRUE;
+  static const Tristate FALSE;
+  static const Tristate UNKNOWN;
 
-  tristate(const tristate& that) throw()
+  Tristate(const Tristate& that) throw()
     : m_value(that.m_value)
     {}
 
-  bool operator==(const tristate& that) const throw()
+  bool operator==(const Tristate& that) const throw()
     { return m_value == that.m_value; }
 
-  bool operator!=(const tristate& that) const throw()
+  bool operator!=(const Tristate& that) const throw()
     { return !(*this == that); }
 
   bool known() const throw()
     { return *this != UNKNOWN; }
 
 private:
-  explicit tristate(short int value) throw();
+  explicit Tristate(short int value) throw();
   short int m_value;
 };
 
-} // namespace version_1_9_dev
 } // namespace cxxhl
 } // namespace subversion
+} // namespace apache
 
 #endif  // SVN_CXXHL_TRISTATE_HPP

Modified: subversion/branches/fsfs-format7/subversion/bindings/cxxhl/src/exception.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/cxxhl/src/exception.cpp?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/cxxhl/src/exception.cpp (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/cxxhl/src/exception.cpp Sun Jun 30 01:03:10 2013
@@ -37,23 +37,24 @@
 #undef TRUE
 #undef FALSE
 
+namespace apache {
 namespace subversion {
 namespace cxxhl {
 
 namespace detail {
 
-class error_description
+class ErrorDescription
 {
 public:
-  static error_description* create(const char* message,
-                                   const char *loc_file, long loc_line,
-                                   bool trace_link)
+  static ErrorDescription* create(const char* message,
+                                  const char *loc_file, long loc_line,
+                                  bool trace_link)
     {
       bool empty_message = (message == NULL);
       const std::size_t length = (empty_message ? 0 : std::strlen(message));
-      void *memblock = ::operator new(length + sizeof(error_description));
+      void *memblock = ::operator new(length + sizeof(ErrorDescription));
 
-      error_description* description = new(memblock) error_description(
+      ErrorDescription* description = new(memblock) ErrorDescription(
           loc_file, loc_line, trace_link, empty_message);
       if (length)
         std::memcpy(description->m_message, message, length);
@@ -61,23 +62,23 @@ public:
       return description;
     }
 
-  static error_description* create(const char* message)
+  static ErrorDescription* create(const char* message)
     {
       return create(message, NULL, 0, false);
     }
 
-  error_description* reference() throw()
+  ErrorDescription* reference() throw()
     {
       if (this)
         svn_atomic_inc(&m_refcount);
       return this;
     }
 
-  error_description* dereference() throw()
+  ErrorDescription* dereference() throw()
     {
       if (this && 0 == svn_atomic_dec(&m_refcount))
         {
-          this->~error_description();
+          this->~ErrorDescription();
           ::operator delete(this, std::nothrow);
           return NULL;
         }
@@ -90,8 +91,8 @@ public:
   bool trace() const throw() { return m_trace; }
 
 private:
-  error_description(const char *loc_file, long loc_line,
-                    bool trace_link, bool empty_message) throw()
+  ErrorDescription(const char *loc_file, long loc_line,
+                   bool trace_link, bool empty_message) throw()
     : m_loc_file(loc_file),
       m_loc_line(loc_line),
       m_trace(trace_link),
@@ -99,7 +100,7 @@ private:
       m_refcount(0)
     {}
 
-  ~error_description() throw() {}
+  ~ErrorDescription() throw() {}
 
   const char* m_loc_file;
   long m_loc_line;
@@ -113,27 +114,25 @@ private:
 } // namespace detail
 
 
-namespace version_1_9_dev {
-
-error::error(const char* description, int error_code)
+Error::Error(const char* description, int error_code)
   : m_errno(error_code),
-    m_description(detail::error_description::create(description)->reference())
+    m_description(detail::ErrorDescription::create(description)->reference())
 {}
 
-error::error(const char* description, int error_code,
-             error::shared_ptr nested_error)
+Error::Error(const char* description, int error_code,
+             Error::shared_ptr nested_error)
   : m_errno(error_code),
     m_nested(nested_error),
-    m_description(detail::error_description::create(description)->reference())
+    m_description(detail::ErrorDescription::create(description)->reference())
 {}
 
-error::error(const error& that) throw()
+Error::Error(const Error& that) throw()
   : m_errno(that.m_errno),
     m_nested(that.m_nested),
     m_description(that.m_description->reference())
 {}
 
-error& error::operator=(const error& that) throw()
+Error& Error::operator=(const Error& that) throw()
 {
   if (this == &that)
     return *this;
@@ -141,29 +140,28 @@ error& error::operator=(const error& tha
   // This in-place destroy+copy implementation of the assignment
   // operator is safe because both the destructor and the copy
   // constructor do not throw exceptions.
-  this->~error();
-  return *new(this) error(that);
+  this->~Error();
+  return *new(this) Error(that);
 }
 
-error::~error() throw()
+Error::~Error() throw()
 {
   m_description->dereference();
 }
 
-const char* error::what() const throw()
+const char* Error::what() const throw()
 {
   return m_description->what();
 }
 
-error::error(int error_code, detail::error_description* description) throw()
+Error::Error(int error_code, detail::ErrorDescription* description) throw()
   : m_errno(error_code),
     m_description(description)
 {}
 
-void error::throw_svn_error(svn_error_t* err)
+void Error::throw_svn_error(svn_error_t* err)
 {
-  const bool throw_cancelled = (err->apr_err == SVN_ERR_CANCELLED);
-  detail::error_description* description = NULL;
+  detail::ErrorDescription* description = NULL;
   try
     {
       // Be very careful when creating the error descriptions, so that
@@ -174,33 +172,36 @@ void error::throw_svn_error(svn_error_t*
       shared_ptr nested;
       shared_ptr* current = &nested;
 
+      bool cancelled = (err->apr_err == SVN_ERR_CANCELLED);
       for (svn_error_t* next = err->child; next; next = next->child)
         {
-          description = detail::error_description::create(
+          description = detail::ErrorDescription::create(
               next->message, next->file, next->line,
               svn_error__is_tracing_link(next));
           description->reference();
-          current->reset(new error(next->apr_err, description));
+          current->reset(new Error(next->apr_err, description));
           description = NULL;
           current = &(*current)->m_nested;
+          if (next->apr_err == SVN_ERR_CANCELLED)
+            cancelled = true;
         }
 
       const int apr_err = err->apr_err;
-      description = detail::error_description::create(
+      description = detail::ErrorDescription::create(
           err->message, err->file, err->line,
           svn_error__is_tracing_link(err));
       description->reference();
       svn_error_clear(err);
-      if (throw_cancelled)
+      if (cancelled)
         {
-          cancelled converted = cancelled(apr_err, description);
+          Cancelled converted = Cancelled(apr_err, description);
           description = NULL;
           converted.m_nested = nested;
           throw converted;
         }
       else
         {
-          error converted = error(apr_err, description);
+          Error converted = Error(apr_err, description);
           description = NULL;
           converted.m_nested = nested;
           throw converted;
@@ -215,8 +216,8 @@ void error::throw_svn_error(svn_error_t*
 
 
 namespace {
-void handle_one_error(error::message_list& ml, bool show_traces,
-                      int error_code, detail::error_description* descr,
+void handle_one_error(Error::MessageList& ml, bool show_traces,
+                      int error_code, detail::ErrorDescription* descr,
                       apr_pool_t* pool)
 {
   if (show_traces && descr->file())
@@ -234,8 +235,20 @@ void handle_one_error(error::message_lis
         buffer << file_utf8 << ':' << descr->line();
       else
         buffer << "svn:<undefined>";
-      buffer << ": (apr_err=" << error_code << ')';
-      ml.push_back(error::message(0, buffer.str()));
+      if (descr->trace())
+        buffer << ',';
+      else
+        {
+#ifdef SVN_DEBUG
+          if (const char *const symbolic_name =
+              svn_error_symbolic_name(error_code))
+            //if (symbolic_name)
+            buffer << ": (apr_err=" << symbolic_name << ')';
+          else
+#endif
+            buffer << ": (apr_err=" << error_code << ')';
+        }
+      ml.push_back(Error::Message(0, buffer.str()));
     }
 
   if (descr->trace())
@@ -264,22 +277,22 @@ void handle_one_error(error::message_lis
             }
         }
     }
-  ml.push_back(error::message(error_code, std::string(description)));
+  ml.push_back(Error::Message(error_code, std::string(description)));
 }
 } // anonymous namespace
 
-error::message_list error::compile_messages(bool show_traces) const
+Error::MessageList Error::compile_messages(bool show_traces) const
 {
   // Determine the maximum size of the returned list
-  message_list::size_type max_length = 0;
-  for (const error* err = this; err; err = err->m_nested.get())
+  MessageList::size_type max_length = 0;
+  for (const Error* err = this; err; err = err->m_nested.get())
     {
       if (show_traces && m_description->file())
         ++max_length;                   // We will display an error location
       if (!m_description->trace())
         ++max_length;                   // Traces do not emit a message line
     }
-  message_list ml;
+  MessageList ml;
   ml.reserve(max_length);
 
   // This vector holds a list of all error codes that we've printed
@@ -291,7 +304,7 @@ error::message_list error::compile_messa
   apr_pool_create(&pool, NULL);
   try
     {
-      for (const error* err = this; err; err = err->m_nested.get())
+      for (const Error* err = this; err; err = err->m_nested.get())
         {
           if (!err->m_description->what())
             {
@@ -317,6 +330,6 @@ error::message_list error::compile_messa
   return ml;
 }
 
-} // namespace version_1_9_dev
 } // namespace cxxhl
 } // namespace subversion
+} // namespace apache

Modified: subversion/branches/fsfs-format7/subversion/bindings/cxxhl/src/tristate.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/cxxhl/src/tristate.cpp?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/cxxhl/src/tristate.cpp (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/cxxhl/src/tristate.cpp Sun Jun 30 01:03:10 2013
@@ -27,18 +27,18 @@
 #undef TRUE
 #undef FALSE
 
+namespace apache {
 namespace subversion {
 namespace cxxhl {
-namespace version_1_9_dev {
 
-tristate::tristate(short value) throw()
+Tristate::Tristate(short value) throw()
     : m_value(value)
 {}
 
-const tristate tristate::TRUE = tristate(svn_tristate_true);
-const tristate tristate::FALSE = tristate(svn_tristate_false);
-const tristate tristate::UNKNOWN = tristate(svn_tristate_unknown);
+const Tristate Tristate::TRUE = Tristate(svn_tristate_true);
+const Tristate Tristate::FALSE = Tristate(svn_tristate_false);
+const Tristate Tristate::UNKNOWN = Tristate(svn_tristate_unknown);
 
-} // namespace version_1_9_dev
 } // namespace cxxhl
 } // namespace subversion
+} // namespace apache

Modified: subversion/branches/fsfs-format7/subversion/bindings/cxxhl/tests/test_exception.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/cxxhl/tests/test_exception.cpp?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/cxxhl/tests/test_exception.cpp (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/cxxhl/tests/test_exception.cpp Sun Jun 30 01:03:10 2013
@@ -20,6 +20,7 @@
  */
 
 #include <algorithm>
+#include <cstdio>
 #include <iomanip>
 #include <ios>
 #include <iostream>
@@ -30,7 +31,7 @@
 #include "svn_error.h"
 
 namespace {
-void trace(const svn::error::message& msg)
+void trace(const SVN::Error::Message& msg)
 {
   std::cout << "    ";
   if (msg.first)
@@ -40,17 +41,48 @@ void trace(const svn::error::message& ms
   std::cout << msg.second << std::endl;
 }
 
-void traceall(const char *message, const svn::error& err)
+void traceall(const char *message, const SVN::Error& err)
 {
-  typedef svn::error::message_list message_list;
+  typedef SVN::Error::MessageList MessageList;
   std::cout << message << std::endl;
   std::cout << "Traced Messages:" << std::endl;
-  message_list ml = err.traced_messages();
+  MessageList ml = err.traced_messages();
   std::for_each(ml.begin(), ml.end(), trace);
   std::cout << "Just Messages:" << std::endl;
   ml = err.messages();
   std::for_each(ml.begin(), ml.end(), trace);
 }
+
+void tracecheck(svn_error_t* err)
+{
+  std::cout << "C-API handler:" << std::endl;
+  svn_handle_error2(err, stdout, false, "    test_exception");
+  svn_error_clear(err);
+}
+
+svn_error_t* make_cancel_test_error()
+{
+  svn_error_t* err;
+  err = svn_error_create(SVN_ERR_CANCELLED, NULL, NULL);
+  err = svn_error_create(SVN_ERR_CANCELLED, err, NULL);
+  err = svn_error_trace(err);
+  err = svn_error_create(SVN_ERR_TEST_FAILED, err, "original message");
+  err = svn_error_create(SVN_ERR_BASE, err, "wrapper message");
+  err = svn_error_trace(err);
+  return err;
+}
+
+svn_error_t* make_error_test_error()
+{
+  svn_error_t* err;
+  err = svn_error_create(SVN_ERR_TEST_FAILED, NULL, "original message");
+  err = svn_error_create(SVN_ERR_BASE, err, "wrapper message");
+  err = svn_error_trace(err);
+  err = svn_error_create(SVN_ERR_UNSUPPORTED_FEATURE, err, NULL);
+  err = svn_error_create(SVN_ERR_UNSUPPORTED_FEATURE, err, NULL);
+  err = svn_error_trace(err);
+  return err;
+}
 } // anonymous namespace
 
 
@@ -58,22 +90,18 @@ bool test_cancel()
 {
   try
     {
-      svn_error_t* err;
-      err = svn_error_create(SVN_ERR_TEST_FAILED, NULL, "original message");
-      err = svn_error_create(SVN_ERR_BASE, err, "wrapper message");
-      err = svn_error_create(SVN_ERR_CANCELLED, err, NULL);
-      err = svn_error_create(SVN_ERR_CANCELLED, err, NULL);
-      err = svn_error_trace(err);
-      svn::error::throw_svn_error(err);
+      SVN::Error::throw_svn_error(make_cancel_test_error());
     }
-  catch (const svn::cancelled& err)
+  catch (const SVN::Cancelled& err)
     {
-      traceall("Caught: CANCEL", err);
+      traceall("Caught: CANCELLED", err);
+      tracecheck(make_cancel_test_error());
       return true;
     }
-  catch (const svn::error& err)
+  catch (const SVN::Error& err)
     {
       traceall("Caught: ERROR", err);
+      tracecheck(make_cancel_test_error());
       return false;
     }
   catch (...)
@@ -87,24 +115,18 @@ int test_error()
 {
   try
     {
-      svn_error_t* err;
-      err = svn_error_create(SVN_ERR_TEST_FAILED, NULL, "original message");
-      err = svn_error_create(SVN_ERR_BASE, err, "wrapper message");
-      err = svn_error_create(SVN_ERR_CANCELLED, err, NULL);
-      err = svn_error_create(SVN_ERR_CANCELLED, err, NULL);
-      err = svn_error_create(SVN_ERR_UNSUPPORTED_FEATURE, err, NULL);
-      err = svn_error_create(SVN_ERR_UNSUPPORTED_FEATURE, err, NULL);
-      err = svn_error_trace(err);
-      svn::error::throw_svn_error(err);
+      SVN::Error::throw_svn_error(make_error_test_error());
     }
-  catch (const svn::cancelled& err)
+  catch (const SVN::Cancelled& err)
     {
-      traceall("Caught: CANCEL", err);
+      traceall("Caught: CANCELLED", err);
+      tracecheck(make_error_test_error());
       return false;
     }
-  catch (const svn::error& err)
+  catch (const SVN::Error& err)
     {
       traceall("Caught: ERROR", err);
+      tracecheck(make_error_test_error());
       return true;
     }
   catch (...)

Modified: subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ClientContext.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ClientContext.cpp?rev=1498045&r1=1498044&r2=1498045&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ClientContext.cpp (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ClientContext.cpp Sun Jun 30 01:03:10 2013
@@ -39,37 +39,10 @@
 
 
 ClientContext::ClientContext(jobject jsvnclient, SVN::Pool &pool)
-    : m_prompter(NULL),
-      m_cancelOperation(false)
+    : OperationContext(pool)
 {
-    JNIEnv *env = JNIUtil::getEnv();
-
-    /* Grab a global reference to the Java object embedded in the parent Java
-       object. */
     static jfieldID ctxFieldID = 0;
-    if (ctxFieldID == 0)
-    {
-        jclass clazz = env->GetObjectClass(jsvnclient);
-        if (JNIUtil::isJavaExceptionThrown())
-            return;
-
-        ctxFieldID = env->GetFieldID(clazz, "clientContext",
-                                "L"JAVA_PACKAGE"/SVNClient$ClientContext;");
-        if (JNIUtil::isJavaExceptionThrown() || ctxFieldID == 0)
-            return;
-
-        env->DeleteLocalRef(clazz);
-    }
-
-    jobject jctx = env->GetObjectField(jsvnclient, ctxFieldID);
-    if (JNIUtil::isJavaExceptionThrown())
-        return;
-
-    m_jctx = env->NewGlobalRef(jctx);
-    if (JNIUtil::isJavaExceptionThrown())
-        return;
-
-    env->DeleteLocalRef(jctx);
+    attachJavaObject(jsvnclient, "L"JAVA_PACKAGE"/SVNClient$ClientContext;", "clientContext", &ctxFieldID);
 
     SVN_JNI_ERR(svn_client_create_context2(&m_context, NULL,
                                            pool.getPool()),
@@ -96,16 +69,11 @@ ClientContext::ClientContext(jobject jsv
     m_context->conflict_func2 = resolve;
     m_context->conflict_baton2 = m_jctx;
 
-    m_context->client_name = "javahl";
-    m_pool = &pool;
+    m_context->client_name = getClientName();
 }
 
 ClientContext::~ClientContext()
 {
-    delete m_prompter;
-
-    JNIEnv *env = JNIUtil::getEnv();
-    env->DeleteGlobalRef(m_jctx);
 }
 
 
@@ -140,7 +108,6 @@ svn_client_ctx_t *
 ClientContext::getContext(CommitMessage *message, SVN::Pool &in_pool)
 {
     apr_pool_t *pool = in_pool.getPool();
-    svn_auth_baton_t *ab;
     svn_client_ctx_t *ctx = m_context;
 
     /* Make a temporary copy of ctx to restore at pool cleanup to avoid
@@ -157,122 +124,17 @@ ClientContext::getContext(CommitMessage 
     apr_pool_cleanup_register(in_pool.getPool(), bt, clear_ctx_ptrs,
                               clear_ctx_ptrs);
 
-
     if (!ctx->config)
       {
-        const char *configDir = m_configDir.c_str();
-        if (m_configDir.empty())
-            configDir = NULL;
-        SVN_JNI_ERR(svn_config_get_config(&(ctx->config), configDir,
-                                          m_pool->getPool()),
-                    NULL);
+        apr_hash_t * configData = getConfigData();
 
+        ctx->config = configData;
         bt->backup->config = ctx->config;
       }
-    svn_config_t *config =
-        reinterpret_cast<svn_config_t *>(apr_hash_get(ctx->config,
-                                                      SVN_CONFIG_CATEGORY_CONFIG,
-                                                      APR_HASH_KEY_STRING));
-
 
-    /* The whole list of registered providers */
-    apr_array_header_t *providers;
-
-    /* Populate the registered providers with the platform-specific providers */
-    SVN_JNI_ERR(svn_auth_get_platform_specific_client_providers(&providers,
-                                                                config,
-                                                                pool),
-                NULL);
-
-    /* Use the prompter (if available) to prompt for password and cert
-     * caching. */
-    svn_auth_plaintext_prompt_func_t plaintext_prompt_func = NULL;
-    void *plaintext_prompt_baton = NULL;
-    svn_auth_plaintext_passphrase_prompt_func_t plaintext_passphrase_prompt_func;
-    void *plaintext_passphrase_prompt_baton = NULL;
-
-    if (m_prompter != NULL)
-    {
-        plaintext_prompt_func = Prompter::plaintext_prompt;
-        plaintext_prompt_baton = m_prompter;
-        plaintext_passphrase_prompt_func = Prompter::plaintext_passphrase_prompt;
-        plaintext_passphrase_prompt_baton = m_prompter;
-    }
-
-    /* The main disk-caching auth providers, for both
-     * 'username/password' creds and 'username' creds.  */
-    svn_auth_provider_object_t *provider;
-
-    svn_auth_get_simple_provider2(&provider, plaintext_prompt_func,
-                                  plaintext_prompt_baton, pool);
-    APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
-
-    svn_auth_get_username_provider(&provider, pool);
-    APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
-
-    /* The server-cert, client-cert, and client-cert-password providers. */
-    SVN_JNI_ERR(svn_auth_get_platform_specific_provider(&provider,
-                                                        "windows",
-                                                        "ssl_server_trust",
-                                                        pool),
-                NULL);
-
-    if (provider)
-        APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
-
-    svn_auth_get_ssl_server_trust_file_provider(&provider, pool);
-    APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
-    svn_auth_get_ssl_client_cert_file_provider(&provider, pool);
-    APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
-    svn_auth_get_ssl_client_cert_pw_file_provider2(&provider,
-                        plaintext_passphrase_prompt_func,
-                        plaintext_passphrase_prompt_baton, pool);
-    APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
-
-    if (m_prompter != NULL)
-    {
-        /* Two basic prompt providers: username/password, and just username.*/
-        provider = m_prompter->getProviderSimple(in_pool);
-
-        APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
-
-        provider = m_prompter->getProviderUsername(in_pool);
-        APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
-
-        /* Three ssl prompt providers, for server-certs, client-certs,
-         * and client-cert-passphrases.  */
-        provider = m_prompter->getProviderServerSSLTrust(in_pool);
-        APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
-
-        provider = m_prompter->getProviderClientSSL(in_pool);
-        APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
-
-        provider = m_prompter->getProviderClientSSLPassword(in_pool);
-        APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
-    }
-
-    /* Build an authentication baton to give to libsvn_client. */
-    svn_auth_open(&ab, providers, pool);
-
-    /* Place any default --username or --password credentials into the
-     * auth_baton's run-time parameter hash.  ### Same with --no-auth-cache? */
-    if (!m_userName.empty())
-        svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_USERNAME,
-                               apr_pstrdup(in_pool.getPool(),
-                                           m_userName.c_str()));
-    if (!m_passWord.empty())
-        svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_PASSWORD,
-                               apr_pstrdup(in_pool.getPool(),
-                                           m_passWord.c_str()));
-    /* Store where to retrieve authentication data? */
-    if (!m_configDir.empty())
-        svn_auth_set_parameter(ab, SVN_AUTH_PARAM_CONFIG_DIR,
-                               apr_pstrdup(in_pool.getPool(),
-                                           m_configDir.c_str()));
-
-    ctx->auth_baton = ab;
+    ctx->auth_baton = getAuthBaton(in_pool);
     ctx->log_msg_baton3 = message;
-    m_cancelOperation = false;
+    resetCancelRequest();
 
     SVN_JNI_ERR(svn_wc_context_create(&ctx->wc_ctx, NULL,
                                       in_pool.getPool(), in_pool.getPool()),
@@ -282,60 +144,6 @@ ClientContext::getContext(CommitMessage 
 }
 
 void
-ClientContext::username(const char *pi_username)
-{
-    m_userName = (pi_username == NULL ? "" : pi_username);
-}
-
-void
-ClientContext::password(const char *pi_password)
-{
-    m_passWord = (pi_password == NULL ? "" : pi_password);
-}
-
-void
-ClientContext::setPrompt(Prompter *prompter)
-{
-    delete m_prompter;
-    m_prompter = prompter;
-}
-
-void
-ClientContext::setConfigDirectory(const char *configDir)
-{
-    // A change to the config directory may necessitate creation of
-    // the config templates.
-    SVN::Pool requestPool;
-    SVN_JNI_ERR(svn_config_ensure(configDir, requestPool.getPool()), );
-
-    m_configDir = (configDir == NULL ? "" : configDir);
-    m_context->config = NULL;
-}
-
-const char *
-ClientContext::getConfigDirectory() const
-{
-    return m_configDir.c_str();
-}
-
-void
-ClientContext::cancelOperation()
-{
-    m_cancelOperation = true;
-}
-
-svn_error_t *
-ClientContext::checkCancel(void *cancelBaton)
-{
-    ClientContext *that = static_cast<ClientContext *>(cancelBaton);
-    if (that->m_cancelOperation)
-        return svn_error_create(SVN_ERR_CANCELLED, NULL,
-                                _("Operation cancelled"));
-    else
-        return SVN_NO_ERROR;
-}
-
-void
 ClientContext::notify(void *baton,
                       const svn_wc_notify_t *notify,
                       apr_pool_t *pool)
@@ -369,54 +177,6 @@ ClientContext::notify(void *baton,
   env->DeleteLocalRef(jInfo);
 }
 
-void
-ClientContext::progress(apr_off_t progressVal, apr_off_t total,
-                        void *baton, apr_pool_t *pool)
-{
-  jobject jctx = (jobject) baton;
-  JNIEnv *env = JNIUtil::getEnv();
-
-  // Create a local frame for our references
-  env->PushLocalFrame(LOCAL_FRAME_SIZE);
-  if (JNIUtil::isJavaExceptionThrown())
-    return;
-
-  static jmethodID mid = 0;
-  if (mid == 0)
-    {
-      jclass clazz = env->GetObjectClass(jctx);
-      if (JNIUtil::isJavaExceptionThrown())
-        POP_AND_RETURN_NOTHING();
-
-      mid = env->GetMethodID(clazz, "onProgress",
-                             "(L"JAVA_PACKAGE"/ProgressEvent;)V");
-      if (JNIUtil::isJavaExceptionThrown() || mid == 0)
-        POP_AND_RETURN_NOTHING();
-    }
-
-  static jmethodID midCT = 0;
-  jclass clazz = env->FindClass(JAVA_PACKAGE"/ProgressEvent");
-  if (JNIUtil::isJavaExceptionThrown())
-    POP_AND_RETURN_NOTHING();
-
-  if (midCT == 0)
-    {
-      midCT = env->GetMethodID(clazz, "<init>", "(JJ)V");
-      if (JNIUtil::isJavaExceptionThrown() || midCT == 0)
-        POP_AND_RETURN_NOTHING();
-    }
-
-  // Call the Java method.
-  jobject jevent = env->NewObject(clazz, midCT,
-                                  (jlong) progressVal, (jlong) total);
-  if (JNIUtil::isJavaExceptionThrown())
-    POP_AND_RETURN_NOTHING();
-
-  env->CallVoidMethod(jctx, mid, jevent);
-
-  POP_AND_RETURN_NOTHING();
-}
-
 svn_error_t *
 ClientContext::resolve(svn_wc_conflict_result_t **result,
                        const svn_wc_conflict_description2_t *desc,