You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by da...@apache.org on 2010/09/09 22:26:52 UTC
svn commit: r995566 [1/16] - in /subversion/branches/atomic-revprop: ./
build/ac-macros/ build/generator/ contrib/server-side/ notes/ notes/wc-ng/
subversion/bindings/javahl/native/
subversion/bindings/javahl/src/org/apache/subversion/javahl/ subversio...
Author: danielsh
Date: Thu Sep 9 20:26:46 2010
New Revision: 995566
URL: http://svn.apache.org/viewvc?rev=995566&view=rev
Log:
On the atomic-revprop branch:
Merge r983926 through r995395.
* FAILING-TESTS, BRANCH-README:
Note some ra_serf tests, which fail both before and after this commit.
Added:
subversion/branches/atomic-revprop/FAILING-TESTS
subversion/branches/atomic-revprop/notes/external-vs-switched
- copied unchanged from r995395, subversion/trunk/notes/external-vs-switched
subversion/branches/atomic-revprop/notes/wc-ng/node-data
- copied unchanged from r995395, subversion/trunk/notes/wc-ng/node-data
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/ClientContext.cpp
- copied unchanged from r995395, subversion/trunk/subversion/bindings/javahl/native/ClientContext.cpp
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/ClientContext.h
- copied unchanged from r995395, subversion/trunk/subversion/bindings/javahl/native/ClientContext.h
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitCallback.cpp
- copied unchanged from r995395, subversion/trunk/subversion/bindings/javahl/native/CommitCallback.cpp
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitCallback.h
- copied unchanged from r995395, subversion/trunk/subversion/bindings/javahl/native/CommitCallback.h
subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitInfo.java
- copied unchanged from r995395, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitInfo.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/CommitCallback.java
- copied unchanged from r995395, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/CommitCallback.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/CommitMessageCallback.java
- copied unchanged from r995395, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/CommitMessageCallback.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java
- copied unchanged from r995395, subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNReposTests.java
subversion/branches/atomic-revprop/subversion/mod_dav_svn/posts/ (props changed)
- copied from r995395, subversion/trunk/subversion/mod_dav_svn/posts/
subversion/branches/atomic-revprop/subversion/tests/cmdline/redirect_tests.py
- copied unchanged from r995395, subversion/trunk/subversion/tests/cmdline/redirect_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/upgrade_tests_data/missing-dirs.tar.bz2
- copied unchanged from r995395, subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/missing-dirs.tar.bz2
subversion/branches/atomic-revprop/subversion/tests/cmdline/upgrade_tests_data/wc-delete.tar.bz2
- copied unchanged from r995395, subversion/trunk/subversion/tests/cmdline/upgrade_tests_data/wc-delete.tar.bz2
subversion/branches/atomic-revprop/tools/dev/wc-format.py
- copied unchanged from r995395, subversion/trunk/tools/dev/wc-format.py
subversion/branches/atomic-revprop/tools/dev/wc-ng/bump-to-19.py
- copied unchanged from r995395, subversion/trunk/tools/dev/wc-ng/bump-to-19.py
Removed:
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/ClientNotifyCallback.cpp
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/ClientNotifyCallback.h
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/ConflictResolverCallback.cpp
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/ConflictResolverCallback.h
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/ProgressListener.cpp
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/ProgressListener.h
subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/CommitMessage.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNAdminTests.java
Modified:
subversion/branches/atomic-revprop/ (props changed)
subversion/branches/atomic-revprop/BRANCH-README
subversion/branches/atomic-revprop/Makefile.in
subversion/branches/atomic-revprop/build.conf
subversion/branches/atomic-revprop/build/ac-macros/serf.m4
subversion/branches/atomic-revprop/build/generator/build_zlib.ezt
subversion/branches/atomic-revprop/build/generator/extractor.py
subversion/branches/atomic-revprop/configure.ac
subversion/branches/atomic-revprop/contrib/server-side/fsfsverify.py
subversion/branches/atomic-revprop/get-deps.sh
subversion/branches/atomic-revprop/notes/ (props changed)
subversion/branches/atomic-revprop/notes/wc-ng/conflict-storage
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.cpp
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.h
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.cpp
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.h
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.cpp
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.h
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.cpp
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.h
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNClient.cpp
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNClient.h
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNRepos.cpp
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNRepos.h
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
subversion/branches/atomic-revprop/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp
subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PromptUserPassword.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/tests/org/apache/subversion/javahl/RunTests.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/tests/org/apache/subversion/javahl/WC.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java
subversion/branches/atomic-revprop/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/SVNTests.java
subversion/branches/atomic-revprop/subversion/bindings/swig/include/svn_containers.swg
subversion/branches/atomic-revprop/subversion/bindings/swig/python/README
subversion/branches/atomic-revprop/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
subversion/branches/atomic-revprop/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h
subversion/branches/atomic-revprop/subversion/bindings/swig/svn_diff.i
subversion/branches/atomic-revprop/subversion/bindings/swig/svn_fs.i
subversion/branches/atomic-revprop/subversion/include/private/svn_dep_compat.h
subversion/branches/atomic-revprop/subversion/include/private/svn_sqlite.h
subversion/branches/atomic-revprop/subversion/include/private/svn_wc_private.h
subversion/branches/atomic-revprop/subversion/include/svn_client.h
subversion/branches/atomic-revprop/subversion/include/svn_dav.h
subversion/branches/atomic-revprop/subversion/include/svn_diff.h
subversion/branches/atomic-revprop/subversion/include/svn_error_codes.h
subversion/branches/atomic-revprop/subversion/include/svn_fs.h
subversion/branches/atomic-revprop/subversion/include/svn_props.h
subversion/branches/atomic-revprop/subversion/include/svn_ra.h
subversion/branches/atomic-revprop/subversion/include/svn_ra_svn.h
subversion/branches/atomic-revprop/subversion/include/svn_sorts.h
subversion/branches/atomic-revprop/subversion/include/svn_string.h
subversion/branches/atomic-revprop/subversion/include/svn_types.h
subversion/branches/atomic-revprop/subversion/include/svn_wc.h
subversion/branches/atomic-revprop/subversion/libsvn_client/add.c
subversion/branches/atomic-revprop/subversion/libsvn_client/client.h
subversion/branches/atomic-revprop/subversion/libsvn_client/cmdline.c
subversion/branches/atomic-revprop/subversion/libsvn_client/commit.c
subversion/branches/atomic-revprop/subversion/libsvn_client/commit_util.c
subversion/branches/atomic-revprop/subversion/libsvn_client/copy.c
subversion/branches/atomic-revprop/subversion/libsvn_client/delete.c
subversion/branches/atomic-revprop/subversion/libsvn_client/deprecated.c
subversion/branches/atomic-revprop/subversion/libsvn_client/diff.c
subversion/branches/atomic-revprop/subversion/libsvn_client/export.c
subversion/branches/atomic-revprop/subversion/libsvn_client/externals.c
subversion/branches/atomic-revprop/subversion/libsvn_client/info.c
subversion/branches/atomic-revprop/subversion/libsvn_client/list.c
subversion/branches/atomic-revprop/subversion/libsvn_client/locking_commands.c
subversion/branches/atomic-revprop/subversion/libsvn_client/merge.c
subversion/branches/atomic-revprop/subversion/libsvn_client/mergeinfo.c
subversion/branches/atomic-revprop/subversion/libsvn_client/patch.c
subversion/branches/atomic-revprop/subversion/libsvn_client/prop_commands.c
subversion/branches/atomic-revprop/subversion/libsvn_client/ra.c
subversion/branches/atomic-revprop/subversion/libsvn_client/relocate.c
subversion/branches/atomic-revprop/subversion/libsvn_client/repos_diff.c
subversion/branches/atomic-revprop/subversion/libsvn_client/repos_diff_summarize.c
subversion/branches/atomic-revprop/subversion/libsvn_client/status.c
subversion/branches/atomic-revprop/subversion/libsvn_client/update.c
subversion/branches/atomic-revprop/subversion/libsvn_client/url.c
subversion/branches/atomic-revprop/subversion/libsvn_delta/svndiff.c
subversion/branches/atomic-revprop/subversion/libsvn_diff/parse-diff.c
subversion/branches/atomic-revprop/subversion/libsvn_fs_base/notes/fs-history
subversion/branches/atomic-revprop/subversion/libsvn_fs_base/notes/structure
subversion/branches/atomic-revprop/subversion/libsvn_fs_base/util/fs_skels.c
subversion/branches/atomic-revprop/subversion/libsvn_fs_fs/fs_fs.c
subversion/branches/atomic-revprop/subversion/libsvn_fs_fs/structure
subversion/branches/atomic-revprop/subversion/libsvn_ra/deprecated.c
subversion/branches/atomic-revprop/subversion/libsvn_ra/ra_loader.c
subversion/branches/atomic-revprop/subversion/libsvn_ra/ra_loader.h
subversion/branches/atomic-revprop/subversion/libsvn_ra/wrapper_template.h
subversion/branches/atomic-revprop/subversion/libsvn_ra_local/ra_plugin.c
subversion/branches/atomic-revprop/subversion/libsvn_ra_neon/fetch.c
subversion/branches/atomic-revprop/subversion/libsvn_ra_neon/options.c
subversion/branches/atomic-revprop/subversion/libsvn_ra_neon/ra_neon.h
subversion/branches/atomic-revprop/subversion/libsvn_ra_neon/session.c
subversion/branches/atomic-revprop/subversion/libsvn_ra_neon/util.c
subversion/branches/atomic-revprop/subversion/libsvn_ra_serf/commit.c
subversion/branches/atomic-revprop/subversion/libsvn_ra_serf/options.c
subversion/branches/atomic-revprop/subversion/libsvn_ra_serf/property.c
subversion/branches/atomic-revprop/subversion/libsvn_ra_serf/ra_serf.h
subversion/branches/atomic-revprop/subversion/libsvn_ra_serf/serf.c
subversion/branches/atomic-revprop/subversion/libsvn_ra_serf/util.c
subversion/branches/atomic-revprop/subversion/libsvn_ra_svn/client.c
subversion/branches/atomic-revprop/subversion/libsvn_ra_svn/marshal.c
subversion/branches/atomic-revprop/subversion/libsvn_repos/load.c
subversion/branches/atomic-revprop/subversion/libsvn_repos/reporter.c
subversion/branches/atomic-revprop/subversion/libsvn_subr/config_file.c
subversion/branches/atomic-revprop/subversion/libsvn_subr/constructors.c
subversion/branches/atomic-revprop/subversion/libsvn_subr/dirent_uri.c
subversion/branches/atomic-revprop/subversion/libsvn_subr/hash.c
subversion/branches/atomic-revprop/subversion/libsvn_subr/io.c
subversion/branches/atomic-revprop/subversion/libsvn_subr/opt.c
subversion/branches/atomic-revprop/subversion/libsvn_subr/path.c
subversion/branches/atomic-revprop/subversion/libsvn_subr/sqlite.c
subversion/branches/atomic-revprop/subversion/libsvn_subr/svn_string.c
subversion/branches/atomic-revprop/subversion/libsvn_subr/utf.c
subversion/branches/atomic-revprop/subversion/libsvn_subr/validate.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/adm_crawler.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/adm_files.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/adm_ops.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/ambient_depth_filter_editor.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/copy.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/crop.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/deprecated.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/diff.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/entries.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/entries.h
subversion/branches/atomic-revprop/subversion/libsvn_wc/lock.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/lock.h
subversion/branches/atomic-revprop/subversion/libsvn_wc/merge.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/node.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/props.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/props.h
subversion/branches/atomic-revprop/subversion/libsvn_wc/questions.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/relocate.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/revision_status.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/status.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/translate.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/tree_conflicts.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/update_editor.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/upgrade.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/wc-metadata.sql
subversion/branches/atomic-revprop/subversion/libsvn_wc/wc-queries.sql
subversion/branches/atomic-revprop/subversion/libsvn_wc/wc.h
subversion/branches/atomic-revprop/subversion/libsvn_wc/wc_db.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/wc_db.h
subversion/branches/atomic-revprop/subversion/libsvn_wc/workqueue.c
subversion/branches/atomic-revprop/subversion/libsvn_wc/workqueue.h
subversion/branches/atomic-revprop/subversion/mod_dav_svn/dav_svn.h
subversion/branches/atomic-revprop/subversion/mod_dav_svn/deadprops.c
subversion/branches/atomic-revprop/subversion/mod_dav_svn/reports/log.c
subversion/branches/atomic-revprop/subversion/mod_dav_svn/reports/replay.c
subversion/branches/atomic-revprop/subversion/mod_dav_svn/repos.c
subversion/branches/atomic-revprop/subversion/mod_dav_svn/util.c
subversion/branches/atomic-revprop/subversion/mod_dav_svn/version.c
subversion/branches/atomic-revprop/subversion/po/fr.po
subversion/branches/atomic-revprop/subversion/svn/commit-cmd.c
subversion/branches/atomic-revprop/subversion/svn/copy-cmd.c
subversion/branches/atomic-revprop/subversion/svn/delete-cmd.c
subversion/branches/atomic-revprop/subversion/svn/import-cmd.c
subversion/branches/atomic-revprop/subversion/svn/log-cmd.c
subversion/branches/atomic-revprop/subversion/svn/main.c
subversion/branches/atomic-revprop/subversion/svn/merge-cmd.c
subversion/branches/atomic-revprop/subversion/svn/mkdir-cmd.c
subversion/branches/atomic-revprop/subversion/svn/move-cmd.c
subversion/branches/atomic-revprop/subversion/svn/notify.c
subversion/branches/atomic-revprop/subversion/svn/propdel-cmd.c
subversion/branches/atomic-revprop/subversion/svn/propedit-cmd.c
subversion/branches/atomic-revprop/subversion/svn/propset-cmd.c
subversion/branches/atomic-revprop/subversion/svn/revert-cmd.c
subversion/branches/atomic-revprop/subversion/svn/status-cmd.c
subversion/branches/atomic-revprop/subversion/svn/status.c
subversion/branches/atomic-revprop/subversion/svn/util.c
subversion/branches/atomic-revprop/subversion/svnrdump/dump_editor.c
subversion/branches/atomic-revprop/subversion/svnrdump/load_editor.c
subversion/branches/atomic-revprop/subversion/svnrdump/svnrdump.1
subversion/branches/atomic-revprop/subversion/svnrdump/svnrdump.c
subversion/branches/atomic-revprop/subversion/svnserve/log-escape.c
subversion/branches/atomic-revprop/subversion/svnsync/main.c
subversion/branches/atomic-revprop/subversion/tests/cmdline/README
subversion/branches/atomic-revprop/subversion/tests/cmdline/authz_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/basic_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/copy_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/davautocheck.sh
subversion/branches/atomic-revprop/subversion/tests/cmdline/diff_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/externals_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/input_validation_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/merge_authz_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/merge_reintegrate_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/merge_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/merge_tree_conflict_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/patch_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/revert_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/schedule_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/stat_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/svnrdump_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/svntest/actions.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/svntest/main.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/svntest/sandbox.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/svntest/wc.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/switch_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/tree_conflict_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/update_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/upgrade_tests.py
subversion/branches/atomic-revprop/subversion/tests/libsvn_delta/delta-window-test.h
subversion/branches/atomic-revprop/subversion/tests/libsvn_diff/parse-diff-test.c
subversion/branches/atomic-revprop/subversion/tests/libsvn_wc/db-test.c
subversion/branches/atomic-revprop/subversion/tests/svn_test_main.c
subversion/branches/atomic-revprop/tools/backup/hot-backup.py.in
subversion/branches/atomic-revprop/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd
subversion/branches/atomic-revprop/tools/dev/svnraisetreeconflict/ (props changed)
subversion/branches/atomic-revprop/tools/dev/unix-build/Makefile.svn
subversion/branches/atomic-revprop/tools/server-side/ (props changed)
subversion/branches/atomic-revprop/win-tests.py
Propchange: subversion/branches/atomic-revprop/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Thu Sep 9 20:26:46 2010
@@ -28,6 +28,7 @@ apr-util
apr-iconv
Release
Debug
+ipch
subversion_msvc.dsw
subversion_msvc.ncb
subversion_msvc.opt
@@ -35,6 +36,8 @@ subversion_msvc.plg
subversion_vcnet.sln
subversion_vcnet.ncb
subversion_vcnet.suo
+subversion_vcnet.sdf
+subversion_vcnet.opensdf
mkmf.log
.project
.classpath
Propchange: subversion/branches/atomic-revprop/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 9 20:26:46 2010
@@ -10,6 +10,7 @@
/subversion/branches/gnome-keyring:870558-871410
/subversion/branches/http-protocol-v2:874395-876041
/subversion/branches/in-memory-cache:869829-871452
+/subversion/branches/issue-2779-dev:965496-984198
/subversion/branches/issue-2843-dev:871432-874179
/subversion/branches/issue-3000:871713,871716-871719,871721-871726,871728,871734
/subversion/branches/issue-3067-deleted-subtrees:873375-874084
@@ -20,6 +21,8 @@
/subversion/branches/kwallet:870785-871314
/subversion/branches/log-g-performance:870941-871032
/subversion/branches/merge-skips-obstructions:874525-874615
+/subversion/branches/nfc-nfd-aware-client:870276,870376
+/subversion/branches/performance:983764,983766,984927,985014,985669,987893
/subversion/branches/ra_serf-digest-authn:875693-876404
/subversion/branches/reintegrate-improvements:873853-874164
/subversion/branches/subtree-mergeinfo:876734-878766
@@ -34,4 +37,4 @@
/subversion/branches/tc_url_rev:874351-874483
/subversion/branches/tree-conflicts:868291-873154
/subversion/branches/tree-conflicts-notify:873926-874008
-/subversion/trunk:965046-983925
+/subversion/trunk:965046-995395
Modified: subversion/branches/atomic-revprop/BRANCH-README
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/BRANCH-README?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/BRANCH-README (original)
+++ subversion/branches/atomic-revprop/BRANCH-README Thu Sep 9 20:26:46 2010
@@ -33,6 +33,12 @@ Planned work
- upgrade svn_ra_change_rev_prop() callers
+Failing tests
+=============
+
+See details in ./FAILING-TESTS.
+
+
Dependency: have ra_dav provide err->apr_err over the wire
==========================================================
Added: subversion/branches/atomic-revprop/FAILING-TESTS
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/FAILING-TESTS?rev=995566&view=auto
==============================================================================
--- subversion/branches/atomic-revprop/FAILING-TESTS (added)
+++ subversion/branches/atomic-revprop/FAILING-TESTS Thu Sep 9 20:26:46 2010
@@ -0,0 +1,29 @@
+As of r995562 (which is the sync up to r995395 from trunk), the tests are as follows:
+
+* ra_local, ra_svn, ra_neon:
+ All tests pass.
+
+* ra_serf:
+ The following tests fail. They failed before r995395 too.
+[[[
+FAIL: depth_tests.py 37: tree conflicts resolved depth-empty
+FAIL: depth_tests.py 38: tree conflicts resolved depth-files
+FAIL: depth_tests.py 39: tree conflicts resolved depth-immediates
+FAIL: depth_tests.py 40: tree conflicts resolved depth-infinity
+FAIL: diff_tests.py 24: diff a prop change on a dir named explicitly
+FAIL: diff_tests.py 29: diff to BASE with local property mods
+FAIL: merge_tests.py 3: some simple property merges
+FAIL: merge_tests.py 55: subtrees can lose non-inheritable ranges
+FAIL: merge_tests.py 58: child having different rev ranges to merge
+FAIL: merge_tests.py 63: reverse merge of prop add on child
+FAIL: merge_tests.py 77: merges that remove all mergeinfo work
+FAIL: merge_tests.py 98: mergeinfo deleted by a merge should disappear
+FAIL: resolved_tests.py 1: resolved on working copy root
+FAIL: stat_tests.py 24: run 'status -u' variations w/ incoming propchanges
+FAIL: stat_tests.py 25: run 'status -uv' w/ incoming propchanges
+FAIL: svnadmin_tests.py 13: recover a repository (FSFS only)
+FAIL: svnadmin_tests.py 17: fsfs recovery checks missing revs / revprops files
+FAIL: update_tests.py 35: update conflicted files
+FAIL: update_tests.py 36: mergeinfo does not elide after update
+FAIL: update_tests.py 45: restarted update should delete dir prop
+]]]
Modified: subversion/branches/atomic-revprop/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/Makefile.in?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/Makefile.in (original)
+++ subversion/branches/atomic-revprop/Makefile.in Thu Sep 9 20:26:46 2010
@@ -437,13 +437,10 @@ clean-javahl:
rm -f $(libsvnjavahl_PATH)/*.lo
rm -f $(libsvnjavahl_PATH)/*.o
-check-javahl-compat: javahl-compat-tests javahl-compat
- @FIX_JAVAHL_LIB@
- $(JAVA) "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" -Djava.library.path=@JAVAHL_OBJDIR@:$(libdir) -classpath $(javahl_compat_tests_PATH):$(javahl_tests_CLASSPATH) "-Dtest.tests=$(JAVAHL_TESTS)" org.tigris.subversion.javahl.RunTests
-
-check-javahl: javahl check-javahl-compat
+check-javahl: javahl javahl-compat
@FIX_JAVAHL_LIB@
$(JAVA) "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" -Djava.library.path=@JAVAHL_OBJDIR@:$(libdir) -classpath $(javahl_tests_PATH):$(javahl_tests_CLASSPATH) "-Dtest.tests=$(JAVAHL_TESTS)" org.apache.subversion.javahl.RunTests
+ $(JAVA) "-Dtest.rootdir=$(javahl_test_rootdir)" "-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)" "-Dtest.fstype=$(FS_TYPE)" -Djava.library.path=@JAVAHL_OBJDIR@:$(libdir) -classpath $(javahl_compat_tests_PATH):$(javahl_tests_CLASSPATH) "-Dtest.tests=$(JAVAHL_TESTS)" org.tigris.subversion.javahl.RunTests
# "make check CLEANUP=true" will clean up directories for successful tests.
# "make check TESTS=subversion/tests/cmdline/basic_tests.py"
Modified: subversion/branches/atomic-revprop/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/build.conf?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/build.conf (original)
+++ subversion/branches/atomic-revprop/build.conf Thu Sep 9 20:26:46 2010
@@ -168,7 +168,7 @@ install = bin
manpages = subversion/svnversion/svnversion.1
[svnrdump]
-description = Subversion remote repository dumper
+description = Subversion remote repository dumper and loader
type = exe
path = subversion/svnrdump
libs = libsvn_client libsvn_ra libsvn_repos libsvn_delta libsvn_subr apr
@@ -345,7 +345,7 @@ msvc-export = svn_wc.h private\svn_wc_pr
description = Subversion plug-in for the Apache DAV module
type = apache-mod
path = subversion/mod_dav_svn
-sources = *.c reports/*.c
+sources = *.c reports/*.c posts/*.c
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr
nonlibs = apr aprutil
install = apache-mod
Modified: subversion/branches/atomic-revprop/build/ac-macros/serf.m4
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/build/ac-macros/serf.m4?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/build/ac-macros/serf.m4 (original)
+++ subversion/branches/atomic-revprop/build/ac-macros/serf.m4 Thu Sep 9 20:26:46 2010
@@ -27,6 +27,10 @@ AC_DEFUN(SVN_LIB_SERF,
[
serf_found=no
+ serf_check_major=0
+ serf_check_minor=3
+ serf_check_patch=1
+
AC_ARG_WITH(serf,AS_HELP_STRING([--with-serf=PREFIX],
[Serf WebDAV client library]),
[
@@ -40,7 +44,16 @@ AC_DEFUN(SVN_LIB_SERF,
AC_CHECK_HEADERS(serf.h,[
save_ldflags="$LDFLAGS"
LDFLAGS="$LDFLAGS -L$serf_prefix/lib"
- AC_CHECK_LIB(serf-0, serf_context_create,[serf_found="yes"], ,
+ AC_CHECK_LIB(serf-0, serf_context_create,[
+ AC_TRY_COMPILE([
+#include <stdlib.h>
+#include "serf.h"
+],[
+#if ! SERF_VERSION_AT_LEAST($serf_check_major, $serf_check_minor, $serf_check_patch)
+#error Serf version too old: need $serf_check_major.$serf_check_minor.$serf_check_patch
+#endif
+], [serf_found=yes], [AC_MSG_WARN([Serf version too old: need $serf_check_major.$serf_check_minor.$serf_check_patch])
+ serf_found=no])], ,
$SVN_APRUTIL_LIBS $SVN_APR_LIBS -lz)
LDFLAGS="$save_ldflags"])
CPPFLAGS="$save_cppflags"
Modified: subversion/branches/atomic-revprop/build/generator/build_zlib.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/build/generator/build_zlib.ezt?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/build/generator/build_zlib.ezt (original)
+++ subversion/branches/atomic-revprop/build/generator/build_zlib.ezt Thu Sep 9 20:26:46 2010
@@ -43,13 +43,13 @@ if not exist gvmat32c.c copy contrib\
if not exist gvmat32.asm copy contrib\masmx86\gvmat32.asm .
if not exist inffas32.asm copy contrib\masmx86\inffas32.asm .[end]
-if "%1" == "release" goto release
-if "%1" == "debug" goto debug
+if /i "%1" == "release" goto release
+if /i "%1" == "debug" goto debug
goto pIerr
:checkrebuild
-if "%2" == "rebuild" goto rebuild
-if "%2" == "clean" goto clean
+if /i "%2" == "rebuild" goto rebuild
+if /i "%2" == "clean" goto clean
if not "%2" == "" goto pIIerr
set target= %STATICLIB%
goto build
Modified: subversion/branches/atomic-revprop/build/generator/extractor.py
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/build/generator/extractor.py?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/build/generator/extractor.py (original)
+++ subversion/branches/atomic-revprop/build/generator/extractor.py Thu Sep 9 20:26:46 2010
@@ -24,7 +24,6 @@
import os
import re
-import string
#
# This parses the following two types of declarations:
Modified: subversion/branches/atomic-revprop/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/configure.ac?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/configure.ac (original)
+++ subversion/branches/atomic-revprop/configure.ac Thu Sep 9 20:26:46 2010
@@ -153,7 +153,7 @@ SVN_FIND_APACHE(20020903)
dnl Search for SQLite
SQLITE_MINIMUM_VER="3.4.0"
-SQLITE_RECOMMENDED_VER="3.6.17"
+SQLITE_RECOMMENDED_VER="3.7.2"
SQLITE_URL="http://www.sqlite.org/sqlite-amalgamation-${SQLITE_RECOMMENDED_VER}.tar.gz"
SVN_LIB_SQLITE(${SQLITE_MINIMUM_VER}, ${SQLITE_RECOMMENDED_VER},
${SQLITE_URL})
Modified: subversion/branches/atomic-revprop/contrib/server-side/fsfsverify.py
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/contrib/server-side/fsfsverify.py?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/contrib/server-side/fsfsverify.py (original)
+++ subversion/branches/atomic-revprop/contrib/server-side/fsfsverify.py Thu Sep 9 20:26:46 2010
@@ -675,11 +675,13 @@ class NodeRev(object):
elif field == 'pred':
self.pred = NodeId(value)
elif field == 'text':
- (rev, offset, length, size, digest) = value.split(' ')
- rev = int(rev)
- offset = int(offset)
- length = int(length)
- size = int(size)
+ values = value.split(' ')
+ rev = int(values[0])
+ offset = int(values[1])
+ length = int(values[2])
+ size = int(values[3])
+ digest = values[4]
+ # TODO SHA1 digest
if rev != currentRev:
contentType = None
Modified: subversion/branches/atomic-revprop/get-deps.sh
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/get-deps.sh?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/get-deps.sh (original)
+++ subversion/branches/atomic-revprop/get-deps.sh Thu Sep 9 20:26:46 2010
@@ -28,7 +28,7 @@ APR_UTIL=apr-util-1.3.9
NEON=neon-0.29.0
SERF=serf-0.6.1
ZLIB=zlib-1.2.5
-SQLITE_VERSION=3.6.20
+SQLITE_VERSION=3.7.2
SQLITE=sqlite-amalgamation-$SQLITE_VERSION
HTTPD=httpd-2.2.14
Propchange: subversion/branches/atomic-revprop/notes/
('svn:mergeinfo' removed)
Modified: subversion/branches/atomic-revprop/notes/wc-ng/conflict-storage
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/notes/wc-ng/conflict-storage?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/notes/wc-ng/conflict-storage (original)
+++ subversion/branches/atomic-revprop/notes/wc-ng/conflict-storage Thu Sep 9 20:26:46 2010
@@ -48,6 +48,16 @@ equivalent in wc-ng conflict storage (su
but this information can be deduced from the information stored
(e.g. conflict-old and friends; foo.r42 is now 'foo' + '.r' + left_rev)
+### BH: We have to store the exact name of the conflict marker files. If we
+### just 'guess' how conflict markers are named by using their revision
+### numbers, we can't handle situations where there are existing files with
+### these names. The WC-1.0 code uses a unique name function to generate a
+### unique marker file name which happens to match this pattern if there are
+### no conflicts, but sometimes explicitly preserves the existing file
+### extension to help diff tools. (See 'preserved-conflict-file-exts' in our
+### config). I think we can move the names of the markers into the skel and/or
+### keep them in their own columns. (These names are needed on filling a
+### svn_wc_entry_t)
Operation skel
--------------
@@ -256,19 +266,23 @@ is the failure to find a match for a hun
There can be one or more reject conflicts on a node. Each "reject" conflict
has the following form:
- ("reject" HUNK_ORIGINAL_OFFSET HUNK_ORIGINAL_LEN
- HUNK_MODIFIED_OFFSET HUNK_MODIFIED_LENGTH
- REJECT_DIFF_SHA1)
+ REJECTED_HUNK_LIST := (HUNK_ORIGINAL_OFFSET HUNK_ORIGINAL_LENGTH
+ HUNK_MODIFIED_OFFSET HUNK_MODIFIED_LENGTH)*
+
+ ("reject" REJECT_FILE TARGET_PATCH_SHA1 REJECTED_HUNK_LIST)
+
+REJECT_FILE is ...
+
+TARGET_PATCH_SHA1 is <selection of patch file applying to target>
+the sha1 of the unidiff content of the rejected
+hunk as written to the .svnpatch.rej file. The actual unidiff content
+(which can be large!) can be retrieved from the pristine store.
HUNK_{ORIGINAL,MODIFIED}_OFFSET and HUNK_{ORIGINAL,MODIFIED}_LENGTH
are the hunk header values as parsed from the patch file (i.e. the "ID"
of the hunk within the patch file). These also occur in the reject
diff text but are stored here for easy retrieval.
-REJECT_DIFF_SHA1 is the sha1 of the unidiff content of the rejected
-hunk as written to the .svnpatch.rej file. The actual unidiff content
-(which can be large!) can be retrieved from the pristine store.
-
### BH: Using a sha1 here, makes it impossible to cleanup the pristine store
### The pristine store needs all references to be stored in a DB column.
### To support this we would need an extra table.
@@ -277,3 +291,6 @@ hunk as written to the .svnpatch.rej fil
### the user deletes the tempfile would be nice. And I don't see an issue
### with also storing the SHA1 sum in the ACTUAL table. We do this for
### text conflicts as well. Why would it need an extra table?
+
+ ("prop-reject" REJECT_FILE
+ (PROPERTY_NAME TARGET_PATCH_SHA1 REJECTED_HUNK_LIST)* )
Modified: subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.cpp?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.cpp (original)
+++ subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.cpp Thu Sep 9 20:26:46 2010
@@ -28,9 +28,10 @@
#include "CreateJ.h"
#include "EnumMapper.h"
#include "JNIUtil.h"
+#include "JNIStringHolder.h"
+
#include <apr_tables.h>
#include "svn_client.h"
-#include "../include/org_apache_subversion_javahl_CommitItemStateFlags.h"
CommitMessage::CommitMessage(jobject jcommitMessage)
{
@@ -39,90 +40,46 @@ CommitMessage::CommitMessage(jobject jco
CommitMessage::~CommitMessage()
{
- // Since the m_jcommitMessage is a global reference, it has to be
- // deleted to allow the Java garbage collector to reclaim the
- // object.
- if (m_jcommitMessage!= NULL)
- {
- JNIEnv *env = JNIUtil::getEnv();
- env->DeleteGlobalRef(m_jcommitMessage);
- }
+ // No need to delete the local reference
}
-CommitMessage *CommitMessage::makeCCommitMessage(jobject jcommitMessage)
+svn_error_t *
+CommitMessage::callback(const char **log_msg,
+ const char **tmp_file,
+ const apr_array_header_t *commit_items,
+ void *baton,
+ apr_pool_t *pool)
{
- // If there is no object passed into this method, there is no need
- // for a C++ holding object.
- if (jcommitMessage == NULL)
- return NULL;
-
- // Sanity check, that the passed Java object implements the right
- // interface.
- JNIEnv *env = JNIUtil::getEnv();
- jclass clazz = env->FindClass(JAVA_PACKAGE"/CommitMessage");
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- if (!env->IsInstanceOf(jcommitMessage, clazz))
- {
- env->DeleteLocalRef(clazz);
- return NULL;
- }
- env->DeleteLocalRef(clazz);
-
- // Since the reference is longer needed then the duration of the
- // SVNClient.commtMessage, the local reference has to be converted
- // to a global reference.
- jobject myCommitMessage = env->NewGlobalRef(jcommitMessage);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- // create & return the holding object
- return new CommitMessage(myCommitMessage);
+ if (baton && ((CommitMessage *)baton)->m_jcommitMessage)
+ return ((CommitMessage *)baton)->getCommitMessage(log_msg, tmp_file,
+ commit_items, pool);
+
+ *log_msg = NULL;
+ *tmp_file = NULL;
+ return SVN_NO_ERROR;
}
-/**
- * Call the Java callback method to retrieve the commit message
- * @param commit_items the array of the items of this commit
- * @returns the commit message
- */
-jstring
-CommitMessage::getCommitMessage(const apr_array_header_t *commit_items)
+svn_error_t *
+CommitMessage::getCommitMessage(const char **log_msg,
+ const char **tmp_file,
+ const apr_array_header_t *commit_items,
+ apr_pool_t *pool)
{
+ *tmp_file = NULL;
JNIEnv *env = JNIUtil::getEnv();
- // create an Java array for the commit items
- jclass clazz = env->FindClass(JAVA_PACKAGE"/CommitItem");
- if (JNIUtil::isExceptionThrown())
- return NULL;
-
- // Java method ids will not change during the time this library is
- // loaded, so they can be cached.
-
- // Get the method id for the CommitItem constructor.
- static jmethodID midConstructor = 0;
- if (midConstructor == 0)
- {
- midConstructor = env->GetMethodID(clazz, "<init>",
- "(Ljava/lang/String;"
- "L"JAVA_PACKAGE"/NodeKind;"
- "ILjava/lang/String;"
- "Ljava/lang/String;J)V");
- if (JNIUtil::isExceptionThrown())
- return NULL;
- }
// get the method if for the CommitMessage callback method
static jmethodID midCallback = 0;
if (midCallback == 0)
{
- jclass clazz2 = env->FindClass(JAVA_PACKAGE"/CommitMessage");
+ jclass clazz2 = env->FindClass(JAVA_PACKAGE"/callback/CommitMessageCallback");
if (JNIUtil::isJavaExceptionThrown())
- return NULL;
+ return SVN_NO_ERROR;
midCallback = env->GetMethodID(clazz2, "getLogMessage",
"(Ljava/util/Set;)Ljava/lang/String;");
if (JNIUtil::isJavaExceptionThrown())
- return NULL;
+ return SVN_NO_ERROR;
env->DeleteLocalRef(clazz2);
}
@@ -134,65 +91,26 @@ CommitMessage::getCommitMessage(const ap
svn_client_commit_item3_t *item =
APR_ARRAY_IDX(commit_items, i, svn_client_commit_item3_t *);
- // convert the commit item members to the match Java members
- jstring jpath = JNIUtil::makeJString(item->path);
-
- jobject jnodeKind = EnumMapper::mapNodeKind(item->kind);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jint jstateFlags = 0;
- if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_ADD)
- jstateFlags |=
- org_apache_subversion_javahl_CommitItemStateFlags_Add;
- if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_DELETE)
- jstateFlags |=
- org_apache_subversion_javahl_CommitItemStateFlags_Delete;
- if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_TEXT_MODS)
- jstateFlags |=
- org_apache_subversion_javahl_CommitItemStateFlags_TextMods;
- if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_PROP_MODS)
- jstateFlags |=
- org_apache_subversion_javahl_CommitItemStateFlags_PropMods;
- if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_IS_COPY)
- jstateFlags |=
- org_apache_subversion_javahl_CommitItemStateFlags_IsCopy;
-
- jstring jurl = JNIUtil::makeJString(item->url);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jstring jcopyUrl = JNIUtil::makeJString(item->copyfrom_url);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- jlong jcopyRevision = item->revision;
-
- // create the Java object
- jobject jitem = env->NewObject(clazz, midConstructor, jpath,
- jnodeKind, jstateFlags, jurl,
- jcopyUrl, jcopyRevision);
- if (JNIUtil::isJavaExceptionThrown())
- return NULL;
-
- // release the tempory Java objects
- env->DeleteLocalRef(jpath);
- env->DeleteLocalRef(jnodeKind);
- env->DeleteLocalRef(jurl);
- env->DeleteLocalRef(jcopyUrl);
+ jobject jitem = CreateJ::CommitItem(item);
// store the Java object into the array
jitems.push_back(jitem);
}
- env->DeleteLocalRef(clazz);
-
// call the Java callback method
jstring jmessage = (jstring)env->CallObjectMethod(m_jcommitMessage,
midCallback,
CreateJ::Set(jitems));
if (JNIUtil::isJavaExceptionThrown())
- return NULL;
+ return SVN_NO_ERROR;
+
+ if (jmessage != NULL)
+ {
+ JNIStringHolder msg(jmessage);
+ *log_msg = apr_pstrdup(pool, msg);
+ }
+ else
+ *log_msg = NULL;
- return jmessage;
+ return SVN_NO_ERROR;
}
Modified: subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.h
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.h?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.h (original)
+++ subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CommitMessage.h Thu Sep 9 20:26:46 2010
@@ -28,7 +28,8 @@
#define COMMITMESSAGE_H
#include <jni.h>
-struct apr_array_header_t;
+
+#include "svn_client.h"
/**
* This class stores a Java object implementing the CommitMessage
@@ -37,36 +38,25 @@ struct apr_array_header_t;
class CommitMessage
{
public:
- /**
- * Deletes the global reference to m_jcommitMessage.
- */
+ CommitMessage(jobject jcommitMessage);
~CommitMessage();
- jstring getCommitMessage(const apr_array_header_t *commit_items);
-
- /**
- * Create a C++ holding object for the Java object passed into the
- * native code.
- *
- * @param jcommitMessage The local reference to a
- * org.tigris.subversion.javahl.CommitMessage Java commit message
- * object.
- */
- static CommitMessage *makeCCommitMessage(jobject jcommitMessage);
+ static svn_error_t *callback(const char **log_msg,
+ const char **tmp_file,
+ const apr_array_header_t *commit_items,
+ void *baton,
+ apr_pool_t *pool);
+
+ protected:
+ svn_error_t *getCommitMessage(const char **log_msg,
+ const char **tmp_file,
+ const apr_array_header_t *commit_items,
+ apr_pool_t *pool);
private:
- /**
- * A global reference to the Java object, because the reference
- * must be valid longer than the SVNClient.commitMessage call.
- */
+ /* A local reference. */
jobject m_jcommitMessage;
- /**
- * Create a commit message object.
- *
- * @param jcommitMessage The Java object to receive the callback.
- */
- CommitMessage(jobject jcommitMessage);
};
#endif // COMMITMESSAGE_H
Modified: subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.cpp?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.cpp Thu Sep 9 20:26:46 2010
@@ -32,6 +32,7 @@
#include "RevisionRange.h"
#include "CreateJ.h"
#include "../include/org_apache_subversion_javahl_Revision.h"
+#include "../include/org_apache_subversion_javahl_CommitItemStateFlags.h"
#include "svn_path.h"
#include "private/svn_wc_private.h"
@@ -850,6 +851,117 @@ CreateJ::ReposNotifyInformation(const sv
}
jobject
+CreateJ::CommitItem(svn_client_commit_item3_t *item)
+{
+ JNIEnv *env = JNIUtil::getEnv();
+
+ // Create a local frame for our references
+ env->PushLocalFrame(LOCAL_FRAME_SIZE);
+ if (JNIUtil::isJavaExceptionThrown())
+ return NULL;
+
+ jclass clazz = env->FindClass(JAVA_PACKAGE"/CommitItem");
+ if (JNIUtil::isExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ // Get the method id for the CommitItem constructor.
+ static jmethodID midConstructor = 0;
+ if (midConstructor == 0)
+ {
+ midConstructor = env->GetMethodID(clazz, "<init>",
+ "(Ljava/lang/String;"
+ "L"JAVA_PACKAGE"/NodeKind;"
+ "ILjava/lang/String;"
+ "Ljava/lang/String;J)V");
+ if (JNIUtil::isExceptionThrown())
+ POP_AND_RETURN_NULL;
+ }
+
+ jstring jpath = JNIUtil::makeJString(item->path);
+
+ jobject jnodeKind = EnumMapper::mapNodeKind(item->kind);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jint jstateFlags = 0;
+ if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_ADD)
+ jstateFlags |=
+ org_apache_subversion_javahl_CommitItemStateFlags_Add;
+ if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_DELETE)
+ jstateFlags |=
+ org_apache_subversion_javahl_CommitItemStateFlags_Delete;
+ if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_TEXT_MODS)
+ jstateFlags |=
+ org_apache_subversion_javahl_CommitItemStateFlags_TextMods;
+ if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_PROP_MODS)
+ jstateFlags |=
+ org_apache_subversion_javahl_CommitItemStateFlags_PropMods;
+ if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_IS_COPY)
+ jstateFlags |=
+ org_apache_subversion_javahl_CommitItemStateFlags_IsCopy;
+
+ jstring jurl = JNIUtil::makeJString(item->url);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jcopyUrl = JNIUtil::makeJString(item->copyfrom_url);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jlong jcopyRevision = item->revision;
+
+ // create the Java object
+ jobject jitem = env->NewObject(clazz, midConstructor, jpath,
+ jnodeKind, jstateFlags, jurl,
+ jcopyUrl, jcopyRevision);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ return env->PopLocalFrame(jitem);
+}
+
+jobject
+CreateJ::CommitInfo(const svn_commit_info_t *commit_info)
+{
+ JNIEnv *env = JNIUtil::getEnv();
+
+ // Create a local frame for our references
+ env->PushLocalFrame(LOCAL_FRAME_SIZE);
+ if (JNIUtil::isJavaExceptionThrown())
+ return NULL;
+
+ static jmethodID midCT = 0;
+ jclass clazz = env->FindClass(JAVA_PACKAGE"/CommitInfo");
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ if (midCT == 0)
+ {
+ midCT = env->GetMethodID(clazz, "<init>",
+ "(JLjava/lang/String;Ljava/lang/String;)V");
+ if (JNIUtil::isJavaExceptionThrown() || midCT == 0)
+ POP_AND_RETURN_NULL;
+ }
+
+ jstring jAuthor = JNIUtil::makeJString(commit_info->author);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jDate = JNIUtil::makeJString(commit_info->date);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jlong jRevision = commit_info->revision;
+
+ // call the Java method
+ jobject jInfo = env->NewObject(clazz, midCT, jRevision, jDate, jAuthor);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ return env->PopLocalFrame(jInfo);
+}
+
+jobject
CreateJ::RevisionRangeList(apr_array_header_t *ranges)
{
JNIEnv *env = JNIUtil::getEnv();
Modified: subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.h
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.h?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.h (original)
+++ subversion/branches/atomic-revprop/subversion/bindings/javahl/native/CreateJ.h Thu Sep 9 20:26:46 2010
@@ -65,6 +65,12 @@ class CreateJ
ReposNotifyInformation(const svn_repos_notify_t *notify, apr_pool_t *pool);
static jobject
+ CommitItem(svn_client_commit_item3_t *item);
+
+ static jobject
+ CommitInfo(const svn_commit_info_t *info);
+
+ static jobject
RevisionRangeList(apr_array_header_t *ranges);
static jobject
Modified: subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.cpp?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.cpp (original)
+++ subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.cpp Thu Sep 9 20:26:46 2010
@@ -41,11 +41,9 @@
* @param v2 the callback objects implements PromptUserPassword2
* @param v3 the callback objects implements PromptUserPassword3
*/
-Prompter::Prompter(jobject jprompter, bool v2, bool v3)
+Prompter::Prompter(jobject jprompter)
{
m_prompter = jprompter;
- m_version2 = v2;
- m_version3 = v3;
}
Prompter::~Prompter()
@@ -79,35 +77,13 @@ Prompter *Prompter::makeCPrompter(jobjec
return NULL;
// Sanity check that the Java object implements PromptUserPassword.
- jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword");
+ jclass clazz = env->FindClass(JAVA_PACKAGE"/callback/UserPasswordCallback");
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
if (!env->IsInstanceOf(jprompter, clazz))
POP_AND_RETURN_NULL;
- // Check if PromptUserPassword2 is implemented by the Java object.
- jclass clazz2 = env->FindClass(JAVA_PACKAGE"/PromptUserPassword2");
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN_NULL;
-
- bool v2 = env->IsInstanceOf(jprompter, clazz2) ? true: false;
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN_NULL;
-
- bool v3 = false;
- if (v2)
- {
- // Check if PromptUserPassword3 is implemented by the Java object.
- jclass clazz3 = env->FindClass(JAVA_PACKAGE"/PromptUserPassword3");
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN_NULL;
-
- v3 = env->IsInstanceOf(jprompter, clazz3) ? true: false;
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN_NULL;
- }
-
// Create a new global ref for the Java object, because it is
// longer used that this call.
jobject myPrompt = env->NewGlobalRef(jprompter);
@@ -117,7 +93,7 @@ Prompter *Prompter::makeCPrompter(jobjec
env->PopLocalFrame(NULL);
// Create the C++ peer.
- return new Prompter(myPrompt, v2, v3);
+ return new Prompter(myPrompt);
}
/**
@@ -251,101 +227,53 @@ const char *Prompter::askQuestion(const
if (JNIUtil::isJavaExceptionThrown())
return false;
- if (m_version3)
+ static jmethodID mid = 0;
+ static jmethodID mid2 = 0;
+ if (mid == 0)
{
- static jmethodID mid = 0;
- static jmethodID mid2 = 0;
- if (mid == 0)
- {
- jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword3");
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN_NULL;
-
- mid = env->GetMethodID(clazz, "askQuestion",
- "(Ljava/lang/String;Ljava/lang/String;"
- "ZZ)Ljava/lang/String;");
- if (JNIUtil::isJavaExceptionThrown() || mid == 0)
- POP_AND_RETURN_NULL;
-
- mid2 = env->GetMethodID(clazz, "userAllowedSave", "()Z");
- if (JNIUtil::isJavaExceptionThrown() || mid == 0)
- POP_AND_RETURN_NULL;
- }
-
- jstring jrealm = JNIUtil::makeJString(realm);
+ jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword3");
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
- jstring jquestion = JNIUtil::makeJString(question);
- if (JNIUtil::isJavaExceptionThrown())
+ mid = env->GetMethodID(clazz, "askQuestion",
+ "(Ljava/lang/String;Ljava/lang/String;"
+ "ZZ)Ljava/lang/String;");
+ if (JNIUtil::isJavaExceptionThrown() || mid == 0)
POP_AND_RETURN_NULL;
- jstring janswer = static_cast<jstring>(
- env->CallObjectMethod(m_prompter, mid, jrealm,
- jquestion,
- showAnswer ? JNI_TRUE : JNI_FALSE,
- maySave ? JNI_TRUE : JNI_FALSE));
- if (JNIUtil::isJavaExceptionThrown())
+ mid2 = env->GetMethodID(clazz, "userAllowedSave", "()Z");
+ if (JNIUtil::isJavaExceptionThrown() || mid == 0)
POP_AND_RETURN_NULL;
-
- JNIStringHolder answer(janswer);
- if (answer != NULL)
- {
- m_answer = answer;
- m_maySave = env->CallBooleanMethod(m_prompter, mid2) ? true: false;
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN_NULL;
- }
- else
- {
- m_answer = "";
- m_maySave = false;
- }
}
- else
- {
- static jmethodID mid = 0;
- if (mid == 0)
- {
- jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword");
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN_NULL;
-
- mid = env->GetMethodID(clazz, "askQuestion",
- "(Ljava/lang/String;Ljava/lang/String;Z)"
- "Ljava/lang/String;");
- if (JNIUtil::isJavaExceptionThrown() || mid == 0)
- POP_AND_RETURN_NULL;
- }
- jstring jrealm = JNIUtil::makeJString(realm);
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN_NULL;
+ jstring jrealm = JNIUtil::makeJString(realm);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
- jstring jquestion = JNIUtil::makeJString(question);
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN_NULL;
+ jstring jquestion = JNIUtil::makeJString(question);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
- jstring janswer = static_cast<jstring>(
- env->CallObjectMethod(m_prompter, mid, jrealm,
- jquestion, showAnswer ? JNI_TRUE : JNI_FALSE));
+ jstring janswer = static_cast<jstring>(
+ env->CallObjectMethod(m_prompter, mid, jrealm,
+ jquestion,
+ showAnswer ? JNI_TRUE : JNI_FALSE,
+ maySave ? JNI_TRUE : JNI_FALSE));
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ JNIStringHolder answer(janswer);
+ if (answer != NULL)
+ {
+ m_answer = answer;
+ m_maySave = env->CallBooleanMethod(m_prompter, mid2) ? true: false;
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
-
- JNIStringHolder answer(janswer);
- if (answer != NULL)
- {
- m_answer = answer;
- if (maySave)
- m_maySave = askYesNo(realm, _("May save the answer ?"), true);
- else
- m_maySave = false;
- }
- else
- {
- m_answer = "";
- m_maySave = false;
- }
+ }
+ else
+ {
+ m_answer = "";
+ m_maySave = false;
}
env->PopLocalFrame(NULL);
@@ -354,58 +282,36 @@ const char *Prompter::askQuestion(const
int Prompter::askTrust(const char *question, bool maySave)
{
- if (m_version2)
- {
- static jmethodID mid = 0;
- JNIEnv *env = JNIUtil::getEnv();
-
- // Create a local frame for our references
- env->PushLocalFrame(LOCAL_FRAME_SIZE);
- if (JNIUtil::isJavaExceptionThrown())
- return -1;
-
- if (mid == 0)
- {
- jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword2");
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN(-1);
-
- mid = env->GetMethodID(clazz, "askTrustSSLServer",
- "(Ljava/lang/String;Z)I");
- if (JNIUtil::isJavaExceptionThrown() || mid == 0)
- POP_AND_RETURN(-1);
- }
- jstring jquestion = JNIUtil::makeJString(question);
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN(-1);
+ static jmethodID mid = 0;
+ JNIEnv *env = JNIUtil::getEnv();
- jint ret = env->CallIntMethod(m_prompter, mid, jquestion,
- maySave ? JNI_TRUE : JNI_FALSE);
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN(-1);
+ // Create a local frame for our references
+ env->PushLocalFrame(LOCAL_FRAME_SIZE);
+ if (JNIUtil::isJavaExceptionThrown())
+ return -1;
+
+ if (mid == 0)
+ {
+ jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword2");
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN(-1);
+
+ mid = env->GetMethodID(clazz, "askTrustSSLServer",
+ "(Ljava/lang/String;Z)I");
+ if (JNIUtil::isJavaExceptionThrown() || mid == 0)
+ POP_AND_RETURN(-1);
+ }
+ jstring jquestion = JNIUtil::makeJString(question);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN(-1);
+
+ jint ret = env->CallIntMethod(m_prompter, mid, jquestion,
+ maySave ? JNI_TRUE : JNI_FALSE);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN(-1);
- env->PopLocalFrame(NULL);
- return ret;
- }
- else
- {
- std::string q = question;
- if (maySave)
- q += _("(R)eject, accept (t)emporarily or accept (p)ermanently?");
- else
- q += _("(R)eject or accept (t)emporarily?");
-
- const char *answer = askQuestion(NULL, q.c_str(), true, false);
- if (*answer == 't' || *answer == 'T')
- return
- org_apache_subversion_javahl_callback_UserPasswordCallback_AcceptTemporary;
- else if (maySave && (*answer == 'p' || *answer == 'P'))
- return
- org_apache_subversion_javahl_callback_UserPasswordCallback_AcceptPermanently;
- else
- return org_apache_subversion_javahl_callback_UserPasswordCallback_Reject;
- }
- return -1;
+ env->PopLocalFrame(NULL);
+ return ret;
}
bool Prompter::prompt(const char *realm, const char *pi_username, bool maySave)
@@ -418,75 +324,40 @@ bool Prompter::prompt(const char *realm,
if (JNIUtil::isJavaExceptionThrown())
return false;
- if (m_version3)
+ static jmethodID mid = 0;
+ static jmethodID mid2 = 0;
+ if (mid == 0)
{
- static jmethodID mid = 0;
- static jmethodID mid2 = 0;
- if (mid == 0)
- {
- jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword3");
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN(false);
-
- mid = env->GetMethodID(clazz, "prompt",
- "(Ljava/lang/String;Ljava/lang/String;Z)Z");
- if (JNIUtil::isJavaExceptionThrown() || mid == 0)
- POP_AND_RETURN(false);
-
- mid2 = env->GetMethodID(clazz, "userAllowedSave", "()Z");
- if (JNIUtil::isJavaExceptionThrown() || mid == 0)
- POP_AND_RETURN(false);
- }
-
- jstring jrealm = JNIUtil::makeJString(realm);
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN(false);
-
- jstring jusername = JNIUtil::makeJString(pi_username);
+ jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword3");
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN(false);
- ret = env->CallBooleanMethod(m_prompter, mid, jrealm, jusername,
- maySave ? JNI_TRUE: JNI_FALSE);
- if (JNIUtil::isJavaExceptionThrown())
+ mid = env->GetMethodID(clazz, "prompt",
+ "(Ljava/lang/String;Ljava/lang/String;Z)Z");
+ if (JNIUtil::isJavaExceptionThrown() || mid == 0)
POP_AND_RETURN(false);
- m_maySave = env->CallBooleanMethod(m_prompter, mid2) ? true : false;
- if (JNIUtil::isJavaExceptionThrown())
+ mid2 = env->GetMethodID(clazz, "userAllowedSave", "()Z");
+ if (JNIUtil::isJavaExceptionThrown() || mid == 0)
POP_AND_RETURN(false);
}
- else
- {
- static jmethodID mid = 0;
- if (mid == 0)
- {
- jclass clazz = env->FindClass(JAVA_PACKAGE"/PromptUserPassword");
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN(false);
-
- mid = env->GetMethodID(clazz, "prompt",
- "(Ljava/lang/String;Ljava/lang/String;)Z");
- if (JNIUtil::isJavaExceptionThrown() || mid == 0)
- POP_AND_RETURN(false);
- }
- jstring jrealm = JNIUtil::makeJString(realm);
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN(false);
+ jstring jrealm = JNIUtil::makeJString(realm);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN(false);
- jstring jusername = JNIUtil::makeJString(pi_username);
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN(false);
+ jstring jusername = JNIUtil::makeJString(pi_username);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN(false);
- ret = env->CallBooleanMethod(m_prompter, mid, jrealm, jusername);
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN(false);
+ ret = env->CallBooleanMethod(m_prompter, mid, jrealm, jusername,
+ maySave ? JNI_TRUE: JNI_FALSE);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN(false);
- if (maySave)
- m_maySave = askYesNo(realm, _("May save the answer ?"), true);
- else
- m_maySave = false;
- }
+ m_maySave = env->CallBooleanMethod(m_prompter, mid2) ? true : false;
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN(false);
env->PopLocalFrame(NULL);
return ret ? true:false;
@@ -717,3 +588,37 @@ Prompter::ssl_client_cert_pw_prompt(svn_
*cred_p = ret;
return SVN_NO_ERROR;
}
+
+svn_error_t *
+Prompter::plaintext_prompt(svn_boolean_t *may_save_plaintext,
+ const char *realmstring,
+ void *baton,
+ apr_pool_t *pool)
+{
+ Prompter *that = (Prompter *) baton;
+
+ bool result = that->askYesNo(realmstring,
+ _("Store password unencrypted?"),
+ false);
+
+ *may_save_plaintext = (result ? TRUE : FALSE);
+
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
+Prompter::plaintext_passphrase_prompt(svn_boolean_t *may_save_plaintext,
+ const char *realmstring,
+ void *baton,
+ apr_pool_t *pool)
+{
+ Prompter *that = (Prompter *) baton;
+
+ bool result = that->askYesNo(realmstring,
+ _("Store passphrase unencrypted?"),
+ false);
+
+ *may_save_plaintext = (result ? TRUE : FALSE);
+
+ return SVN_NO_ERROR;
+}
Modified: subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.h
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.h?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.h (original)
+++ subversion/branches/atomic-revprop/subversion/bindings/javahl/native/Prompter.h Thu Sep 9 20:26:46 2010
@@ -46,16 +46,6 @@ class Prompter
jobject m_prompter;
/**
- * The callback objects implements PromptUserPassword2.
- */
- bool m_version2;
-
- /**
- * The callback objects implements PromptUserPassword3.
- */
- bool m_version3;
-
- /**
* Tntermediate storage for an answer.
*/
std::string m_answer;
@@ -66,7 +56,7 @@ class Prompter
*/
bool m_maySave;
- Prompter(jobject jprompter, bool v2, bool v3);
+ Prompter(jobject jprompter);
bool prompt(const char *realm, const char *pi_username, bool maySave);
bool askYesNo(const char *realm, const char *question, bool yesIsDefault);
const char *askQuestion(const char *realm, const char *question,
@@ -113,6 +103,16 @@ class Prompter
svn_auth_provider_object_t *getProviderServerSSLTrust();
svn_auth_provider_object_t *getProviderClientSSL();
svn_auth_provider_object_t *getProviderClientSSLPassword();
+
+ static svn_error_t *plaintext_prompt(svn_boolean_t *may_save_plaintext,
+ const char *realmstring,
+ void *baton,
+ apr_pool_t *pool);
+ static svn_error_t *plaintext_passphrase_prompt(
+ svn_boolean_t *may_save_plaintext,
+ const char *realmstring,
+ void *baton,
+ apr_pool_t *pool);
};
#endif // PROMPTER_H
Modified: subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.cpp?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.cpp (original)
+++ subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.cpp Thu Sep 9 20:26:46 2010
@@ -29,6 +29,7 @@
SVNBase::SVNBase()
{
+ jthis = NULL;
}
SVNBase::~SVNBase()
@@ -44,6 +45,7 @@ jlong SVNBase::findCppAddrForJObject(job
const char *className)
{
JNIEnv *env = JNIUtil::getEnv();
+
findCppAddrFieldID(fid, className, env);
if (*fid == 0)
{
@@ -52,7 +54,18 @@ jlong SVNBase::findCppAddrForJObject(job
else
{
jlong cppAddr = env->GetLongField(jthis, *fid);
- return (JNIUtil::isJavaExceptionThrown() ? 0 : cppAddr);
+ if (JNIUtil::isJavaExceptionThrown())
+ return 0;
+
+ /* jthis is not guaranteed to be the same between JNI invocations, so
+ we do a little dance here and store the updated version in our
+ object for this invocation.
+
+ findCppAddrForJObject() is, by necessity, called before any other
+ methods on the C++ object, so by doing this we can guarantee a valid
+ jthis pointer for subsequent uses. */
+ (reinterpret_cast<SVNBase *> (cppAddr))->jthis = jthis;
+ return cppAddr;
}
}
@@ -65,15 +78,17 @@ void SVNBase::finalize()
JNIUtil::enqueueForDeletion(this);
}
-void SVNBase::dispose(jobject jthis, jfieldID *fid, const char *className)
+void SVNBase::dispose(jfieldID *fid, const char *className)
{
+ jobject my_jthis = this->jthis;
+
delete this;
JNIEnv *env = JNIUtil::getEnv();
SVNBase::findCppAddrFieldID(fid, className, env);
if (*fid == 0)
return;
- env->SetLongField(jthis, *fid, 0);
+ env->SetLongField(my_jthis, *fid, 0);
if (JNIUtil::isJavaExceptionThrown())
return;
}
Modified: subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.h
URL: http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.h?rev=995566&r1=995565&r2=995566&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.h (original)
+++ subversion/branches/atomic-revprop/subversion/bindings/javahl/native/SVNBase.h Thu Sep 9 20:26:46 2010
@@ -48,7 +48,7 @@ class SVNBase
*
* @since 1.4.0
*/
- virtual void dispose(jobject jthis) = 0;
+ virtual void dispose() = 0;
/**
* This method should never be called, as @c dispose() should be
@@ -79,7 +79,13 @@ class SVNBase
*
* @since 1.4.0
*/
- void dispose(jobject jthis, jfieldID *fid, const char *className);
+ void dispose(jfieldID *fid, const char *className);
+
+ /**
+ * A pointer to the parent java object. This is not valid across JNI
+ * method invocations, and so should be set in each one.
+ */
+ jobject jthis;
private:
/**