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,