You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2010/09/06 21:13:44 UTC
svn commit: r993127 [1/11] - in /subversion/branches/performance: ./ build/
build/generator/ notes/ notes/tree-conflicts/
subversion/bindings/javahl/native/
subversion/bindings/javahl/src/org/apache/subversion/javahl/
subversion/bindings/javahl/src/org...
Author: hwright
Date: Mon Sep 6 19:13:39 2010
New Revision: 993127
URL: http://svn.apache.org/viewvc?rev=993127&view=rev
Log:
On the performance branch:
Merge up to trunk@970000.
Added:
subversion/branches/performance/subversion/bindings/javahl/native/SVNRepos.cpp
- copied unchanged from r970000, subversion/trunk/subversion/bindings/javahl/native/SVNRepos.cpp
subversion/branches/performance/subversion/bindings/javahl/native/SVNRepos.h
- copied unchanged from r970000, subversion/trunk/subversion/bindings/javahl/native/SVNRepos.h
subversion/branches/performance/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp
- copied unchanged from r970000, subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNRepos.cpp
subversion/branches/performance/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
- copied unchanged from r970000, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
subversion/branches/performance/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java
- copied unchanged from r970000, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java
subversion/branches/performance/subversion/svnrdump/ (props changed)
- copied from r970000, subversion/trunk/subversion/svnrdump/
subversion/branches/performance/subversion/svnrdump/dump_editor.c
- copied unchanged from r970000, subversion/trunk/subversion/svnrdump/dump_editor.c
subversion/branches/performance/subversion/svnrdump/dump_editor.h
- copied unchanged from r970000, subversion/trunk/subversion/svnrdump/dump_editor.h
subversion/branches/performance/subversion/svnrdump/svnrdump.1
- copied unchanged from r970000, subversion/trunk/subversion/svnrdump/svnrdump.1
subversion/branches/performance/subversion/svnrdump/svnrdump.c
- copied unchanged from r970000, subversion/trunk/subversion/svnrdump/svnrdump.c
subversion/branches/performance/subversion/tests/cmdline/input_validation_tests.py
- copied unchanged from r970000, subversion/trunk/subversion/tests/cmdline/input_validation_tests.py
subversion/branches/performance/subversion/tests/cmdline/svnrdump_tests.py
- copied unchanged from r970000, subversion/trunk/subversion/tests/cmdline/svnrdump_tests.py
subversion/branches/performance/subversion/tests/libsvn_wc/create_wc_for_upgrade.sh
- copied unchanged from r970000, subversion/trunk/subversion/tests/libsvn_wc/create_wc_for_upgrade.sh
subversion/branches/performance/tools/dev/unix-build/README
- copied unchanged from r970000, subversion/trunk/tools/dev/unix-build/README
Removed:
subversion/branches/performance/subversion/bindings/javahl/native/SVNAdmin.cpp
subversion/branches/performance/subversion/bindings/javahl/native/SVNAdmin.h
subversion/branches/performance/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNAdmin.cpp
subversion/branches/performance/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNAdmin.java
subversion/branches/performance/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNAdmin.java
Modified:
subversion/branches/performance/ (props changed)
subversion/branches/performance/COMMITTERS
subversion/branches/performance/Makefile.in
subversion/branches/performance/build.conf
subversion/branches/performance/build/generator/gen_win.py
subversion/branches/performance/build/run_tests.py
subversion/branches/performance/configure.ac
subversion/branches/performance/gen-make.py
subversion/branches/performance/notes/dump-load-format.txt
subversion/branches/performance/notes/tree-conflicts/all-add-vs-add-tree-conflicts.txt
subversion/branches/performance/subversion/bindings/javahl/native/CreateJ.cpp
subversion/branches/performance/subversion/bindings/javahl/native/CreateJ.h
subversion/branches/performance/subversion/bindings/javahl/native/EnumMapper.cpp
subversion/branches/performance/subversion/bindings/javahl/native/EnumMapper.h
subversion/branches/performance/subversion/bindings/javahl/native/LogMessageCallback.cpp
subversion/branches/performance/subversion/bindings/javahl/native/MessageReceiver.cpp
subversion/branches/performance/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java
subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ChangePath.java
subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java
subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
subversion/branches/performance/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java
subversion/branches/performance/subversion/bindings/swig/ruby/test/test_client.rb
subversion/branches/performance/subversion/include/private/svn_file_handle_cache.h (props changed)
subversion/branches/performance/subversion/include/private/svn_opt_private.h
subversion/branches/performance/subversion/include/private/svn_temp_serializer.h (props changed)
subversion/branches/performance/subversion/include/private/svn_wc_private.h
subversion/branches/performance/subversion/include/svn_client.h
subversion/branches/performance/subversion/include/svn_diff.h
subversion/branches/performance/subversion/include/svn_error.h
subversion/branches/performance/subversion/include/svn_error_codes.h
subversion/branches/performance/subversion/include/svn_io.h
subversion/branches/performance/subversion/include/svn_props.h
subversion/branches/performance/subversion/include/svn_ra.h
subversion/branches/performance/subversion/include/svn_repos.h
subversion/branches/performance/subversion/include/svn_wc.h
subversion/branches/performance/subversion/libsvn_client/add.c
subversion/branches/performance/subversion/libsvn_client/changelist.c
subversion/branches/performance/subversion/libsvn_client/cleanup.c
subversion/branches/performance/subversion/libsvn_client/client.h
subversion/branches/performance/subversion/libsvn_client/cmdline.c
subversion/branches/performance/subversion/libsvn_client/commit.c
subversion/branches/performance/subversion/libsvn_client/commit_util.c
subversion/branches/performance/subversion/libsvn_client/copy.c
subversion/branches/performance/subversion/libsvn_client/delete.c
subversion/branches/performance/subversion/libsvn_client/deprecated.c
subversion/branches/performance/subversion/libsvn_client/diff.c
subversion/branches/performance/subversion/libsvn_client/export.c
subversion/branches/performance/subversion/libsvn_client/externals.c
subversion/branches/performance/subversion/libsvn_client/merge.c
subversion/branches/performance/subversion/libsvn_client/patch.c
subversion/branches/performance/subversion/libsvn_client/prop_commands.c
subversion/branches/performance/subversion/libsvn_client/repos_diff.c
subversion/branches/performance/subversion/libsvn_client/revert.c
subversion/branches/performance/subversion/libsvn_client/switch.c
subversion/branches/performance/subversion/libsvn_client/update.c
subversion/branches/performance/subversion/libsvn_diff/parse-diff.c
subversion/branches/performance/subversion/libsvn_fs_fs/fs_fs.c
subversion/branches/performance/subversion/libsvn_fs_fs/structure
subversion/branches/performance/subversion/libsvn_fs_fs/temp_serializer.c (props changed)
subversion/branches/performance/subversion/libsvn_fs_fs/temp_serializer.h (props changed)
subversion/branches/performance/subversion/libsvn_fs_util/caching.c (props changed)
subversion/branches/performance/subversion/libsvn_ra/compat.c
subversion/branches/performance/subversion/libsvn_ra_local/ra_plugin.c
subversion/branches/performance/subversion/libsvn_ra_neon/commit.c
subversion/branches/performance/subversion/libsvn_ra_serf/auth.c
subversion/branches/performance/subversion/libsvn_ra_serf/commit.c
subversion/branches/performance/subversion/libsvn_ra_serf/win32_auth_sspi.c
subversion/branches/performance/subversion/libsvn_ra_svn/client.c
subversion/branches/performance/subversion/libsvn_repos/dump.c
subversion/branches/performance/subversion/libsvn_repos/repos.c
subversion/branches/performance/subversion/libsvn_subr/config_win.c
subversion/branches/performance/subversion/libsvn_subr/deprecated.c
subversion/branches/performance/subversion/libsvn_subr/io.c
subversion/branches/performance/subversion/libsvn_subr/opt.c
subversion/branches/performance/subversion/libsvn_subr/sqlite.c
subversion/branches/performance/subversion/libsvn_subr/stream.c
subversion/branches/performance/subversion/libsvn_subr/subst.c
subversion/branches/performance/subversion/libsvn_subr/svn_file_handle_cache.c (props changed)
subversion/branches/performance/subversion/libsvn_subr/svn_temp_serializer.c (props changed)
subversion/branches/performance/subversion/libsvn_wc/adm_crawler.c
subversion/branches/performance/subversion/libsvn_wc/adm_files.c
subversion/branches/performance/subversion/libsvn_wc/adm_files.h
subversion/branches/performance/subversion/libsvn_wc/adm_ops.c
subversion/branches/performance/subversion/libsvn_wc/copy.c
subversion/branches/performance/subversion/libsvn_wc/deprecated.c
subversion/branches/performance/subversion/libsvn_wc/lock.c
subversion/branches/performance/subversion/libsvn_wc/log.c
subversion/branches/performance/subversion/libsvn_wc/log.h
subversion/branches/performance/subversion/libsvn_wc/merge.c
subversion/branches/performance/subversion/libsvn_wc/props.c
subversion/branches/performance/subversion/libsvn_wc/questions.c
subversion/branches/performance/subversion/libsvn_wc/status.c
subversion/branches/performance/subversion/libsvn_wc/translate.c
subversion/branches/performance/subversion/libsvn_wc/translate.h
subversion/branches/performance/subversion/libsvn_wc/update_editor.c
subversion/branches/performance/subversion/libsvn_wc/upgrade.c
subversion/branches/performance/subversion/libsvn_wc/wc-metadata.sql
subversion/branches/performance/subversion/libsvn_wc/wc-queries.sql
subversion/branches/performance/subversion/libsvn_wc/wc_db.c
subversion/branches/performance/subversion/libsvn_wc/wc_db.h
subversion/branches/performance/subversion/libsvn_wc/wc_db_pdh.c
subversion/branches/performance/subversion/libsvn_wc/wc_db_private.h
subversion/branches/performance/subversion/libsvn_wc/workqueue.c
subversion/branches/performance/subversion/libsvn_wc/workqueue.h
subversion/branches/performance/subversion/mod_dav_svn/repos.c
subversion/branches/performance/subversion/po/fr.po
subversion/branches/performance/subversion/svn/add-cmd.c
subversion/branches/performance/subversion/svn/changelist-cmd.c
subversion/branches/performance/subversion/svn/checkout-cmd.c
subversion/branches/performance/subversion/svn/cl.h
subversion/branches/performance/subversion/svn/cleanup-cmd.c
subversion/branches/performance/subversion/svn/commit-cmd.c
subversion/branches/performance/subversion/svn/copy-cmd.c
subversion/branches/performance/subversion/svn/delete-cmd.c
subversion/branches/performance/subversion/svn/export-cmd.c
subversion/branches/performance/subversion/svn/import-cmd.c
subversion/branches/performance/subversion/svn/info-cmd.c
subversion/branches/performance/subversion/svn/lock-cmd.c
subversion/branches/performance/subversion/svn/log-cmd.c
subversion/branches/performance/subversion/svn/main.c
subversion/branches/performance/subversion/svn/merge-cmd.c
subversion/branches/performance/subversion/svn/mkdir-cmd.c
subversion/branches/performance/subversion/svn/move-cmd.c
subversion/branches/performance/subversion/svn/notify.c
subversion/branches/performance/subversion/svn/patch-cmd.c
subversion/branches/performance/subversion/svn/propdel-cmd.c
subversion/branches/performance/subversion/svn/propedit-cmd.c
subversion/branches/performance/subversion/svn/propset-cmd.c
subversion/branches/performance/subversion/svn/resolve-cmd.c
subversion/branches/performance/subversion/svn/resolved-cmd.c
subversion/branches/performance/subversion/svn/revert-cmd.c
subversion/branches/performance/subversion/svn/status-cmd.c
subversion/branches/performance/subversion/svn/switch-cmd.c
subversion/branches/performance/subversion/svn/unlock-cmd.c
subversion/branches/performance/subversion/svn/update-cmd.c
subversion/branches/performance/subversion/svn/upgrade-cmd.c
subversion/branches/performance/subversion/svn/util.c
subversion/branches/performance/subversion/tests/cmdline/basic_tests.py
subversion/branches/performance/subversion/tests/cmdline/checkout_tests.py
subversion/branches/performance/subversion/tests/cmdline/commit_tests.py
subversion/branches/performance/subversion/tests/cmdline/copy_tests.py
subversion/branches/performance/subversion/tests/cmdline/entries-dump.c
subversion/branches/performance/subversion/tests/cmdline/export_tests.py
subversion/branches/performance/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
subversion/branches/performance/subversion/tests/cmdline/lock_tests.py
subversion/branches/performance/subversion/tests/cmdline/merge_reintegrate_tests.py
subversion/branches/performance/subversion/tests/cmdline/merge_tests.py
subversion/branches/performance/subversion/tests/cmdline/schedule_tests.py
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests.py
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/copy-and-modify.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/copy-bad-line-endings.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/copy-bad-line-endings.expected.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/copy-from-previous-version-and-modify.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/copy-from-previous-version.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/copy-parent-modify-prop.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/delete-svn-props.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/descend_into_replace.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/descend_into_replace.expected.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/dir_prop_change.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/file-dir-file.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/modified-in-place.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/no-author.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/repo_with_copy_of_root_dir.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/revprops.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/svnsync-move-and-modify.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-A-changes.expected.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/svnsync-trunk-only.expected.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/tag-empty-trunk.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-dir.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/tag-trunk-with-file2.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/tag-with-modified-file.dump
subversion/branches/performance/subversion/tests/cmdline/svnsync_tests_data/url-encoding-bug.dump
subversion/branches/performance/subversion/tests/cmdline/svntest/actions.py
subversion/branches/performance/subversion/tests/cmdline/svntest/factory.py
subversion/branches/performance/subversion/tests/cmdline/svntest/main.py
subversion/branches/performance/subversion/tests/cmdline/svntest/wc.py
subversion/branches/performance/subversion/tests/cmdline/switch_tests.py
subversion/branches/performance/subversion/tests/cmdline/trans_tests.py
subversion/branches/performance/subversion/tests/cmdline/update_tests.py
subversion/branches/performance/subversion/tests/libsvn_diff/parse-diff-test.c
subversion/branches/performance/subversion/tests/libsvn_wc/db-test.c
subversion/branches/performance/subversion/tests/libsvn_wc/entries-compat.c
subversion/branches/performance/subversion/tests/libsvn_wc/pristine-store-test.c
subversion/branches/performance/tools/buildbot/slaves/win32-SharpSvn/svntest-bindings.cmd
subversion/branches/performance/tools/buildbot/slaves/win32-SharpSvn/svntest-build-bindings.cmd
subversion/branches/performance/tools/client-side/svn-viewspec.py
subversion/branches/performance/tools/dev/unix-build/Makefile.svn
subversion/branches/performance/win-tests.py
Propchange: subversion/branches/performance/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Sep 6 19:13:39 2010
@@ -17,6 +17,7 @@ autogen-standalone.mk
autom4te.cache
gen-make.opts
tests.log
+fails.log
db4-win32
db
*.o
Propchange: subversion/branches/performance/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 6 19:13:39 2010
@@ -34,3 +34,4 @@
/subversion/branches/tc_url_rev:874351-874483
/subversion/branches/tree-conflicts:868291-873154
/subversion/branches/tree-conflicts-notify:873926-874008
+/subversion/trunk:962911-970000
Modified: subversion/branches/performance/COMMITTERS
URL: http://svn.apache.org/viewvc/subversion/branches/performance/COMMITTERS?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/COMMITTERS [UTF-8] (original)
+++ subversion/branches/performance/COMMITTERS [UTF-8] Mon Sep 6 19:13:39 2010
@@ -1,4 +1,4 @@
-The following people have commit access to the Subversion sources.
+The following people have commit access to the Subversion sources.
Note that this is not a full list of Subversion's authors, however --
for that, you'd need to look over the log messages to see all the
patch contributors.
@@ -29,7 +29,7 @@ Blanket commit access:
jaa Jani Averbach <ja...@iki.fi>
julianfoad Julian Foad <ju...@wandisco.com>
jszakmeister John Szakmeister <jo...@szakmeister.net>
- ehu Erik Hülsmann <e....@gmx.net>
+ ehu Erik Hülsmann <er...@wandisco.com>
breser Ben Reser <be...@reser.org>
maxb Max Bowsher <ma...@ukf.net>
dberlin Daniel Berlin <db...@dberlin.org>
@@ -143,6 +143,7 @@ Commit access for specific areas:
esr Eric S. Raymond <es...@thyrsus.com> (svncutter)
gmcdonald Gavin McDonald <ga...@16degrees.com.au> (build/hudson,
tools/buildbot)
+ artagnon Ramkumar Ramachandra <ar...@gmail.com> (svnrdump)
Translation of message files:
@@ -178,6 +179,7 @@ giorgio_valoti Giorgio Valoti <giorgio
cacknin Charles Acknin <ch...@gmail.com> (svnpatch-diff
br.)
holden Holden Karau <ho...@pigscanfly.ca> (scheme-bindings br.)
+ stefan2 Stefan Fuhrmann <st...@alice-dsl.de> (performance br.)
Subprojects that are complete, abandoned or have moved elsewhere:
Modified: subversion/branches/performance/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/performance/Makefile.in?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/Makefile.in (original)
+++ subversion/branches/performance/Makefile.in Mon Sep 6 19:13:39 2010
@@ -168,6 +168,8 @@ SVN_ZLIB_INCLUDES = @SVN_ZLIB_INCLUDES@
MKDIR = @MKDIR@
+DOXYGEN = @DOXYGEN@
+
# The EXTRA_ parameters can be used to pass extra flags at 'make' time.
CFLAGS = @CFLAGS@ $(EXTRA_CFLAGS)
CXXFLAGS = @CXXFLAGS@ $(EXTRA_CXXFLAGS)
@@ -534,7 +536,7 @@ check-clean:
subversion/tests/libsvn_wc/fake-wc \
subversion/tests/libsvn_client/test-patch* \
subversion/tests/svnserveautocheck.pid \
- tests.log
+ tests.log fails.log
mkdir-init:
@list='$(BUILD_DIRS) $(SCHEMA_DIR) doc'; \
@@ -599,7 +601,7 @@ doc: doc-api doc-javahl
doc-api: mkdir-init
( cd $(top_srcdir) && \
sed "s,\(OUTPUT_DIRECTORY *= *\),\1$(abs_builddir)/," \
- doc/doxygen.conf | doxygen - )
+ doc/doxygen.conf | $(DOXYGEN) - )
# Generate API documentation for the JavaHL package.
doc-javahl:
Modified: subversion/branches/performance/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/performance/build.conf?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/build.conf (original)
+++ subversion/branches/performance/build.conf Mon Sep 6 19:13:39 2010
@@ -54,7 +54,7 @@ private-built-includes =
subversion/bindings/javahl/include/org_apache_subversion_javahl_NativeResources.h
subversion/bindings/javahl/include/org_apache_subversion_javahl_Path.h
subversion/bindings/javahl/include/org_apache_subversion_javahl_Revision.h
- subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNAdmin.h
+ subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNRepos.h
subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNClient.h
subversion/bindings/javahl/include/org_apache_subversion_javahl_Version.h
subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_UserPasswordCallback.h
@@ -167,6 +167,14 @@ libs = libsvn_wc libsvn_subr apriconv ap
install = bin
manpages = subversion/svnversion/svnversion.1
+[svnrdump]
+description = Subversion remote repository dumper
+type = exe
+path = subversion/svnrdump
+libs = libsvn_client libsvn_ra libsvn_delta libsvn_subr apr
+install = bin
+manpages = subversion/svnrdump/svnrdump.1
+
# Support for GNOME Keyring
[libsvn_auth_gnome_keyring]
description = Subversion GNOME Keyring Library
@@ -1066,7 +1074,7 @@ libs = libsvn_fs_base libsvn_fs_fs
[__ALL__]
type = project
path = build/win32
-libs = svn svnserve svnadmin svnlook svnversion svndumpfilter
+libs = svn svnserve svnadmin svnlook svnversion svnrdump svndumpfilter
mod_authz_svn mod_dav_svn svnsync
[__ALL_TESTS__]
Modified: subversion/branches/performance/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/build/generator/gen_win.py?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/build/generator/gen_win.py (original)
+++ subversion/branches/performance/build/generator/gen_win.py Mon Sep 6 19:13:39 2010
@@ -34,6 +34,7 @@ import fnmatch
import re
import subprocess
import glob
+import string
import generator.swig.header_wrappers
import generator.swig.checkout_swig_header
import generator.swig.external_runtime
@@ -79,6 +80,7 @@ class GeneratorBase(gen_base.GeneratorBa
self.libintl_path = None
self.zlib_path = 'zlib'
self.openssl_path = None
+ self.jdk_path = None
self.junit_path = None
self.swig_path = None
self.vs_version = '2002'
@@ -126,6 +128,8 @@ class GeneratorBase(gen_base.GeneratorBa
elif opt == '--with-libintl':
self.libintl_path = val
self.enable_nls = 1
+ elif opt == '--with-jdk':
+ self.jdk_path = val
elif opt == '--with-junit':
self.junit_path = val
elif opt == '--with-zlib':
@@ -833,6 +837,11 @@ class WinGeneratorBase(GeneratorBase):
if isinstance(target, gen_base.TargetSWIG):
fakedefines.append("SWIG_GLOBAL")
+ # Expect rb_errinfo() to be avilable in Ruby 1.9+,
+ # rather than ruby_errinfo.
+ if (self.ruby_major_version > 1 or self.ruby_minor_version > 8):
+ fakedefines.extend(["HAVE_RB_ERRINFO"])
+
if cfg == 'Debug':
fakedefines.extend(["_DEBUG","SVN_DEBUG"])
elif cfg == 'Release':
@@ -1207,19 +1216,31 @@ class WinGeneratorBase(GeneratorBase):
"Find the right Ruby library name to link swig bindings with"
self.ruby_includes = []
self.ruby_libdir = None
+ self.ruby_version = None
+ self.ruby_major_version = None
+ self.ruby_minor_version = None
proc = os.popen('ruby -rrbconfig -e ' + escape_shell_arg(
+ "puts Config::CONFIG['ruby_version'];"
"puts Config::CONFIG['LIBRUBY'];"
"puts Config::CONFIG['archdir'];"
"puts Config::CONFIG['libdir'];"), 'r')
try:
- libruby = proc.readline()[:-1]
- if libruby:
- msg = 'Found installed ruby.'
- self.ruby_lib = libruby
- self.ruby_includes.append(proc.readline()[:-1])
- self.ruby_libdir = proc.readline()[:-1]
+ rubyver = proc.readline()[:-1]
+ if rubyver:
+ self.ruby_version = rubyver
+ self.ruby_major_version = string.atoi(self.ruby_version[0])
+ self.ruby_minor_version = string.atoi(self.ruby_version[2])
+ libruby = proc.readline()[:-1]
+ if libruby:
+ msg = 'Found installed ruby %s' % rubyver
+ self.ruby_lib = libruby
+ self.ruby_includes.append(proc.readline()[:-1])
+ self.ruby_libdir = proc.readline()[:-1]
else:
- msg = 'Could not detect Ruby version.'
+ msg = 'Could not detect Ruby version, assuming 1.8.'
+ self.ruby_version = "1.8"
+ self.ruby_major_version = 1
+ self.ruby_minor_version = 8
self.ruby_lib = 'msvcrt-ruby18.lib'
print('%s\n Ruby bindings will be linked with %s\n'
% (msg, self.ruby_lib))
@@ -1242,39 +1263,41 @@ class WinGeneratorBase(GeneratorBase):
pass
def _find_jdk(self):
- self.jdk_path = None
- jdk_ver = None
- try:
+ if not self.jdk_path:
+ jdk_ver = None
try:
- # Python >=3.0
- import winreg
- except ImportError:
- # Python <3.0
- import _winreg as winreg
- key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,
+ try:
+ # Python >=3.0
+ import winreg
+ except ImportError:
+ # Python <3.0
+ import _winreg as winreg
+ key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,
r"SOFTWARE\JavaSoft\Java Development Kit")
- # Find the newest JDK version.
- num_values = winreg.QueryInfoKey(key)[1]
- for i in range(num_values):
- (name, value, key_type) = winreg.EnumValue(key, i)
- if name == "CurrentVersion":
- jdk_ver = value
- break
-
- # Find the JDK path.
- if jdk_ver is not None:
- key = winreg.OpenKey(key, jdk_ver)
+ # Find the newest JDK version.
num_values = winreg.QueryInfoKey(key)[1]
for i in range(num_values):
(name, value, key_type) = winreg.EnumValue(key, i)
- if name == "JavaHome":
- self.jdk_path = value
+ if name == "CurrentVersion":
+ jdk_ver = value
break
- winreg.CloseKey(key)
- except (ImportError, EnvironmentError):
- pass
- if self.jdk_path:
- print("Found JDK version %s in %s\n" % (jdk_ver, self.jdk_path))
+
+ # Find the JDK path.
+ if jdk_ver is not None:
+ key = winreg.OpenKey(key, jdk_ver)
+ num_values = winreg.QueryInfoKey(key)[1]
+ for i in range(num_values):
+ (name, value, key_type) = winreg.EnumValue(key, i)
+ if name == "JavaHome":
+ self.jdk_path = value
+ break
+ winreg.CloseKey(key)
+ except (ImportError, EnvironmentError):
+ pass
+ if self.jdk_path:
+ print("Found JDK version %s in %s\n" % (jdk_ver, self.jdk_path))
+ else:
+ print("Using JDK in %s\n" % (self.jdk_path))
def _find_swig(self):
# Require 1.3.24. If not found, assume 1.3.25.
Modified: subversion/branches/performance/build/run_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/build/run_tests.py?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/build/run_tests.py (original)
+++ subversion/branches/performance/build/run_tests.py Mon Sep 6 19:13:39 2010
@@ -44,7 +44,7 @@ separated list of test numbers; the defa
# A few useful constants
LINE_LENGTH = 40
-import os, sys, subprocess
+import os, re, subprocess, sys
from datetime import datetime
import getopt
@@ -70,7 +70,7 @@ class TestHarness:
'''Test harness for Subversion tests.
'''
- def __init__(self, abs_srcdir, abs_builddir, logfile,
+ def __init__(self, abs_srcdir, abs_builddir, logfile, faillogfile,
base_url=None, fs_type=None, http_library=None,
server_minor_version=None, verbose=None,
cleanup=None, enable_sasl=None, parallel=None, config_file=None,
@@ -91,6 +91,7 @@ class TestHarness:
self.srcdir = abs_srcdir
self.builddir = abs_builddir
self.logfile = logfile
+ self.faillogfile = faillogfile
self.base_url = base_url
self.fs_type = fs_type
self.http_library = http_library
@@ -200,6 +201,27 @@ class TestHarness:
print(' %d test%s FAILED'
% (len(failed_list), 's'*min(len(failed_list) - 1, 1)))
+ # Copy the truly interesting verbose logs to a separate file, for easier
+ # viewing.
+ if xpassed or failed_list:
+ faillog = open(self.faillogfile, 'wb')
+ last_start_lineno = None
+ last_start_re = re.compile('^(FAIL|SKIP|XFAIL|PASS|START|CLEANUP|END):')
+ for lineno, line in enumerate(log_lines):
+ # Iterate the lines. If it ends a test we're interested in, dump that
+ # test to FAILLOG. If it starts a test (at all), remember the line
+ # number (in case we need it later).
+ if line in xpassed or line in failed_list:
+ faillog.write('[[[\n')
+ faillog.writelines(log_lines[last_start_lineno : lineno+1])
+ faillog.write(']]]\n\n')
+ if last_start_re.match(line):
+ last_start_lineno = lineno + 1
+ faillog.close()
+ elif os.path.exists(self.faillogfile):
+ print("WARNING: no failures, but '%s' exists from a previous run."
+ % self.faillogfile)
+
self._close_log()
return failed
@@ -380,10 +402,12 @@ def main():
if log_to_stdout:
logfile = None
+ faillogfile = None
else:
logfile = os.path.abspath('tests.log')
+ faillogfile = os.path.abspath('fails.log')
- th = TestHarness(args[0], args[1], logfile,
+ th = TestHarness(args[0], args[1], logfile, faillogfile,
base_url, fs_type, http_library, server_minor_version,
verbose, cleanup, enable_sasl, parallel, config_file,
fsfs_sharding, fsfs_packing)
Modified: subversion/branches/performance/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/performance/configure.ac?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/configure.ac (original)
+++ subversion/branches/performance/configure.ac Mon Sep 6 19:13:39 2010
@@ -332,6 +332,21 @@ else
AC_SUBST(TRANG)
fi
+dnl Check for doxygen
+doxygen=yes
+AC_ARG_WITH(doxygen,
+AC_HELP_STRING([--with-doxygen=PATH],
+ [Specify the command to run doxygen]),
+[
+ doxygen="$withval"
+])
+if test "$doxygen" = "yes"; then
+ AC_PATH_PROG(DOXYGEN, doxygen, none)
+else
+ DOXYGEN="$doxygen"
+ AC_SUBST(DOXYGEN)
+fi
+
dnl Check for libraries --------------------
Modified: subversion/branches/performance/gen-make.py
URL: http://svn.apache.org/viewvc/subversion/branches/performance/gen-make.py?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/gen-make.py (original)
+++ subversion/branches/performance/gen-make.py Mon Sep 6 19:13:39 2010
@@ -167,6 +167,9 @@ def _usage_exit():
print(" tell neon to look for ZLib headers and")
print(" libs in DIR")
print("")
+ print(" --with-jdk=DIR")
+ print(" look for the java development kit here")
+ print("")
print(" --with-junit=DIR")
print(" look for the junit jar here")
print(" junit is for testing the java bindings")
@@ -241,6 +244,7 @@ if __name__ == '__main__':
'with-libintl=',
'with-openssl=',
'with-zlib=',
+ 'with-jdk=',
'with-junit=',
'with-swig=',
'with-sqlite=',
Modified: subversion/branches/performance/notes/dump-load-format.txt
URL: http://svn.apache.org/viewvc/subversion/branches/performance/notes/dump-load-format.txt?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/notes/dump-load-format.txt (original)
+++ subversion/branches/performance/notes/dump-load-format.txt Mon Sep 6 19:13:39 2010
@@ -23,6 +23,8 @@ following:
[Text-delta-base-sha1: blob]
[Text-copy-source-sha1: blob]
[Text-content-sha1: blob]
+[Prop-content-md5: (<property name>) blob]
+[Prop-content-sha1: (<property name>) blob]
The default value for the boolean headers is "false". If the value is
set to "true", then the text and property contents will be treated
@@ -51,6 +53,9 @@ currently used by the loader. They are
Subversion so that future loaders can optionally choose which checksum to
use for checking for corruption.
+Prop-content-md5 and Prop-content-sha1 are written by 1.7-and-later versions,
+and can optionally be used to verify property content upon loading.
+
===== SVN DUMPFILE VERSION 2 FORMAT =====
(generated by SVN versions 0.18.0-present, by default)
Modified: subversion/branches/performance/notes/tree-conflicts/all-add-vs-add-tree-conflicts.txt
URL: http://svn.apache.org/viewvc/subversion/branches/performance/notes/tree-conflicts/all-add-vs-add-tree-conflicts.txt?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/notes/tree-conflicts/all-add-vs-add-tree-conflicts.txt (original)
+++ subversion/branches/performance/notes/tree-conflicts/all-add-vs-add-tree-conflicts.txt Mon Sep 6 19:13:39 2010
@@ -1,6 +1,6 @@
This file describes handling of all add-vs.-add tree conflict situations
-on 2010-jul-01. Maybe someone will update it and put another date here some
-day, maybe not.
+on 2010-jul-20 (previously 2010-jul-01, r959735). Maybe someone will update it
+and put another date here some day, maybe not.
Add-vs.-add tree conflicts handling introduces a new meaning for
svn_wc__db_status_not_present. Apart from the usual "node deleted and
@@ -23,34 +23,32 @@ all add-vs.-add | incoming ADD of a
tree conflict | file | symlink | dir (2) | file | symlink | dir (2) |
situations |co up sw |co up sw |co up sw |co up sw |co up sw |co up sw |
------------------+---------+---------+---------+---------+---------+---------+
-locally file |?C*?C*?C*|?C*?C*?C*|:( :( :( |?C*?C*?C*|?C*?C*?C*|:( :( :( |
-UNVER- symlink |?C*?C*?C*|?C*?C*?C*|:( :( :( |?C*?C*?C*|?C*?C*?C*|:( :( :( |
-SIONED dir |?C*?C*?C*|?C*?C*?C*|:( :( :( |?C*?C*?C*|?C*?C*?C*|:( :( :( |
+locally file |?C*?C*?C*|?C*?C*?C*|?C+?C+?C+|?C*?C*?C*|?C*?C*?C*|?C+?C+?C+|
+UNVER- symlink |?C*?C*?C*|?C*?C*?C*|?C+?C+?C+|?C*?C*?C*|?C*?C*?C*|?C+?C+?C+|
+SIONED dir |?C*?C*?C*|?C*?C*?C*|?C+?C+?C+|?C*?C*?C*|?C*?C*?C*|?C+?C+?C+|
------------------+---------+---------+---------+---------+---------+---------+
locally file |Ex Ex RC*|RC*RC*RC*|:( :( :( |Ex RC*RC*|RC*RC*RC*|:( :( :( |
ADDED symlink |RC*RC*RC*|Ex Ex RC*|:( :( :( |RC*RC*RC*|Ex RC*RC*|:( :( :( |
- (3) dir |:( :( :( |:( :( :( |Ex Ex Ex |:( :( :( |:( :( :( |Ex Ex Ex |
+ (2) dir |:( :( :( |:( :( :( |Ex Ex Ex |:( :( :( |:( :( :( |Ex Ex Ex |
------------------+---------+---------+---------+---------+---------+---------+
DIFFERENT file |RC*RC*RC*|RC*RC*RC*|:( :( :( |RC*RC*RC*|RC*RC*RC*|:( :( :( |
COPY symlink |RC*RC*RC*|RC*RC*RC*|:( :( :( |RC*RC*RC*|RC*RC*RC*|:( :( :( |
-of a (3) dir |:( :( :( |:( :( :( |AC AC AC |:( :( :( |:( :( :( |AC AC AC |
+of a (2) dir |:( :( :( |:( :( :( |AC AC AC |:( :( :( |:( :( :( |AC AC AC |
------------------+---------+---------+---------+---------+---------+---------+
IDENTICAL file | |RC*Ex*RC*| | |
COPY of symlink | (see above) | |RC*Ex*RC*| |
-a (1) (3) dir | | | |AC AC AC |
+a (1) (2) dir | | | |AC AC AC |
-"*" The cases most recently changed are marked with a * on their right.
+"*" The cases changed in r959735 marked with a * on their right.
+"+" The cases most recently changed are marked with a + on their right.
(1) Where both local and incoming are copies and both copies are from the
exact same copyfrom URL@REV, the node kinds must also match. The colums
against incoming simple-add are identical to "different copy" and omitted.
-(2) Since this patch only modifies add_file() and close_file() for starters,
-these columns are not affected by this patch.
-
-(3) Since we can only deal with replace-by-different-kind properly after we
-moved to single-db, these rows are not affected by this patch.
+(2) Since we can only deal with replace-by-different-kind properly after we
+moved to single-db, some of these rows/columns are still ':(' or 'AC'.
In the table above, each cell shows three letter pairs for,
@@ -91,7 +89,7 @@ The letter pairs are:
So "Ex Ex RC*" would mean:
"During checkout and update, the local add is merged with the incoming add.
During switch, an easily resolvable tree conflict is flagged.
- This patch only changes the 'switch' behavior."
+ r959735 only changes the 'switch' behavior."
A note on checkout: It *is* possible to checkout a URL onto a working copy of
the same URL, which can have local adds scheduled. Then, checkout presumably
Modified: subversion/branches/performance/subversion/bindings/javahl/native/CreateJ.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/native/CreateJ.cpp?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/branches/performance/subversion/bindings/javahl/native/CreateJ.cpp Mon Sep 6 19:13:39 2010
@@ -349,6 +349,62 @@ CreateJ::Lock(const svn_lock_t *lock)
}
jobject
+CreateJ::ChangedPath(const char *path, svn_log_changed_path2_t *log_item)
+{
+ JNIEnv *env = JNIUtil::getEnv();
+
+ // Create a local frame for our references
+ env->PushLocalFrame(LOCAL_FRAME_SIZE);
+ if (JNIUtil::isJavaExceptionThrown())
+ return NULL;
+
+ jclass clazzCP = env->FindClass(JAVA_PACKAGE"/ChangePath");
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN(SVN_NO_ERROR);
+
+ static jmethodID midCP = 0;
+ if (midCP == 0)
+ {
+ midCP = env->GetMethodID(clazzCP,
+ "<init>",
+ "(Ljava/lang/String;JLjava/lang/String;"
+ "L"JAVA_PACKAGE"/ChangePath$Action;"
+ "L"JAVA_PACKAGE"/NodeKind;"
+ "L"JAVA_PACKAGE"/Tristate;"
+ "L"JAVA_PACKAGE"/Tristate;)V");
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN(SVN_NO_ERROR);
+ }
+
+ jstring jpath = JNIUtil::makeJString(path);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jstring jcopyFromPath = JNIUtil::makeJString(log_item->copyfrom_path);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jobject jaction = EnumMapper::mapChangePathAction(log_item->action);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jobject jnodeKind = EnumMapper::mapNodeKind(log_item->node_kind);
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ jlong jcopyFromRev = log_item->copyfrom_rev;
+
+ jobject jcp = env->NewObject(clazzCP, midCP, jpath, jcopyFromRev,
+ jcopyFromPath, jaction, jnodeKind,
+ EnumMapper::mapTristate(log_item->text_modified),
+ EnumMapper::mapTristate(log_item->props_modified));
+ if (JNIUtil::isJavaExceptionThrown())
+ POP_AND_RETURN_NULL;
+
+ return env->PopLocalFrame(jcp);
+}
+
+jobject
CreateJ::Status(svn_wc_context_t *wc_ctx, const char *local_abspath,
const svn_client_status_t *status, apr_pool_t *pool)
{
Modified: subversion/branches/performance/subversion/bindings/javahl/native/CreateJ.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/native/CreateJ.h?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/native/CreateJ.h (original)
+++ subversion/branches/performance/subversion/bindings/javahl/native/CreateJ.h Mon Sep 6 19:13:39 2010
@@ -52,6 +52,9 @@ class CreateJ
Lock(const svn_lock_t *lock);
static jobject
+ ChangedPath(const char *path, svn_log_changed_path2_t *log_item);
+
+ static jobject
Status(svn_wc_context_t *wc_ctx, const char *local_abspath,
const svn_client_status_t *status, apr_pool_t *pool);
Modified: subversion/branches/performance/subversion/bindings/javahl/native/EnumMapper.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/native/EnumMapper.cpp?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/native/EnumMapper.cpp (original)
+++ subversion/branches/performance/subversion/bindings/javahl/native/EnumMapper.cpp Mon Sep 6 19:13:39 2010
@@ -58,6 +58,23 @@ jint EnumMapper::mapCommitMessageStateFl
return jstateFlags;
}
+jobject EnumMapper::mapChangePathAction(const char action)
+{
+ switch (action)
+ {
+ case 'A':
+ return mapEnum(JAVA_PACKAGE"/ChangePath$Action", 0);
+ case 'D':
+ return mapEnum(JAVA_PACKAGE"/ChangePath$Action", 1);
+ case 'R':
+ return mapEnum(JAVA_PACKAGE"/ChangePath$Action", 2);
+ case 'M':
+ return mapEnum(JAVA_PACKAGE"/ChangePath$Action", 3);
+ default:
+ return NULL;
+ }
+}
+
/**
* Map a C notify state constant to the Java constant.
*/
Modified: subversion/branches/performance/subversion/bindings/javahl/native/EnumMapper.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/native/EnumMapper.h?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/native/EnumMapper.h (original)
+++ subversion/branches/performance/subversion/bindings/javahl/native/EnumMapper.h Mon Sep 6 19:13:39 2010
@@ -51,6 +51,7 @@ class EnumMapper
/* Converting from C enum's */
static jint mapCommitMessageStateFlags(apr_byte_t flags);
+ static jobject mapChangePathAction(const char action);
static jobject mapNotifyState(svn_wc_notify_state_t state);
static jobject mapNotifyAction(svn_wc_notify_action_t action);
static jobject mapReposNotifyNodeAction(svn_node_action action);
Modified: subversion/branches/performance/subversion/bindings/javahl/native/LogMessageCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/native/LogMessageCallback.cpp?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/native/LogMessageCallback.cpp (original)
+++ subversion/branches/performance/subversion/bindings/javahl/native/LogMessageCallback.cpp Mon Sep 6 19:13:39 2010
@@ -91,23 +91,6 @@ LogMessageCallback::singleMessage(svn_lo
POP_AND_RETURN(SVN_NO_ERROR);
}
- jclass clazzCP = env->FindClass(JAVA_PACKAGE"/ChangePath");
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN(SVN_NO_ERROR);
-
- static jmethodID midCP = 0;
- if (midCP == 0)
- {
- midCP = env->GetMethodID(clazzCP,
- "<init>",
- "(Ljava/lang/String;JLjava/lang/String;C"
- "L"JAVA_PACKAGE"/NodeKind;"
- "L"JAVA_PACKAGE"/Tristate;"
- "L"JAVA_PACKAGE"/Tristate;)V");
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN(SVN_NO_ERROR);
- }
-
jobject jChangedPaths = NULL;
if (log_entry->changed_paths)
{
@@ -122,33 +105,9 @@ LogMessageCallback::singleMessage(svn_lo
svn_log_changed_path2_t *log_item =
(svn_log_changed_path2_t *) svn__apr_hash_index_val(hi);
- jstring jpath = JNIUtil::makeJString(path);
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN(SVN_NO_ERROR);
-
- jstring jcopyFromPath = JNIUtil::makeJString(log_item->copyfrom_path);
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN(SVN_NO_ERROR);
-
- jobject jnodeKind = EnumMapper::mapNodeKind(log_item->node_kind);
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN(SVN_NO_ERROR);
-
- jlong jcopyFromRev = log_item->copyfrom_rev;
- jchar jaction = log_item->action;
-
- jobject cp = env->NewObject(clazzCP, midCP, jpath, jcopyFromRev,
- jcopyFromPath, jaction, jnodeKind,
- EnumMapper::mapTristate(log_item->text_modified),
- EnumMapper::mapTristate(log_item->props_modified));
- if (JNIUtil::isJavaExceptionThrown())
- POP_AND_RETURN(SVN_NO_ERROR);
+ jobject cp = CreateJ::ChangedPath(path, log_item);
jcps.push_back(cp);
-
- env->DeleteLocalRef(jnodeKind);
- env->DeleteLocalRef(jpath);
- env->DeleteLocalRef(jcopyFromPath);
}
jChangedPaths = CreateJ::Set(jcps);
Modified: subversion/branches/performance/subversion/bindings/javahl/native/MessageReceiver.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/native/MessageReceiver.cpp?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/native/MessageReceiver.cpp (original)
+++ subversion/branches/performance/subversion/bindings/javahl/native/MessageReceiver.cpp Mon Sep 6 19:13:39 2010
@@ -58,7 +58,7 @@ void MessageReceiver::receiveMessage(con
static jmethodID mid = 0;
if (mid == 0)
{
- jclass clazz = env->FindClass(JAVA_PACKAGE"/SVNAdmin$MessageReceiver");
+ jclass clazz = env->FindClass(JAVA_PACKAGE"/ISVNAdmin$MessageReceiver");
if (JNIUtil::isJavaExceptionThrown())
return;
Modified: subversion/branches/performance/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java (original)
+++ subversion/branches/performance/subversion/bindings/javahl/src/org/apache/subversion/javahl/ChangePath.java Mon Sep 6 19:13:39 2010
@@ -43,7 +43,7 @@ public class ChangePath implements java.
* @param nodeKind the kind of the changed path
*/
public ChangePath(String path, long copySrcRevision, String copySrcPath,
- char action, NodeKind nodeKind, Tristate textMods,
+ Action action, NodeKind nodeKind, Tristate textMods,
Tristate propMods)
{
this.path = path;
@@ -65,7 +65,7 @@ public class ChangePath implements java.
private String copySrcPath;
/** 'A'dd, 'D'elete, 'R'eplace, 'M'odify */
- private char action;
+ private Action action;
/** The kind of the changed path. */
private NodeKind nodeKind;
@@ -107,7 +107,7 @@ public class ChangePath implements java.
* Retrieve action performed
* @return action performed
*/
- public char getAction()
+ public Action getAction()
{
return action;
}
@@ -138,4 +138,22 @@ public class ChangePath implements java.
{
return propMods;
}
+
+ /**
+ * Actions which may have occurred to this path.
+ */
+ public enum Action
+ {
+ /** Path was added. */
+ add,
+
+ /** Path was deleted. */
+ delete,
+
+ /** Path was replaced. */
+ replace,
+
+ /** Path was modified. */
+ modify;
+ }
}
Modified: subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ChangePath.java
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ChangePath.java?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ChangePath.java (original)
+++ subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/ChangePath.java Mon Sep 6 19:13:39 2010
@@ -58,7 +58,12 @@ public class ChangePath implements java.
public ChangePath(org.apache.subversion.javahl.ChangePath aChangePath)
{
this(aChangePath.getPath(), aChangePath.getCopySrcRevision(),
- aChangePath.getCopySrcPath(), aChangePath.getAction(),
+ aChangePath.getCopySrcPath(),
+ ((aChangePath.getAction() == org.apache.subversion.javahl.ChangePath.Action.add) ? 'A' :
+ ((aChangePath.getAction() == org.apache.subversion.javahl.ChangePath.Action.delete) ? 'D' :
+ ((aChangePath.getAction() == org.apache.subversion.javahl.ChangePath.Action.replace) ? 'R' :
+ ((aChangePath.getAction() == org.apache.subversion.javahl.ChangePath.Action.modify) ? 'M' :
+ ' ')))),
NodeKind.fromApache(aChangePath.getNodeKind()));
}
Modified: subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java (original)
+++ subversion/branches/performance/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java Mon Sep 6 19:13:39 2010
@@ -35,14 +35,14 @@ import java.io.IOException;
*/
public class SVNAdmin
{
- private org.apache.subversion.javahl.SVNAdmin aSVNAdmin;
+ private org.apache.subversion.javahl.SVNRepos aSVNAdmin;
/**
* Standard empty contructor, builds just the native peer.
*/
public SVNAdmin()
{
- aSVNAdmin = new org.apache.subversion.javahl.SVNAdmin();
+ aSVNAdmin = new org.apache.subversion.javahl.SVNRepos();
cppAddr = aSVNAdmin.getCppAddr();
}
@@ -244,7 +244,7 @@ public class SVNAdmin
* interface to receive the messages
*/
public static interface MessageReceiver
- extends org.apache.subversion.javahl.SVNAdmin.MessageReceiver
+ extends org.apache.subversion.javahl.ISVNRepos.MessageReceiver
{
}
Modified: subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Mon Sep 6 19:13:39 2010
@@ -2079,7 +2079,8 @@ public class BasicTests extends SVNTests
assertEquals("wrong copy source rev", -1,
changedApath.getCopySrcRevision());
assertNull("wrong copy source path", changedApath.getCopySrcPath());
- assertEquals("wrong action", 'A', changedApath.getAction());
+ assertEquals("wrong action", ChangePath.Action.add,
+ changedApath.getAction());
assertEquals("wrong time with getTimeMicros()",
lm[0].getTimeMicros()/1000,
lm[0].getDate().getTime());
@@ -2855,7 +2856,10 @@ public class BasicTests extends SVNTests
String aPath = fileToSVNPath(new File(thisTest.getWCPath() + "/A"),
false);
- expectedDiffOutput = NL + "Property changes on: A" + NL +
+ expectedDiffOutput = "Index: A" + NL + sepLine +
+ "--- A\t(revision 1)" + NL +
+ "+++ A\t(working copy)" + NL +
+ NL + "Property changes on: A" + NL +
underSepLine +
"Added: testprop" + NL +
"## -0,0 +1 ##" + NL +
@@ -2871,7 +2875,10 @@ public class BasicTests extends SVNTests
expectedDiffOutput, diffOutput);
// Test diff where relativeToDir and path are the same.
- expectedDiffOutput = NL + "Property changes on: ." + NL +
+ expectedDiffOutput = "Index: ." + NL + sepLine +
+ "--- .\t(revision 1)" + NL +
+ "+++ .\t(working copy)" + NL +
+ NL + "Property changes on: ." + NL +
underSepLine +
"Added: testprop" + NL +
"## -0,0 +1 ##" + NL +
@@ -3244,6 +3251,11 @@ public class BasicTests extends SVNTests
* @throws IOException
* @throws SubversionException
*/
+ /*
+ This is currently commented out, because we don't have an XFail method
+ for JavaHL. The resolution is pending the result of issue #3680:
+ http://subversion.tigris.org/issues/show_bug.cgi?id=3680
+
public void testObstructionTolerance()
throws SubversionException, IOException
{
@@ -3400,7 +3412,7 @@ public class BasicTests extends SVNTests
backupTest.getWc().getItemContent("A/D/H/omega"));
backupTest.checkStatus();
- }
+ }*/
/**
* Test basic blame functionality. This test marginally tests blame
Modified: subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java (original)
+++ subversion/branches/performance/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java Mon Sep 6 19:13:39 2010
@@ -47,7 +47,7 @@ class SVNTests extends TestCase
* our admin object, mostly used for creating,dumping and loading
* repositories
*/
- protected ISVNAdmin admin;
+ protected ISVNRepos admin;
/**
* the subversion client, what we want to test.
@@ -201,11 +201,11 @@ class SVNTests extends TestCase
if (this.fsType == null)
{
this.fsType =
- System.getProperty("test.fstype", ISVNAdmin.FSFS).toLowerCase();
- if (!(ISVNAdmin.FSFS.equals(this.fsType) ||
- ISVNAdmin.BDB.equals(this.fsType)))
+ System.getProperty("test.fstype", ISVNRepos.FSFS).toLowerCase();
+ if (!(ISVNRepos.FSFS.equals(this.fsType) ||
+ ISVNRepos.BDB.equals(this.fsType)))
{
- this.fsType = ISVNAdmin.FSFS;
+ this.fsType = ISVNRepos.FSFS;
}
}
@@ -226,7 +226,7 @@ class SVNTests extends TestCase
createDirectories();
// create and configure the needed subversion objects
- admin = new SVNAdmin();
+ admin = new SVNRepos();
initClient();
// build and dump the sample repository
Modified: subversion/branches/performance/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/performance/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java Mon Sep 6 19:13:39 2010
@@ -2738,7 +2738,10 @@ public class BasicTests extends SVNTests
String aPath = fileToSVNPath(new File(thisTest.getWCPath() + "/A"),
false);
- expectedDiffOutput = NL + "Property changes on: A" + NL +
+ expectedDiffOutput = "Index: A" + NL + sepLine +
+ "--- A\t(revision 1)" + NL +
+ "+++ A\t(working copy)" + NL +
+ NL + "Property changes on: A" + NL +
underSepLine +
"Added: testprop" + NL +
"## -0,0 +1 ##" + NL +
@@ -2753,7 +2756,10 @@ public class BasicTests extends SVNTests
expectedDiffOutput, diffOutput);
// Test diff where relativeToDir and path are the same.
- expectedDiffOutput = NL + "Property changes on: ." + NL +
+ expectedDiffOutput = "Index: ." + NL + sepLine +
+ "--- .\t(revision 1)" + NL +
+ "+++ .\t(working copy)" + NL +
+ NL + "Property changes on: ." + NL +
underSepLine +
"Added: testprop" + NL +
"## -0,0 +1 ##" + NL +
@@ -3114,6 +3120,10 @@ public class BasicTests extends SVNTests
* @throws IOException
* @throws SubversionException
*/
+ /*
+ This is currently commented out, because we don't have an XFail method
+ for JavaHL. The resolution is pending the result of issue #3680:
+ http://subversion.tigris.org/issues/show_bug.cgi?id=3680
public void testObstructionTolerance()
throws SubversionException, IOException
{
@@ -3262,7 +3272,7 @@ public class BasicTests extends SVNTests
backupTest.getWc().getItemContent("A/D/H/omega"));
backupTest.checkStatus();
- }
+ }*/
/**
* Test basic blame functionality. This test marginally tests blame
Modified: subversion/branches/performance/subversion/bindings/swig/ruby/test/test_client.rb
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/bindings/swig/ruby/test/test_client.rb?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/bindings/swig/ruby/test/test_client.rb (original)
+++ subversion/branches/performance/subversion/bindings/swig/ruby/test/test_client.rb Mon Sep 6 19:13:39 2010
@@ -1079,6 +1079,12 @@ class SvnClientTest < Test::Unit::TestCa
end
end
+=begin
+ We haven't yet figured out what to expect in the case of an obstruction,
+ but it is no longer an error. Commenting out this test until that
+ decision is made (see issue #3680:
+ http://subversion.tigris.org/issues/show_bug.cgi?id=3680)
+
def test_cleanup
log = "sample log"
file = "sample.txt"
@@ -1124,6 +1130,7 @@ class SvnClientTest < Test::Unit::TestCa
end
end
end
+=end
def test_relocate
log = "sample log"
Propchange: subversion/branches/performance/subversion/include/private/svn_file_handle_cache.h
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 6 19:13:39 2010
@@ -0,0 +1 @@
+/subversion/trunk/subversion/include/private/svn_file_handle_cache.h:962911-970000
Modified: subversion/branches/performance/subversion/include/private/svn_opt_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/include/private/svn_opt_private.h?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/include/private/svn_opt_private.h (original)
+++ subversion/branches/performance/subversion/include/private/svn_opt_private.h Mon Sep 6 19:13:39 2010
@@ -66,7 +66,6 @@ svn_opt__split_arg_at_peg_revision(const
/* Attempt to transform URL_IN, which is a URL-like user input, into a
* valid URL:
* - escape IRI characters and some other non-URI characters
- * - check that only valid URI characters remain
* - check that no back-path ("..") components are present
* - canonicalize the separator ("/") characters
* URL_IN is in UTF-8 encoding and has no peg revision specifier.
Propchange: subversion/branches/performance/subversion/include/private/svn_temp_serializer.h
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 6 19:13:39 2010
@@ -0,0 +1 @@
+/subversion/trunk/subversion/include/private/svn_temp_serializer.h:962911-970000
Modified: subversion/branches/performance/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/include/private/svn_wc_private.h?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/performance/subversion/include/private/svn_wc_private.h Mon Sep 6 19:13:39 2010
@@ -626,25 +626,26 @@ svn_wc__node_get_info_bits(apr_time_t *t
/**
- * Recursively acquire write locks for @a local_abspath if
- * @a anchor_abspath is NULL. If @a anchor_abspath is not NULL then
- * recursively acquire write locks for the anchor of @a local_abspath
- * and return the anchor path in @a *anchor_abspath. Use @a wc_ctx
- * for working copy access.
+ * Acquire a recursive write lock for @a local_abspath or if @a lock_anchor
+ * is true, determine if @a local_abspath has an anchor that should be locked
+ * instead. Store the obtained lock in @a wc_ctx.
+ *
+ * If @a lock_root_abspath is not NULL, store the root of the lock in
+ * @a *lock_root_abspath. If @a lock_root_abspath is NULL, then @a
+ * local_abspath must be a versioned directory and @a lock_anchor must be
+ * FALSE.
*
* Returns @c SVN_ERR_WC_LOCKED if an existing lock is encountered, in
* which case any locks acquired will have been released.
*
- * If @a *anchor_abspath is not NULL it will be set even when
- * SVN_ERR_WC_LOCKED is returned.
- *
- * ### @a anchor_abspath should be removed when we move to centralised
- * ### metadata as it will be unnecessary.
+ * If @a lock_anchor is TRUE and @a lock_root_abspath is not NULL, @a
+ * lock_root_abspath will be set even when SVN_ERR_WC_LOCKED is returned.
*/
svn_error_t *
-svn_wc__acquire_write_lock(const char **anchor_abspath,
+svn_wc__acquire_write_lock(const char **lock_root_abspath,
svn_wc_context_t *wc_ctx,
const char *local_abspath,
+ svn_boolean_t lock_anchor,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
@@ -653,6 +654,9 @@ svn_wc__acquire_write_lock(const char **
* Recursively release write locks for @a local_abspath, using @a wc_ctx
* for working copy access. Only locks held by @a wc_ctx are released.
* Locks are not removed if work queue items are present.
+ *
+ * If @a local_abspath is not the root of an owned SVN_ERR_WC_NOT_LOCKED
+ * is returned.
*/
svn_error_t *
svn_wc__release_write_lock(svn_wc_context_t *wc_ctx,
@@ -668,6 +672,10 @@ typedef svn_error_t *(*svn_wc__with_writ
/** Call function @a func while holding a write lock on
* @a local_abspath. The @a baton, and @a result_pool and
* @a scratch_pool, is passed @a func.
+ *
+ * If @a lock_anchor is TRUE, determine if @a local_abspath has an anchor
+ * that should be locked instead.
+ *
* Use @a wc_ctx for working copy access.
* The lock is guaranteed to be released after @a func returns.
*/
@@ -676,6 +684,7 @@ svn_wc__call_with_write_lock(svn_wc__wit
void *baton,
svn_wc_context_t *wc_ctx,
const char *local_abspath,
+ svn_boolean_t lock_anchor,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
Modified: subversion/branches/performance/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/include/svn_client.h?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/include/svn_client.h (original)
+++ subversion/branches/performance/subversion/include/svn_client.h Mon Sep 6 19:13:39 2010
@@ -947,6 +947,17 @@ typedef struct svn_client_ctx_t
* @since New in 1.7. */
svn_wc_context_t *wc_ctx;
+ /** A commit callback to call when a commit succeeds.
+ * @note There is no @a commit_callback member; this is named
+ * @a commit_callback2 to reflect its type.
+ *
+ * @since New in 1.7.
+ */
+ svn_commit_callback2_t commit_callback2;
+
+ /** Callback baton for #commit_callback2. */
+ void *commit_baton;
+
} svn_client_ctx_t;
/** Initialize a client context.
@@ -1450,8 +1461,7 @@ svn_client_add(const char *path,
*
* If @a paths contains URLs, use the authentication baton in @a ctx
* and @a message to immediately attempt to commit the creation of the
- * directories in @a paths in the repository. If the commit succeeds,
- * allocate (in @a pool) and populate @a *commit_info_p.
+ * directories in @a paths in the repository.
*
* Else, create the directories on disk, and attempt to schedule them
* for addition (using svn_client_add(), whose docstring you should
@@ -1475,8 +1485,27 @@ svn_client_add(const char *path,
* @a ctx->notify_baton2 and the path of the new directory. Note that this is
* only called for items added to the working copy.
*
+ * If @a ctx->commit_callback2 is non-NULL, then for each successful commit,
+ * call @a ctx->commit_callback2 with @a ctx->commit_baton and a
+ * #svn_commit_info_t for the commit.
+ *
+ * @since New in 1.7.
+ */
+svn_error_t *
+svn_client_mkdir4(const apr_array_header_t *paths,
+ svn_boolean_t make_parents,
+ const apr_hash_t *revprop_table,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/**
+ * Similar to svn_client_mkdir4(), but returns the @a commit_info_p directly,
+ * rather than through @a ctx->commit_callback2.
+ *
* @since New in 1.5.
+ * @deprecated Provided for backward compatibility with the 1.4 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_mkdir3(svn_commit_info_t **commit_info_p,
const apr_array_header_t *paths,
@@ -1526,9 +1555,7 @@ svn_client_mkdir(svn_client_commit_info_
* If the paths in @a paths are URLs, use the authentication baton in
* @a ctx and @a ctx->log_msg_func3/@a ctx->log_msg_baton3 to
* immediately attempt to commit a deletion of the URLs from the
- * repository. If the commit succeeds, allocate (in @a pool) and
- * populate @a *commit_info_p. Every path must belong to the same
- * repository.
+ * repository. Every path must belong to the same repository.
*
* Else, schedule the working copy paths in @a paths for removal from
* the repository. Each path's parent must be under revision control.
@@ -1561,8 +1588,28 @@ svn_client_mkdir(svn_client_commit_info_
* @a ctx->notify_func2 with @a ctx->notify_baton2 and the path of the deleted
* item.
*
+ * If @a ctx->commit_callback2 is non-NULL, then for each successful commit,
+ * call @a ctx->commit_callback2 with @a ctx->commit_baton and a
+ * #svn_commit_info_t for the commit.
+ *
+ * @since New in 1.7.
+ */
+svn_error_t *
+svn_client_delete4(const apr_array_header_t *paths,
+ svn_boolean_t force,
+ svn_boolean_t keep_local,
+ const apr_hash_t *revprop_table,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/**
+ * Similar to svn_client_delete4(), but returns the @a commit_info_p directly,
+ * rather than through @a ctx->commit_callback2.
+ *
* @since New in 1.5.
+ * @deprecated Provided for backward compatibility with the 1.6 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_delete3(svn_commit_info_t **commit_info_p,
const apr_array_header_t *paths,
@@ -1612,8 +1659,7 @@ svn_client_delete(svn_client_commit_info
/** Import file or directory @a path into repository directory @a url at
* head, authenticating with the authentication baton cached in @a ctx,
* and using @a ctx->log_msg_func3/@a ctx->log_msg_baton3 to get a log message
- * for the (implied) commit. Set @a *commit_info_p to the results of the
- * commit, allocated in @a pool. If some components of @a url do not exist
+ * for the (implied) commit. If some components of @a url do not exist
* then create parent directories as necessary.
*
* This function reads an unversioned tree from disk and skips any ".svn"
@@ -1665,8 +1711,30 @@ svn_client_delete(svn_client_commit_info
* If @a ignore_unknown_node_types is @c FALSE, ignore files of which the
* node type is unknown, such as device files and pipes.
*
+ * If @a ctx->commit_callback2 is non-NULL, then for each successful commit,
+ * call @a ctx->commit_callback2 with @a ctx->commit_baton and a
+ * #svn_commit_info_t for the commit.
+ *
+ * @since New in 1.7.
+ */
+svn_error_t *
+svn_client_import4(const char *path,
+ const char *url,
+ svn_depth_t depth,
+ svn_boolean_t no_ignore,
+ svn_boolean_t ignore_unknown_node_types,
+ const apr_hash_t *revprop_table,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/**
+ * Similar to svn_client_import4(), but returns the @a commit_info_p directly,
+ * rather than through @a ctx->commit_callback2.
+ *
* @since New in 1.5.
+ * @deprecated Provided for backward compatibility with the 1.6 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_import3(svn_commit_info_t **commit_info_p,
const char *path,
@@ -1767,12 +1835,34 @@ svn_client_import(svn_client_commit_info
*
* Use @a pool for any temporary allocations.
*
- * If no error is returned and @a (*commit_info_p)->revision is set to
+ * If @a ctx->commit_callback2 is non-NULL, then for each successful commit,
+ * call @a ctx->commit_callback2 with @a ctx->commit_baton and a
+ * #svn_commit_info_t for the commit.
+ *
+ * @since New in 1.7.
+ */
+svn_error_t *
+svn_client_commit5(const apr_array_header_t *targets,
+ svn_depth_t depth,
+ svn_boolean_t keep_locks,
+ svn_boolean_t keep_changelists,
+ const apr_array_header_t *changelists,
+ const apr_hash_t *revprop_table,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/**
+ * Similar to svn_client_commit5(), but returns the @a commit_info_p directly,
+ * rather than through @a ctx->commit_callback2.
+ *
+ * Also, if no error is returned and @a (*commit_info_p)->revision is set to
* #SVN_INVALID_REVNUM, then the commit was a no-op; nothing needed to
* be committed.
*
* @since New in 1.5.
+ * @deprecated Provided for backward compatibility with the 1.6 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_commit4(svn_commit_info_t **commit_info_p,
const apr_array_header_t *targets,
@@ -2207,9 +2297,6 @@ svn_client_status(svn_revnum_t *result_r
* If @a revprops is NULL, retrieve all revprops; else, retrieve only the
* revprops named in the array (i.e. retrieve none if the array is empty).
*
- * If @a start->kind or @a end->kind is #svn_opt_revision_unspecified,
- * return the error #SVN_ERR_CLIENT_BAD_REVISION.
- *
* Use @a pool for any temporary allocation.
*
* @par Important:
@@ -3528,10 +3615,7 @@ typedef struct svn_client_copy_source_t
*
* If @a dst_path is a URL, use the authentication baton
* in @a ctx and @a ctx->log_msg_func3/@a ctx->log_msg_baton3 to immediately
- * attempt to commit the copy action in the repository. If the commit
- * succeeds, allocate (in @a pool) and populate @a *commit_info_p. If
- * @a dst_path is not a URL, and the copy succeeds, set @a
- * *commit_info_p to @c NULL.
+ * attempt to commit the copy action in the repository.
*
* If @a dst_path is not a URL, then this is just a variant of
* svn_client_add(), where the @a sources are scheduled for addition
@@ -3558,8 +3642,30 @@ typedef struct svn_client_copy_source_t
* for each item added at the new location, passing the new, relative path of
* the added item.
*
+ * If @a ctx->commit_callback2 is non-NULL, then for each successful commit,
+ * call @a ctx->commit_callback2 with @a ctx->commit_baton and a
+ * #svn_commit_info_t for the commit.
+ *
+ * @since New in 1.7.
+ */
+svn_error_t *
+svn_client_copy6(const apr_array_header_t *sources,
+ const char *dst_path,
+ svn_boolean_t copy_as_child,
+ svn_boolean_t make_parents,
+ svn_boolean_t ignore_externals,
+ const apr_hash_t *revprop_table,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/**
+ * Similar to svn_client_copy6(), but returns the @a commit_info_p directly,
+ * rather than through @a ctx->commit_callback2.
+ *
* @since New in 1.6.
+ * @deprecated Provided for backward compatibility with the 1.6 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_copy5(svn_commit_info_t **commit_info_p,
const apr_array_header_t *sources,
@@ -3667,8 +3773,7 @@ svn_client_copy(svn_client_commit_info_t
* - The authentication baton in @a ctx and @a ctx->log_msg_func/@a
* ctx->log_msg_baton are used to commit the move.
*
- * - The move operation will be immediately committed. If the
- * commit succeeds, allocate (in @a pool) and populate @a *commit_info_p.
+ * - The move operation will be immediately committed.
*
* If @a src_paths are working copy paths:
*
@@ -3687,8 +3792,6 @@ svn_client_copy(svn_client_commit_info_t
* items and @a force is not set, the move will fail. If @a force is set
* such items will be removed.
*
- * - If the move succeeds, set @a *commit_info_p to @c NULL.
- *
* The parent of @a dst_path must already exist.
*
* If @a src_paths has only one item, attempt to move it to @a dst_path. If
@@ -3726,8 +3829,30 @@ svn_client_copy(svn_client_commit_info_t
*
* ### Is this really true? What about svn_wc_notify_commit_replaced()? ###
*
+ * If @a ctx->commit_callback2 is non-NULL, then for each successful commit,
+ * call @a ctx->commit_callback2 with @a ctx->commit_baton and a
+ * #svn_commit_info_t for the commit.
+ *
+ * @since New in 1.7.
+ */
+svn_error_t *
+svn_client_move6(const apr_array_header_t *src_paths,
+ const char *dst_path,
+ svn_boolean_t force,
+ svn_boolean_t move_as_child,
+ svn_boolean_t make_parents,
+ const apr_hash_t *revprop_table,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/**
+ * Similar to svn_client_move6(), but returns the @a commit_info_p directly,
+ * rather than through @a ctx->commit_callback2.
+ *
* @since New in 1.5.
+ * @deprecated Provided for backward compatibility with the 1.6 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_move5(svn_commit_info_t **commit_info_p,
const apr_array_header_t *src_paths,
@@ -3846,8 +3971,7 @@ svn_client_move(svn_client_commit_info_t
* supported on URLs. The authentication baton in @a ctx and @a
* ctx->log_msg_func3/@a ctx->log_msg_baton3 will be used to
* immediately attempt to commit the property change in the
- * repository. If the commit succeeds, allocate (in @a pool) and
- * populate @a *commit_info_p.
+ * repository.
*
* If @a propname is an svn-controlled property (i.e. prefixed with
* #SVN_PROP_PREFIX), then the caller is responsible for ensuring that
@@ -3875,10 +3999,34 @@ svn_client_move(svn_client_commit_info_t
* If @a ctx->cancel_func is non-NULL, invoke it passing @a
* ctx->cancel_baton at various places during the operation.
*
+ * If @a ctx->commit_callback2 is non-NULL, then for each successful commit,
+ * call @a ctx->commit_callback2 with @a ctx->commit_baton and a
+ * #svn_commit_info_t for the commit.
+ *
* Use @a pool for all memory allocation.
*
+ * @since New in 1.7.
+ */
+svn_error_t *
+svn_client_propset4(const char *propname,
+ const svn_string_t *propval,
+ const char *target,
+ svn_depth_t depth,
+ svn_boolean_t skip_checks,
+ svn_revnum_t base_revision_for_url,
+ const apr_array_header_t *changelists,
+ const apr_hash_t *revprop_table,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/**
+ * Similar to svn_client_propset4(), but returns the @a commit_info_p directly,
+ * rather than through @a ctx->commit_callback2.
+ *
* @since New in 1.5.
+ * @deprecated Provided for backward compatibility with the 1.6 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_propset3(svn_commit_info_t **commit_info_p,
const char *propname,
@@ -3891,7 +4039,6 @@ svn_client_propset3(svn_commit_info_t **
const apr_hash_t *revprop_table,
svn_client_ctx_t *ctx,
apr_pool_t *pool);
-
/**
* Like svn_client_propset3(), but with @a base_revision_for_url
* always #SVN_INVALID_REVNUM; @a commit_info_p always @c NULL; @a
Modified: subversion/branches/performance/subversion/include/svn_diff.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/include/svn_diff.h?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/include/svn_diff.h (original)
+++ subversion/branches/performance/subversion/include/svn_diff.h Mon Sep 6 19:13:39 2010
@@ -777,6 +777,7 @@ svn_diff_mem_string_output_merge(svn_str
*/
typedef enum svn_diff_operation_kind_e
{
+ svn_diff_op_unchanged,
svn_diff_op_added,
svn_diff_op_deleted,
svn_diff_op_copied,
@@ -933,6 +934,22 @@ svn_linenum_t
svn_diff_hunk_get_trailing_context(const svn_hunk_t *hunk);
/**
+ * Data type to manage parsing of properties in patches.
+ *
+ * @since New in 1.7. */
+typedef struct svn_prop_patch_t {
+ const char *name;
+
+ /** Represents the operation performed on the property */
+ svn_diff_operation_kind_t operation;
+
+ /**
+ * An array containing an svn_hunk_t object for each hunk parsed from the
+ * patch associated with our property name */
+ apr_array_header_t *hunks;
+} svn_prop_patch_t;
+
+/**
* Data type to manage parsing of patches.
*
* @since New in 1.7. */
@@ -956,9 +973,9 @@ typedef struct svn_patch_t {
apr_array_header_t *hunks;
/**
- * A hash table containing an array of svn_hunk_t object for each property
- * parsed from the patch. The property names act as keys. */
- apr_hash_t *property_hunks;
+ * A hash table keyed by property names containing svn_patch_property_t
+ * object for each property parsed from the patch. */
+ apr_hash_t *prop_patches;
/**
* Represents the operation performed on the file. */
Modified: subversion/branches/performance/subversion/include/svn_error.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/include/svn_error.h?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/include/svn_error.h (original)
+++ subversion/branches/performance/subversion/include/svn_error.h Mon Sep 6 19:13:39 2010
@@ -444,6 +444,9 @@ svn_error_t *svn_error_purge_tracing(svn
} \
} while (0)
+/** Report a "Not implemented" malfunction. Internal use only. */
+#define SVN__NOT_IMPLEMENTED() \
+ return svn_error__malfunction(TRUE, __FILE__, __LINE__, "Not implemented.")
/** A helper function for the macros that report malfunctions. Handle a
* malfunction by calling the current "malfunction handler" which may have
Modified: subversion/branches/performance/subversion/include/svn_error_codes.h
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/include/svn_error_codes.h?rev=993127&r1=993126&r2=993127&view=diff
==============================================================================
--- subversion/branches/performance/subversion/include/svn_error_codes.h (original)
+++ subversion/branches/performance/subversion/include/svn_error_codes.h Mon Sep 6 19:13:39 2010
@@ -289,13 +289,8 @@ SVN_ERROR_START
"Unrecognized stream data")
/** @since New in 1.7. */
- SVN_ERRDEF(SVN_ERR_STREAM_RESET_NOT_SUPPORTED,
- SVN_ERR_STREAM_CATEGORY_START + 3,
- "Stream doesn't support resetting")
-
- /** @since New in 1.7. */
SVN_ERRDEF(SVN_ERR_STREAM_SEEK_NOT_SUPPORTED,
- SVN_ERR_STREAM_CATEGORY_START + 4,
+ SVN_ERR_STREAM_CATEGORY_START + 3,
"Stream doesn't support seeking")
/* node errors */
@@ -1313,6 +1308,17 @@ SVN_ERROR_START
SVN_ERR_MISC_CATEGORY_START + 32,
"Unsupported schema found in SQLite db")
+/** @since New in 1.7. */
+ SVN_ERRDEF(SVN_ERR_SQLITE_BUSY,
+ SVN_ERR_MISC_CATEGORY_START + 33,
+ "The SQLite db is busy")
+
+/** @since New in 1.7. */
+ SVN_ERRDEF(SVN_ERR_SQLITE_RESETTING_FOR_ROLLBACK,
+ SVN_ERR_MISC_CATEGORY_START + 34,
+ "SQLite busy at transaction rollback; "
+ "resetting all busy SQLite statements to allow rollback")
+
/* command-line client errors */
SVN_ERRDEF(SVN_ERR_CL_ARG_PARSING_ERROR,