You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2013/10/30 02:04:26 UTC
svn commit: r1536949 [1/6] - in /subversion/branches/fsfs-improvements: ./
build/ build/ac-macros/ build/generator/ notes/http-and-webdav/
subversion/bindings/javahl/ subversion/bindings/javahl/native/
subversion/bindings/javahl/src/org/apache/subversi...
Author: stefan2
Date: Wed Oct 30 01:04:22 2013
New Revision: 1536949
URL: http://svn.apache.org/r1536949
Log:
On the fsfs-improvements branch: sync with /trunk.
There were no conflicts.
Added:
subversion/branches/fsfs-improvements/subversion/tests/libsvn_subr/sqlite-test.c
- copied unchanged from r1536946, subversion/trunk/subversion/tests/libsvn_subr/sqlite-test.c
Removed:
subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIThreadData.cpp
subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIThreadData.h
subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/libsvnjavahl.la.c
Modified:
subversion/branches/fsfs-improvements/ (props changed)
subversion/branches/fsfs-improvements/CHANGES
subversion/branches/fsfs-improvements/Makefile.in
subversion/branches/fsfs-improvements/build.conf
subversion/branches/fsfs-improvements/build/ac-macros/compiler.m4
subversion/branches/fsfs-improvements/build/generator/gen_win_dependencies.py
subversion/branches/fsfs-improvements/build/run_ctypesgen.sh
subversion/branches/fsfs-improvements/configure.ac
subversion/branches/fsfs-improvements/gen-make.py
subversion/branches/fsfs-improvements/notes/http-and-webdav/webdav-protocol
subversion/branches/fsfs-improvements/subversion/bindings/javahl/README
subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIStackElement.cpp
subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIStackElement.h
subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIUtil.cpp
subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIUtil.h
subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/OperationContext.cpp
subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/SVNClient.cpp
subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.cpp
subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java
subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/RequestChannel.java
subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ResponseChannel.java
subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/TunnelChannel.java
subversion/branches/fsfs-improvements/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
subversion/branches/fsfs-improvements/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java
subversion/branches/fsfs-improvements/subversion/bindings/swig/perl/native/Makefile.PL.in
subversion/branches/fsfs-improvements/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
subversion/branches/fsfs-improvements/subversion/include/private/svn_auth_private.h
subversion/branches/fsfs-improvements/subversion/include/private/svn_dep_compat.h
subversion/branches/fsfs-improvements/subversion/include/private/svn_sqlite.h
subversion/branches/fsfs-improvements/subversion/include/private/svn_subr_private.h
subversion/branches/fsfs-improvements/subversion/include/private/svn_utf_private.h
subversion/branches/fsfs-improvements/subversion/include/svn_dirent_uri.h
subversion/branches/fsfs-improvements/subversion/include/svn_fs.h
subversion/branches/fsfs-improvements/subversion/include/svn_path.h
subversion/branches/fsfs-improvements/subversion/include/svn_ra.h
subversion/branches/fsfs-improvements/subversion/include/svn_types.h
subversion/branches/fsfs-improvements/subversion/include/svn_xml.h
subversion/branches/fsfs-improvements/subversion/libsvn_client/cmdline.c
subversion/branches/fsfs-improvements/subversion/libsvn_client/commit_util.c
subversion/branches/fsfs-improvements/subversion/libsvn_client/list.c
subversion/branches/fsfs-improvements/subversion/libsvn_client/merge.c
subversion/branches/fsfs-improvements/subversion/libsvn_client/mergeinfo.c
subversion/branches/fsfs-improvements/subversion/libsvn_client/patch.c
subversion/branches/fsfs-improvements/subversion/libsvn_delta/compat.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs/editor.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs/fs-loader.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_base/bdb/locks-table.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_base/lock.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_fs/caching.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_fs/fs.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_fs/fs_fs.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_fs/lock.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_fs/transaction.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_fs/tree.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_fs/util.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_x/ (props changed)
subversion/branches/fsfs-improvements/subversion/libsvn_fs_x/caching.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_x/changes.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_x/fs.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_x/fs_x.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_x/index.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_x/lock.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_x/noderevs.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_x/transaction.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_x/tree.c
subversion/branches/fsfs-improvements/subversion/libsvn_fs_x/util.c
subversion/branches/fsfs-improvements/subversion/libsvn_ra_local/ra_plugin.c
subversion/branches/fsfs-improvements/subversion/libsvn_ra_serf/commit.c
subversion/branches/fsfs-improvements/subversion/libsvn_ra_serf/getlocks.c
subversion/branches/fsfs-improvements/subversion/libsvn_ra_serf/locks.c
subversion/branches/fsfs-improvements/subversion/libsvn_ra_serf/log.c
subversion/branches/fsfs-improvements/subversion/libsvn_ra_serf/property.c
subversion/branches/fsfs-improvements/subversion/libsvn_ra_serf/serf.c
subversion/branches/fsfs-improvements/subversion/libsvn_ra_serf/update.c
subversion/branches/fsfs-improvements/subversion/libsvn_ra_serf/util.c
subversion/branches/fsfs-improvements/subversion/libsvn_ra_serf/util_error.c
subversion/branches/fsfs-improvements/subversion/libsvn_ra_svn/client.c
subversion/branches/fsfs-improvements/subversion/libsvn_ra_svn/cyrus_auth.c
subversion/branches/fsfs-improvements/subversion/libsvn_ra_svn/deprecated.c
subversion/branches/fsfs-improvements/subversion/libsvn_ra_svn/marshal.c
subversion/branches/fsfs-improvements/subversion/libsvn_repos/authz.c
subversion/branches/fsfs-improvements/subversion/libsvn_repos/commit.c
subversion/branches/fsfs-improvements/subversion/libsvn_repos/config_pool.c
subversion/branches/fsfs-improvements/subversion/libsvn_repos/dump.c
subversion/branches/fsfs-improvements/subversion/libsvn_repos/hooks.c
subversion/branches/fsfs-improvements/subversion/libsvn_repos/log.c
subversion/branches/fsfs-improvements/subversion/libsvn_repos/reporter.c
subversion/branches/fsfs-improvements/subversion/libsvn_repos/rev_hunt.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/auth.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/cache-memcache.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/checksum.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/cmdline.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/config.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/config_file.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/config_win.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/dirent_uri.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/error.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/file.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/io.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/log.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/mergeinfo.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/named_atomic.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/nls.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/opt.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/path.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/sqlite.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/sysinfo.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/time.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/utf.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/win32_crypto.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/win32_xlate.c
subversion/branches/fsfs-improvements/subversion/libsvn_wc/adm_files.c
subversion/branches/fsfs-improvements/subversion/libsvn_wc/externals.c
subversion/branches/fsfs-improvements/subversion/libsvn_wc/old-and-busted.c
subversion/branches/fsfs-improvements/subversion/libsvn_wc/relocate.c
subversion/branches/fsfs-improvements/subversion/libsvn_wc/upgrade.c
subversion/branches/fsfs-improvements/subversion/libsvn_wc/wc-queries.sql
subversion/branches/fsfs-improvements/subversion/libsvn_wc/wc_db.c
subversion/branches/fsfs-improvements/subversion/libsvn_wc/wc_db_pristine.c
subversion/branches/fsfs-improvements/subversion/mod_authz_svn/mod_authz_svn.c
subversion/branches/fsfs-improvements/subversion/mod_dav_svn/authz.c
subversion/branches/fsfs-improvements/subversion/mod_dav_svn/lock.c
subversion/branches/fsfs-improvements/subversion/mod_dav_svn/merge.c
subversion/branches/fsfs-improvements/subversion/mod_dav_svn/mirror.c
subversion/branches/fsfs-improvements/subversion/mod_dav_svn/mod_dav_svn.c
subversion/branches/fsfs-improvements/subversion/mod_dav_svn/reports/log.c
subversion/branches/fsfs-improvements/subversion/mod_dav_svn/reports/replay.c
subversion/branches/fsfs-improvements/subversion/mod_dav_svn/reports/update.c
subversion/branches/fsfs-improvements/subversion/mod_dav_svn/repos.c
subversion/branches/fsfs-improvements/subversion/mod_dav_svn/version.c
subversion/branches/fsfs-improvements/subversion/svn/conflict-callbacks.c
subversion/branches/fsfs-improvements/subversion/svn/info-cmd.c
subversion/branches/fsfs-improvements/subversion/svn/notify.c
subversion/branches/fsfs-improvements/subversion/svn/status.c
subversion/branches/fsfs-improvements/subversion/svnauth/svnauth.c
subversion/branches/fsfs-improvements/subversion/svndumpfilter/svndumpfilter.c
subversion/branches/fsfs-improvements/subversion/svnmucc/svnmucc.c
subversion/branches/fsfs-improvements/subversion/svnserve/serve.c
subversion/branches/fsfs-improvements/subversion/tests/cmdline/diff_tests.py
subversion/branches/fsfs-improvements/subversion/tests/cmdline/entries-dump.c
subversion/branches/fsfs-improvements/subversion/tests/cmdline/log_tests.py
subversion/branches/fsfs-improvements/subversion/tests/cmdline/merge_tests.py
subversion/branches/fsfs-improvements/subversion/tests/cmdline/move_tests.py
subversion/branches/fsfs-improvements/subversion/tests/cmdline/svnadmin_tests.py
subversion/branches/fsfs-improvements/subversion/tests/cmdline/svntest/main.py
subversion/branches/fsfs-improvements/subversion/tests/libsvn_client/ (props changed)
subversion/branches/fsfs-improvements/subversion/tests/libsvn_client/client-test.c
subversion/branches/fsfs-improvements/subversion/tests/libsvn_delta/random-test.c
subversion/branches/fsfs-improvements/subversion/tests/libsvn_diff/ (props changed)
subversion/branches/fsfs-improvements/subversion/tests/libsvn_diff/diff-diff3-test.c
subversion/branches/fsfs-improvements/subversion/tests/libsvn_fs_fs/ (props changed)
subversion/branches/fsfs-improvements/subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
subversion/branches/fsfs-improvements/subversion/tests/libsvn_fs_x/ (props changed)
subversion/branches/fsfs-improvements/subversion/tests/libsvn_fs_x/fs-x-pack-test.c
subversion/branches/fsfs-improvements/subversion/tests/libsvn_ra_local/ra-local-test.c
subversion/branches/fsfs-improvements/subversion/tests/libsvn_repos/repos-test.c
subversion/branches/fsfs-improvements/subversion/tests/libsvn_subr/ (props changed)
subversion/branches/fsfs-improvements/subversion/tests/libsvn_subr/auth-test.c
subversion/branches/fsfs-improvements/subversion/tests/libsvn_subr/config-test.c
subversion/branches/fsfs-improvements/subversion/tests/libsvn_subr/dirent_uri-test.c
subversion/branches/fsfs-improvements/subversion/tests/libsvn_subr/path-test.c
subversion/branches/fsfs-improvements/subversion/tests/libsvn_subr/translate-test.c
subversion/branches/fsfs-improvements/subversion/tests/libsvn_wc/entries-compat.c
subversion/branches/fsfs-improvements/subversion/tests/libsvn_wc/op-depth-test.c
subversion/branches/fsfs-improvements/subversion/tests/libsvn_wc/utils.c
subversion/branches/fsfs-improvements/subversion/tests/libsvn_wc/wc-queries-test.c
subversion/branches/fsfs-improvements/subversion/tests/svn_test.h
subversion/branches/fsfs-improvements/subversion/tests/svn_test_main.c
subversion/branches/fsfs-improvements/tools/client-side/svn-bench/notify.c
subversion/branches/fsfs-improvements/tools/dev/fsfs-reorg.c
subversion/branches/fsfs-improvements/tools/dev/unix-build/Makefile.svn
subversion/branches/fsfs-improvements/tools/server-side/fsfs-stats.c
subversion/branches/fsfs-improvements/tools/server-side/svn-populate-node-origins-index.c
subversion/branches/fsfs-improvements/tools/server-side/svn-rep-sharing-stats.c
Propchange: subversion/branches/fsfs-improvements/
------------------------------------------------------------------------------
Merged /subversion/trunk:r1532580-1536946
Modified: subversion/branches/fsfs-improvements/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/CHANGES?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/CHANGES (original)
+++ subversion/branches/fsfs-improvements/CHANGES Wed Oct 30 01:04:22 2013
@@ -26,6 +26,43 @@ http://svn.apache.org/repos/asf/subversi
- Bindings:
+Version 1.8.4
+(29 October 2013, from /branches/1.8.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.8.4
+
+ User-visible changes:
+ - Client- and server-side bugfixes:
+ * fix assertion on urls of the form 'file://./' (r1516806)
+ * stop linking against psapi.dll on Windows (r1534102)
+ * translation updates for Swedish
+
+ - Client-side bugfixes:
+ * revert: fix problems reverting moves (issue #4436)
+ * update: fix assertion when file external access is denied (issue #4422)
+ * merge: reduce network connections for automatic merge (r1468980 et al)
+ * merge: fix path corruption during reintegration (r1523666)
+ * mergeinfo: fix crash (r1519955)
+ * ra_serf: verify the result of xml parsing (r1501199 et al)
+ * ra_serf: improve error messages during commit (r1526439)
+ * ra_local: fix error with repository in Windows drive root (r1518184)
+ * fix crash on windows when piped command is interrupted (r1522892)
+ * fix crash in the crash handler on windows (r1532023)
+ * fix assertion when upgrading old working copies (r1520529)
+
+ - Server-side bugfixes:
+ * hotcopy: cleanup unpacked revprops with '--incremental' (r1512300 et al)
+ * fix OOM on concurrent requests at threaded server start (r1527103 et al)
+ * fsfs: improve error message when unsupported fsfs format found (r1534158)
+ * fix memory problem in 3rd party FS module loader (r1519615 et al)
+
+ Developer-visible changes:
+ - General:
+ * allow compiling against serf 1.3 and later on Windows (r1517123)
+
+ - Bindings:
+ * javahl: canonicalize path for streamFileContent method (r1524869)
+
+
Version 1.8.3
(29 August 2013, from /branches/1.8.x)
http://svn.apache.org/repos/asf/subversion/tags/1.8.3
Modified: subversion/branches/fsfs-improvements/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/Makefile.in?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/Makefile.in (original)
+++ subversion/branches/fsfs-improvements/Makefile.in Wed Oct 30 01:04:22 2013
@@ -108,6 +108,7 @@ PACKAGE_VERSION=@PACKAGE_VERSION@
CC = @CC@
CXX = @CXX@
+CPP = @CPP@
EXEEXT = @EXEEXT@
SHELL = @SHELL@
@@ -181,6 +182,7 @@ CXXMAINTAINERFLAGS = @CXXMAINTAINERFLAGS
CPPFLAGS = @CPPFLAGS@ $(EXTRA_CPPFLAGS)
LDFLAGS = @LDFLAGS@ $(EXTRA_LDFLAGS)
SWIG_LDFLAGS = @SWIG_LDFLAGS@ $(EXTRA_SWIG_LDFLAGS)
+SWIG_CPPFLAGS = @SWIG_CPPFLAGS@ $(EXTRA_CPPFLAGS)
COMPILE = $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CMAINTAINERFLAGS) $(CFLAGS) $(INCLUDES)
COMPILE_NOWARN = $(CC) $(CMODEFLAGS) $(CPPFLAGS) $(CNOWARNFLAGS) $(CFLAGS) $(INCLUDES)
@@ -205,6 +207,19 @@ COMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXF
COMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS)
COMPILE_JAVAHL_JAVAH = $(JAVAH)
+# export an env variable so that the tests can run without being installed
+TEST_SHLIB_VAR_JAVAHL=\
+ if [ "@SVN_APR_SHLIB_PATH_VAR@" = "DYLD_LIBRARY_PATH" ]; then \
+ for d in $(abs_builddir)/subversion/libsvn_*; do \
+ if [ -n "$$DYLD_LIBRARY_PATH" ]; then \
+ @SVN_APR_SHLIB_PATH_VAR@="$$@SVN_APR_SHLIB_PATH_VAR@:$$d/.libs"; \
+ else \
+ @SVN_APR_SHLIB_PATH_VAR@="$$d/.libs"; \
+ fi; \
+ done; \
+ export @SVN_APR_SHLIB_PATH_VAR@; \
+ fi;
+
# special compilation for files destined for cxxhl
COMPILE_CXXHL_CXX = $(LT_COMPILE_CXX) $(CXXHL_INCLUDES) -o $@ -c
COMPILE_GMOCK_CXX = $(LT_COMPILE_CXX_NOWARN) $(GMOCK_INCLUDES) -o $@ -c
@@ -340,7 +355,7 @@ INSTALL_EXTRA_SWIG_RB=\
# export an env variable so that the tests can run without being installed
TEST_SHLIB_VAR_SWIG_RB=\
if [ "@SVN_APR_SHLIB_PATH_VAR@" = "DYLD_LIBRARY_PATH" ]; then \
- for d in $(SWIG_PY_DIR)/libsvn_swig_rb $(SWIG_PY_DIR)/../../../libsvn_*; do \
+ for d in $(SWIG_RB_DIR)/libsvn_swig_ruby $(SWIG_RB_DIR)/../../../libsvn_*; do \
if [ -n "$$DYLD_LIBRARY_PATH" ]; then \
@SVN_APR_SHLIB_PATH_VAR@="$$@SVN_APR_SHLIB_PATH_VAR@:$$d/.libs"; \
else \
@@ -473,11 +488,13 @@ clean-javahl:
check-tigris-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_compat_tests_PATH):$(javahl_tests_CLASSPATH) "-Dtest.tests=$(JAVAHL_TESTS)" org.tigris.subversion.javahl.RunTests
+ $(TEST_SHLIB_VAR_JAVAHL) \
+ $(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-apache-javahl: javahl
@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
+ $(TEST_SHLIB_VAR_JAVAHL) \
+ $(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
check-javahl: check-apache-javahl
@@ -894,7 +911,7 @@ install-swig-rb-doc:
# ctypes-python make targets
ctypes-python: local-all
- $(SHELL) $(abs_srcdir)/build/run_ctypesgen.sh "$(LT_EXECUTE)" "$(CPPFLAGS)" "$(EXTRA_CTYPES_LDFLAGS)" "$(PYTHON)" "$(CTYPESGEN)" "$(abs_srcdir)" "$(abs_builddir)" "$(libdir)" "$(SVN_APR_CONFIG)" "$(SVN_APRUTIL_CONFIG)"
+ $(SHELL) $(abs_srcdir)/build/run_ctypesgen.sh "$(LT_EXECUTE)" "$(CPPFLAGS)" "$(EXTRA_CTYPES_LDFLAGS)" "$(PYTHON)" "$(CTYPESGEN)" "$(abs_srcdir)" "$(abs_builddir)" "$(libdir)" "$(SVN_APR_CONFIG)" "$(SVN_APRUTIL_CONFIG)" "$(CPP)"
install-ctypes-python: ctypes-python
cd $(CTYPES_PYTHON_SRC_DIR); \
Modified: subversion/branches/fsfs-improvements/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/build.conf?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/build.conf (original)
+++ subversion/branches/fsfs-improvements/build.conf Wed Oct 30 01:04:22 2013
@@ -88,9 +88,9 @@ test-scripts =
bdb-test-scripts =
-swig-python-opts = $(CPPFLAGS) -python -classic
-swig-perl-opts = $(CPPFLAGS) -perl -nopm -noproxy
-swig-ruby-opts = $(CPPFLAGS) -ruby
+swig-python-opts = $(SWIG_CPPFLAGS) -python -classic
+swig-perl-opts = $(SWIG_CPPFLAGS) -perl -nopm -noproxy
+swig-ruby-opts = $(SWIG_CPPFLAGS) -ruby
swig-languages = python perl ruby
swig-dirs =
subversion/bindings/swig/python
@@ -357,7 +357,7 @@ install = fsmod-lib
path = subversion/libsvn_subr
libs = aprutil apriconv apr xml zlib apr_memcache sqlite magic intl
msvc-libs = kernel32.lib advapi32.lib shfolder.lib ole32.lib
- crypt32.lib version.lib psapi.lib
+ crypt32.lib version.lib
msvc-export =
svn_auth.h svn_base64.h svn_cache_config.h svn_checksum.h svn_cmdline.h
svn_compat.h svn_config.h svn_ctype.h svn_dirent_uri.h svn_dso.h
@@ -686,7 +686,7 @@ type = lib
path = subversion/bindings/javahl/native
libs = libsvn_repos libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff
libsvn_subr libsvn_fs aprutil apriconv apr java-sdk
-sources = *.cpp *.c
+sources = *.cpp
add-deps = $(javahl_java_DEPS) $(javahl_callback_javah_DEPS)
$(javahl_remote_javah_DEPS) $(javahl_types_javah_DEPS)
$(javahl_util_javah_DEPS) $(javahl_javah_DEPS)
@@ -1051,6 +1051,14 @@ sources = string-test.c
install = test
libs = libsvn_test libsvn_subr apriconv apr
+[sqlite-test]
+description = Test stream library
+type = exe
+path = subversion/tests/libsvn_subr
+sources = sqlite-test.c
+install = test
+libs = libsvn_test libsvn_subr apriconv apr
+
[time-test]
description = Test time functions
type = exe
@@ -1209,7 +1217,7 @@ msvc-force-static = yes
description = Test Sqlite query evaluation
type = exe
path = subversion/tests/libsvn_wc
-sources = wc-queries-test.c
+sources = wc-queries-test.c ../../libsvn_subr/sqlite3wrapper.c
install = test
libs = libsvn_test libsvn_subr apriconv apr sqlite
@@ -1411,6 +1419,7 @@ libs = __ALL__
diff-diff3-test
ra-test
ra-local-test
+ sqlite-test
svndiff-test vdelta-test
entries-dump atomic-ra-revprop-change wc-lock-tester wc-incomplete-tester
client-test
Modified: subversion/branches/fsfs-improvements/build/ac-macros/compiler.m4
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/build/ac-macros/compiler.m4?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/build/ac-macros/compiler.m4 (original)
+++ subversion/branches/fsfs-improvements/build/ac-macros/compiler.m4 Wed Oct 30 01:04:22 2013
@@ -102,7 +102,7 @@ AC_DEFUN([SVN_CXX_MODE_SETUP],
SVN_CXXFLAGS_ADD_IFELSE([-std=c++98])
fi
- CXXMODEFLAGS="$CFLAGS"
+ CXXMODEFLAGS="$CXXFLAGS"
CXXFLAGS=""
if test "$GXX" = "yes"; then
Modified: subversion/branches/fsfs-improvements/build/generator/gen_win_dependencies.py
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/build/generator/gen_win_dependencies.py?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/build/generator/gen_win_dependencies.py (original)
+++ subversion/branches/fsfs-improvements/build/generator/gen_win_dependencies.py Wed Oct 30 01:04:22 2013
@@ -252,9 +252,14 @@ class GenDependenciesBase(gen_base.Gener
self.sln_version = '12.00'
self.vcproj_version = '11.0'
self.vcproj_extension = '.vcxproj'
+ elif val == '2013' or val == '12':
+ self.vs_version = '2013'
+ self.sln_version = '12.00'
+ self.vcproj_version = '12.0'
+ self.vcproj_extension = '.vcxproj'
elif re.match('^1\d+$', val):
self.vsversion = val
- self.sln_version = '12.00'
+ self.sln_version = val + '.00'
self.vcproj_version = val + '.0'
self.vcproj_extension = '.vcxproj'
else:
Modified: subversion/branches/fsfs-improvements/build/run_ctypesgen.sh
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/build/run_ctypesgen.sh?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/build/run_ctypesgen.sh (original)
+++ subversion/branches/fsfs-improvements/build/run_ctypesgen.sh Wed Oct 30 01:04:22 2013
@@ -36,6 +36,7 @@ abs_builddir="$7"
svn_libdir="$8"
apr_config="$9"
apu_config="${10}"
+cpp="${11}"
cp_relpath="subversion/bindings/ctypes-python"
output="$cp_relpath/svn_all.py"
@@ -57,7 +58,6 @@ apu_cppflags="`$apu_config --includes`"
apu_include_dir="`$apu_config --includedir`"
apu_ldflags="`$apu_config --ldflags --link-ld`"
-cpp="`$apr_config --cpp`"
### end
cppflags="$apr_cppflags $apu_cppflags -I$svn_includes"
Modified: subversion/branches/fsfs-improvements/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/configure.ac?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/configure.ac (original)
+++ subversion/branches/fsfs-improvements/configure.ac Wed Oct 30 01:04:22 2013
@@ -1129,7 +1129,6 @@ if test "$enable_optimization" = "yes";
SVN_CFLAGS_ADD_IFELSE([-O])])])])
SVN_CFLAGS_ADD_IFELSE([-Wno-clobbered])
SVN_CFLAGS_ADD_IFELSE([-flto])
- SVN_CFLAGS_ADD_IFELSE([-fwhole-program])
fi
fi
if test -z ["`echo $CXXUSERFLAGS' ' | $EGREP -- '-O[^ ]* '`"]; then
@@ -1146,7 +1145,6 @@ if test "$enable_optimization" = "yes";
SVN_CXXFLAGS_ADD_IFELSE([-O])])])])
SVN_CXXFLAGS_ADD_IFELSE([-Wno-clobbered])
SVN_CXXFLAGS_ADD_IFELSE([-flto])
- SVN_CXXFLAGS_ADD_IFELSE([-fwhole-program])
fi
fi
elif test "$enable_optimization" = "no"; then
@@ -1492,6 +1490,11 @@ if test "$CC" = "clang"; then
SVN_STRIP_FLAG(CPPFLAGS, [-no-cpp-precomp ])
fi
+# Need to strip '-no-cpp-precomp' from CPPFLAGS for SWIG as well.
+SWIG_CPPFLAGS="$CPPFLAGS"
+SVN_STRIP_FLAG(SWIG_CPPFLAGS, [-no-cpp-precomp ])
+AC_SUBST([SWIG_CPPFLAGS])
+
dnl Since this is used only on Unix-y systems, define the path separator as '/'
AC_DEFINE_UNQUOTED(SVN_PATH_LOCAL_SEPARATOR, '/',
[Defined to be the path separator used on your local filesystem])
Modified: subversion/branches/fsfs-improvements/gen-make.py
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/gen-make.py?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/gen-make.py (original)
+++ subversion/branches/fsfs-improvements/gen-make.py Wed Oct 30 01:04:22 2013
@@ -209,7 +209,8 @@ def _usage_exit(err=None):
print(" Use static openssl")
print("")
print(" --vsnet-version=VER")
- print(" generate for VS.NET version VER (2002, 2003, 2005, 2008, 2010 or 2012)")
+ print(" generate for VS.NET version VER (2002, 2003, 2005, 2008,")
+ print(" 2010, 2012 or 2013)")
print(" [only valid in combination with '-t vcproj']")
print("")
print(" --with-apr_memcache=DIR")
Modified: subversion/branches/fsfs-improvements/notes/http-and-webdav/webdav-protocol
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/notes/http-and-webdav/webdav-protocol?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/notes/http-and-webdav/webdav-protocol (original)
+++ subversion/branches/fsfs-improvements/notes/http-and-webdav/webdav-protocol Wed Oct 30 01:04:22 2013
@@ -354,6 +354,7 @@ Request:
<S:discover-changed-paths/> (optional)
<S:strict-node-history/> (optional)
<S:include-merged-revisions/> (optional)
+ <S:move-behavior>0</S:move-behavior> (optional, see below for values)
<S:encode-binary-props> (optional)
<S:revprop>REVPROP</S:revprop>... | <S:all-revprops/> | <S:no-revprops/>
('revprop', 'all-revprops', and 'no-revprops' are all optional)
@@ -374,12 +375,21 @@ Response:
<S:has-children/> (optional)
<S:added-path( copyfrom-path="PATH" copyfrom-rev="REVNUM">PATH</S:added-path>... (optional)
<S:replaced-path( copyfrom-path="PATH" copyfrom-rev="REVNUM">PATH</S:replaced-path>... (optional)
+ <S:moved-path( copyfrom-path="PATH" copyfrom-rev="REVNUM">PATH</S:moved-path>... (optional)
+ <S:replaced-by-moved-path( copyfrom-path="PATH" copyfrom-rev="REVNUM">PATH</S:replaced-by-moved-path>... (optional)
<S:deleted-path>PATH</S:deleted-path>... (optional)
<S:modified-path>PATH</S:modified-path>... (optional)
</S:log-item>
...multiple log-items for each returned revision...
</S:log-report>
+Move behavior values (see svn_move_behavior_t in svn_types.h):
+
+ 0 .. send all moves as adds / replaces (default if not specified)
+ 1 .. send moves only when stored as such in the repository
+ 2 .. send moves as stored in the repository and also send send
+ suitable adds / replacements as moves
+
mergeinfo-report
----------------
@@ -452,4 +462,4 @@ Request:
Response:
- ### TODO ###
\ No newline at end of file
+ ### TODO ###
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/README
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/README?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/README (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/README Wed Oct 30 01:04:22 2013
@@ -33,10 +33,9 @@ javahl build javahl
install-javahl install javahl
check-javahl run javahl tests
-(In order to run check-javahl, you must have already installed JavaHL,
-and you must have specified a path to a JUnit jar file with
---with-junit when running configure; JUnit version 3.8.1 has been
-tested. JUnit can be downloaded from http://junit.sf.net/ .)
+(In order to run check-javahl, you must have specified a path to a JUnit
+jar file with --with-junit when running configure; JUnit version 3.8.1
+has been tested. JUnit can be downloaded from http://junit.org/ .)
MacOS X:
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIStackElement.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIStackElement.cpp?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIStackElement.cpp (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIStackElement.cpp Wed Oct 30 01:04:22 2013
@@ -27,7 +27,6 @@
#include "JNIStackElement.h"
#include "JNIUtil.h"
#include "JNIStringHolder.h"
-#include "JNIThreadData.h"
#include <apr_strings.h>
/**
@@ -74,7 +73,7 @@ JNIStackElement::JNIStackElement(JNIEnv
// Copy the result to a buffer.
JNIStringHolder name(reinterpret_cast<jstring>(oStr));
- strncat(m_objectID, name, JNIUtil::formatBufferSize -1);
+ strncat(m_objectID, name, sizeof(m_objectID) - 1);
env->DeleteLocalRef(oStr);
}
@@ -86,8 +85,8 @@ JNIStackElement::JNIStackElement(JNIEnv
m_method = method;
// Generate the log message.
- char *buffer = JNIUtil::getFormatBuffer();
- apr_snprintf(buffer, JNIUtil::formatBufferSize,
+ char buffer[2048];
+ apr_snprintf(buffer, sizeof(buffer),
"entry class %s method %s object %s", m_clazz, m_method,
m_objectID);
JNIUtil::logMessage(buffer);
@@ -110,11 +109,10 @@ JNIStackElement::~JNIStackElement()
if (m_clazz != NULL)
{
// Generate a log message.
- char *buffer = JNIUtil::getFormatBuffer();
- apr_snprintf(buffer, JNIUtil::formatBufferSize,
+ char buffer[2048];
+ apr_snprintf(buffer, sizeof(buffer),
"exit class %s method %s object %s", m_clazz,
m_method, m_objectID);
JNIUtil::logMessage(buffer);
}
- JNIThreadData::popThreadData();
}
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIStackElement.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIStackElement.h?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIStackElement.h (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIStackElement.h Wed Oct 30 01:04:22 2013
@@ -73,7 +73,7 @@ class JNIStackElement
* A buffer for the result for jthis.toString to identify the
* object.
*/
- char m_objectID[JNIUtil::formatBufferSize];
+ char m_objectID[2048];
};
#endif // JNISTACKELEMENT_H
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIUtil.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIUtil.cpp (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIUtil.cpp Wed Oct 30 01:04:22 2013
@@ -54,24 +54,16 @@
#include "svn_path.h"
#include "svn_cache_config.h"
#include "private/svn_atomic.h"
+#include "private/svn_utf_private.h"
#include "svn_private_config.h"
-#ifdef WIN32
-/* FIXME: We're using an internal APR header here, which means we
- have to build Subversion with APR sources. This being Win32-only,
- that should be fine for now, but a better solution must be found in
- combination with issue #850. */
-extern "C" {
-#include <arch/win32/apr_arch_utf8.h>
-};
-#endif
#include "SVNBase.h"
#include "JNIMutex.h"
#include "JNICriticalSection.h"
-#include "JNIThreadData.h"
#include "JNIStringHolder.h"
#include "Pool.h"
+
// Static members of JNIUtil are allocated here.
apr_pool_t *JNIUtil::g_pool = NULL;
std::list<SVNBase*> JNIUtil::g_finalizedObjects;
@@ -81,10 +73,39 @@ JNIMutex *JNIUtil::g_configMutex = NULL;
bool JNIUtil::g_initException;
bool JNIUtil::g_inInit;
JNIEnv *JNIUtil::g_initEnv;
-char JNIUtil::g_initFormatBuffer[formatBufferSize];
int JNIUtil::g_logLevel = JNIUtil::noLog;
std::ofstream JNIUtil::g_logStream;
+namespace {
+JavaVM *g_jvm = NULL;
+} // anonymous namespace
+
+extern "C" JNIEXPORT jint JNICALL
+JNI_OnLoad(JavaVM *jvm, void*)
+{
+ g_jvm = jvm;
+ return JNI_VERSION_1_2;
+}
+
+extern "C" JNIEXPORT void JNICALL
+JNI_OnUnload(JavaVM*, void*)
+{}
+
+/**
+ * Return the JNI environment to use
+ * @return the JNI environment
+ */
+JNIEnv *JNIUtil::getEnv()
+{
+ // During init -> look into the global variable.
+ if (g_inInit)
+ return g_initEnv;
+
+ void* penv;
+ g_jvm->GetEnv(&penv, JNI_VERSION_1_2);
+ return static_cast<JNIEnv*>(penv);
+}
+
/**
* Initialize the environment for all requests.
* @param env the JNI environment for this request
@@ -94,9 +115,6 @@ bool JNIUtil::JNIInit(JNIEnv *env)
// Clear all standing exceptions.
env->ExceptionClear();
- // Remember the env parameter for the remainder of the request.
- setEnv(env);
-
// Lock the list of finalized objects.
JNICriticalSection cs(*g_finalizedObjectsMutex) ;
if (isExceptionThrown())
@@ -288,30 +306,22 @@ bool JNIUtil::JNIGlobalInit(JNIEnv *env)
WCHAR ucs2_path[MAX_PATH];
char *utf8_path;
const char *internal_path;
- apr_pool_t *pool;
- apr_status_t apr_err;
- apr_size_t inwords, outbytes;
- unsigned int outlength;
+ svn_error_t *err;
+ apr_pool_t *pool = svn_pool_create(g_pool);
- pool = svn_pool_create(g_pool);
/* get dll name - our locale info will be in '../share/locale' */
- inwords = sizeof(ucs2_path) / sizeof(ucs2_path[0]);
HINSTANCE moduleHandle = GetModuleHandle("libsvnjavahl-1");
- GetModuleFileNameW(moduleHandle, ucs2_path, inwords);
- inwords = lstrlenW(ucs2_path);
- outbytes = outlength = 3 * (inwords + 1);
- utf8_path = reinterpret_cast<char *>(apr_palloc(pool, outlength));
- apr_err = apr_conv_ucs2_to_utf8((const apr_wchar_t *) ucs2_path,
- &inwords, utf8_path, &outbytes);
- if (!apr_err && (inwords > 0 || outbytes == 0))
- apr_err = APR_INCOMPLETE;
- if (apr_err)
+ GetModuleFileNameW(moduleHandle, ucs2_path,
+ sizeof(ucs2_path) / sizeof(ucs2_path[0]));
+ err = svn_utf__win32_utf16_to_utf8(&utf8_path, ucs2_path, NULL, pool);
+ if (err)
{
if (stderr)
- fprintf(stderr, "Can't convert module path to UTF-8");
- return FALSE;
+ svn_handle_error2(err, stderr, false, "svn: ");
+ svn_error_clear(err);
+ return false;
}
- utf8_path[outlength - outbytes] = '\0';
+
internal_path = svn_dirent_internal_style(utf8_path, pool);
/* get base path name */
internal_path = svn_dirent_dirname(internal_path, pool);
@@ -361,14 +371,6 @@ bool JNIUtil::JNIGlobalInit(JNIEnv *env)
if (isExceptionThrown())
return false;
- // initialized the thread local storage
- if (!JNIThreadData::initThreadData())
- return false;
-
- setEnv(env);
- if (isExceptionThrown())
- return false;
-
g_initEnv = NULL;
g_inInit = false;
@@ -399,8 +401,6 @@ void JNIUtil::raiseThrowable(const char
return;
env->ThrowNew(clazz, message);
- setExceptionThrown();
- env->DeleteLocalRef(clazz);
}
void
@@ -825,80 +825,15 @@ void JNIUtil::enqueueForDeletion(SVNBase
*/
void JNIUtil::handleAPRError(int error, const char *op)
{
- char *buffer = getFormatBuffer();
- if (buffer == NULL)
- return;
+ char buffer[2048];
- apr_snprintf(buffer, formatBufferSize,
+ apr_snprintf(buffer, sizeof(buffer),
_("an error occurred in function %s with return value %d"),
op, error);
throwError(buffer);
}
-/**
- * Return if an exception has been detected.
- * @return a exception has been detected
- */
-bool JNIUtil::isExceptionThrown()
-{
- // During init -> look in the global member.
- if (g_inInit)
- return g_initException;
-
- // Look in the thread local storage.
- JNIThreadData *data = JNIThreadData::getThreadData();
- return data == NULL || data->m_exceptionThrown;
-}
-
-/**
- * Store the JNI environment for this request in the thread local
- * storage.
- * @param env the JNI environment
- */
-void JNIUtil::setEnv(JNIEnv *env)
-{
- JNIThreadData::pushNewThreadData();
- JNIThreadData *data = JNIThreadData::getThreadData();
- data->m_env = env;
- data->m_exceptionThrown = false;
-}
-
-/**
- * Return the JNI environment to use
- * @return the JNI environment
- */
-JNIEnv *JNIUtil::getEnv()
-{
- // During init -> look into the global variable.
- if (g_inInit)
- return g_initEnv;
-
- // Look in the thread local storage.
- JNIThreadData *data = JNIThreadData::getThreadData();
- return data->m_env;
-}
-
-/**
- * Check if a Java exception has been thrown.
- * @return is a Java exception has been thrown
- */
-bool JNIUtil::isJavaExceptionThrown()
-{
- JNIEnv *env = getEnv();
- if (env->ExceptionCheck())
- {
- // Retrieving the exception removes it so we rethrow it here.
- jthrowable exp = env->ExceptionOccurred();
- env->ExceptionDescribe();
- env->Throw(exp);
- env->DeleteLocalRef(exp);
- setExceptionThrown();
- return true;
- }
- return false;
-}
-
namespace {
const char* known_exception_to_cstring(apr_pool_t* pool)
{
@@ -984,25 +919,6 @@ jstring JNIUtil::makeJString(const char
return env->NewStringUTF(txt);
}
-void
-JNIUtil::setExceptionThrown(bool flag)
-{
- if (g_inInit)
- {
- // During global initialization, store any errors that occur
- // in a global variable (since thread-local storage may not
- // yet be available).
- g_initException = flag;
- }
- else
- {
- // When global initialization is complete, thread-local
- // storage should be available, so store the error there.
- JNIThreadData *data = JNIThreadData::getThreadData();
- data->m_exceptionThrown = flag;
- }
-}
-
/**
* Initialite the log file.
* @param level the log level
@@ -1026,23 +942,6 @@ void JNIUtil::initLogFile(int level, jst
}
/**
- * Returns a buffer to format error messages.
- * @return a buffer for formating error messages
- */
-char *JNIUtil::getFormatBuffer()
-{
- if (g_inInit) // during init -> use the global buffer
- return g_initFormatBuffer;
-
- // use the buffer in the thread local storage
- JNIThreadData *data = JNIThreadData::getThreadData();
- if (data == NULL) // if that does not exists -> use the global buffer
- return g_initFormatBuffer;
-
- return data->m_formatBuffer;
-}
-
-/**
* Returns the current log level.
* @return the log level
*/
@@ -1182,8 +1081,6 @@ void JNIUtil::throwNullPointerException(
return;
env->ThrowNew(clazz, message);
- setExceptionThrown();
- env->DeleteLocalRef(clazz);
}
svn_error_t *JNIUtil::preprocessPath(const char *&path, apr_pool_t *pool)
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIUtil.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIUtil.h?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIUtil.h (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/JNIUtil.h Wed Oct 30 01:04:22 2013
@@ -73,17 +73,18 @@ class JNIUtil
static apr_time_t getDate(jobject jdate);
static void logMessage(const char *message);
static int getLogLevel();
- static char *getFormatBuffer();
static void initLogFile(int level, jstring path);
static jstring makeJString(const char *txt);
- static bool isJavaExceptionThrown();
static JNIEnv *getEnv();
- static void setEnv(JNIEnv *);
/**
* @return Whether any Throwable has been raised.
*/
- static bool isExceptionThrown();
+ static bool isExceptionThrown() { return isJavaExceptionThrown(); }
+ static bool isJavaExceptionThrown()
+ {
+ return getEnv()->ExceptionCheck();
+ }
static void handleAPRError(int error, const char *op);
@@ -149,7 +150,6 @@ class JNIUtil
static bool JNIGlobalInit(JNIEnv *env);
static bool JNIInit(JNIEnv *env);
static bool initializeJNIRuntime();
- enum { formatBufferSize = 2048 };
enum { noLog, errorLog, exceptionLog, entryLog } LogLevel;
/**
@@ -161,11 +161,6 @@ class JNIUtil
static void wrappedHandleSVNError(svn_error_t *err);
static void putErrorsInTrace(svn_error_t *err,
std::vector<jobject> &stackTrace);
- /**
- * Set the appropriate global or thread-local flag that an exception
- * has been thrown to @a flag.
- */
- static void setExceptionThrown(bool flag = true);
/**
* The log level of this module.
@@ -210,11 +205,6 @@ class JNIUtil
static JNIEnv *g_initEnv;
/**
- * Fuffer the format error messages during initialization.
- */
- static char g_initFormatBuffer[formatBufferSize];
-
- /**
* The stream to write log messages to.
*/
static std::ofstream g_logStream;
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/OperationContext.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/OperationContext.cpp?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/OperationContext.cpp (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/OperationContext.cpp Wed Oct 30 01:04:22 2013
@@ -153,10 +153,10 @@ OperationContext::getAuthBaton(SVN::Pool
/* Use the prompter (if available) to prompt for password and cert
* caching. */
- svn_auth_plaintext_prompt_func_t plaintext_prompt_func = NULL;
- void *plaintext_prompt_baton = NULL;
+ svn_auth_plaintext_prompt_func_t plaintext_prompt_func;
+ void *plaintext_prompt_baton;
svn_auth_plaintext_passphrase_prompt_func_t plaintext_passphrase_prompt_func;
- void *plaintext_passphrase_prompt_baton = NULL;
+ void *plaintext_passphrase_prompt_baton;
if (m_prompter != NULL)
{
@@ -165,6 +165,13 @@ OperationContext::getAuthBaton(SVN::Pool
plaintext_passphrase_prompt_func = Prompter::plaintext_passphrase_prompt;
plaintext_passphrase_prompt_baton = m_prompter;
}
+ else
+ {
+ plaintext_prompt_func = NULL;
+ plaintext_prompt_baton = NULL;
+ plaintext_passphrase_prompt_func = NULL;
+ plaintext_passphrase_prompt_baton = NULL;
+ }
/* The main disk-caching auth providers, for both
* 'username/password' creds and 'username' creds. */
@@ -176,15 +183,6 @@ OperationContext::getAuthBaton(SVN::Pool
svn_auth_get_username_provider(&provider, pool);
APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
- /* The server-cert, client-cert, and client-cert-password providers. */
- SVN_JNI_ERR(
- svn_auth_get_platform_specific_provider(
- &provider, "windows", "ssl_server_trust", pool),
- NULL);
-
- if (provider)
- APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
-
svn_auth_get_ssl_server_trust_file_provider(&provider, pool);
APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
svn_auth_get_ssl_client_cert_file_provider(&provider, pool);
@@ -494,6 +492,12 @@ public:
#endif
}
+ ~TunnelContext()
+ {
+ apr_file_close(request_out);
+ apr_file_close(response_in);
+ }
+
apr_file_t *request_in;
apr_file_t *request_out;
apr_file_t *response_in;
@@ -566,6 +570,7 @@ OperationContext::openTunnel(apr_file_t
svn_error_wrap_apr(tc->status, _("Could not open tunnel streams")));
}
+ *tunnel_context = tc;
*request = tc->request_out;
*response = tc->response_in;
@@ -607,7 +612,6 @@ OperationContext::openTunnel(apr_file_t
jtunnel_name, juser, jhostname, jint(port)),
SVN_ERR_BASE);
- *tunnel_context = NULL;
return SVN_NO_ERROR;
}
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/SVNClient.cpp?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/SVNClient.cpp Wed Oct 30 01:04:22 2013
@@ -1343,10 +1343,10 @@ jstring SVNClient::getVersionInfo(const
}
else
{
- char *message = JNIUtil::getFormatBuffer();
- apr_snprintf(message, JNIUtil::formatBufferSize,
+ char buffer[2048];
+ apr_snprintf(buffer, sizeof(buffer),
_("'%s' not versioned, and not exported\n"), path);
- return JNIUtil::makeJString(message);
+ return JNIUtil::makeJString(buffer);
}
}
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.cpp?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.cpp (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_TunnelChannel.cpp Wed Oct 30 01:04:22 2013
@@ -55,12 +55,14 @@ apr_file_t* get_file_descriptor(jlong jf
void throw_IOException(const char* message, apr_status_t status)
{
- char buf[1024];
- apr_strerror(status, buf, sizeof(buf) - 1);
-
std::string msg(message);
- msg += ": ";
- msg += buf;
+ if (status)
+ {
+ char buf[1024];
+ apr_strerror(status, buf, sizeof(buf) - 1);
+ msg += ": ";
+ msg += buf;
+ }
JNIUtil::raiseThrowable("java/io/IOException", msg.c_str());
}
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java Wed Oct 30 01:04:22 2013
@@ -612,7 +612,16 @@ public class ClientNotifyInformation ext
/** A move in the working copy has been broken
* @since New in 1.8. */
- move_broken ("move broken");
+ move_broken ("move broken"),
+
+ /** Running cleanup on an external module.
+ * @since New in 1.9. */
+ cleanup_external ("cleanup external"),
+
+ /** The operation failed because the operation (E.g. commit)
+ * is only valid if the operation includes this path.
+ * @since New in 1.9. */
+ failed_requires_target ("failed requires target");
/**
* The description of the action.
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Revision.java Wed Oct 30 01:04:22 2013
@@ -81,6 +81,7 @@ public class Revision implements java.io
case head : return "HEAD";
case previous : return "PREV";
case working : return "WORKING";
+ case unspecified: return "UNSPECIFIED";
}
return super.toString();
}
@@ -155,6 +156,11 @@ public class Revision implements java.io
public static final Revision START = new Revision(Kind.unspecified);
/**
+ * unspecified revision
+ */
+ public static final Revision UNSPECIFIED = START;
+
+ /**
* last committed revision, needs working copy
*/
public static final Revision COMMITTED = new Revision(Kind.committed);
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/RequestChannel.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/RequestChannel.java?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/RequestChannel.java (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/RequestChannel.java Wed Oct 30 01:04:22 2013
@@ -26,6 +26,7 @@ package org.apache.subversion.javahl.uti
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.ReadableByteChannel;
+import java.nio.channels.ClosedChannelException;
/* The following channel subclasses are used by the native
implementation of the tunnel management code. */
@@ -41,7 +42,15 @@ class RequestChannel
public int read(ByteBuffer dst) throws IOException
{
- return nativeRead(nativeChannel, dst);
+ long channel = nativeChannel.get();
+ if (channel != 0)
+ try {
+ return nativeRead(channel, dst);
+ } catch (IOException ex) {
+ nativeChannel.set(0); // Close the channel
+ throw ex;
+ }
+ throw new ClosedChannelException();
}
private static native int nativeRead(long nativeChannel, ByteBuffer dst)
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ResponseChannel.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ResponseChannel.java?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ResponseChannel.java (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/ResponseChannel.java Wed Oct 30 01:04:22 2013
@@ -26,6 +26,7 @@ package org.apache.subversion.javahl.uti
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.WritableByteChannel;
+import java.nio.channels.ClosedChannelException;
/* The following channel subclasses are used by the native
implementation of the tunnel management code. */
@@ -41,7 +42,15 @@ class ResponseChannel
public int write(ByteBuffer src) throws IOException
{
- return nativeWrite(nativeChannel, src);
+ long channel = this.nativeChannel.get();
+ if (channel != 0)
+ try {
+ return nativeWrite(channel, src);
+ } catch (IOException ex) {
+ nativeChannel.set(0); // Close the channel
+ throw ex;
+ }
+ throw new ClosedChannelException();
}
private static native int nativeWrite(long nativeChannel, ByteBuffer src)
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/TunnelChannel.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/TunnelChannel.java?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/TunnelChannel.java (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/src/org/apache/subversion/javahl/util/TunnelChannel.java Wed Oct 30 01:04:22 2013
@@ -26,6 +26,7 @@ package org.apache.subversion.javahl.uti
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.Channel;
+import java.util.concurrent.atomic.AtomicLong;
/* The following channel subclasses are used by the native
implementation of the tunnel management code. */
@@ -34,22 +35,23 @@ abstract class TunnelChannel implements
{
protected TunnelChannel(long nativeChannel)
{
- this.nativeChannel = nativeChannel;
+ this.nativeChannel = new AtomicLong(nativeChannel);
}
public boolean isOpen()
{
- return (nativeChannel != 0);
+ return (nativeChannel.get() != 0);
}
public void close() throws IOException
{
- nativeClose(nativeChannel);
- nativeChannel = 0;
+ long channel = nativeChannel.getAndSet(0);
+ if (channel != 0)
+ nativeClose(channel);
}
private native static void nativeClose(long nativeChannel)
throws IOException;
- protected long nativeChannel;
+ protected AtomicLong nativeChannel;
}
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Wed Oct 30 01:04:22 2013
@@ -1058,6 +1058,37 @@ public class BasicTests extends SVNTests
}
/**
+ * Check that half a move cannot be committed.
+ * @since 1.9
+ */
+ public void testCommitPartialMove() throws Throwable
+ {
+ OneTest thisTest = new OneTest();
+ String root = thisTest.getWorkingCopy().getAbsolutePath();
+ ClientException caught = null;
+
+ Set<String> srcPaths = new HashSet<String>(1);
+ srcPaths.add(root + "/A/B/E/alpha");
+ client.move(srcPaths, root + "/moved-alpha",
+ false, false, false, false, false, null, null, null);
+
+ try {
+ client.commit(srcPaths, Depth.infinity, false, false, null, null,
+ new ConstMsg("Commit half of a move"), null);
+ } catch (ClientException ex) {
+ caught = ex;
+ }
+
+ assertNotNull("Commit of partial move did not fail", caught);
+
+ List<ClientException.ErrorMessage> msgs = caught.getAllMessages();
+ assertTrue(msgs.size() >= 3);
+ assertTrue(msgs.get(0).getMessage().startsWith("Illegal target"));
+ assertTrue(msgs.get(1).getMessage().startsWith("Commit failed"));
+ assertTrue(msgs.get(2).getMessage().startsWith("Cannot commit"));
+ }
+
+ /**
* Assert that the first merge source suggested for
* <code>destPath</code> at {@link Revision#WORKING} and {@link
* Revision#HEAD} is equivalent to <code>expectedSrc</code>.
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/tests/org/apache/subversion/javahl/UtilTests.java Wed Oct 30 01:04:22 2013
@@ -28,8 +28,6 @@ import java.io.FileOutputStream;
import java.io.ByteArrayOutputStream;
import java.util.Arrays;
-import org.junit.Assert;
-
/**
* Tests the JavaHL SVNUtil APIs.
*/
@@ -100,7 +98,7 @@ public class UtilTests extends SVNTests
"-original\n" +
"+modified\n" +
" \n N-3\n N-2\n").getBytes();
- Assert.assertArrayEquals(expected, result.toByteArray());
+ assertTrue(Arrays.equals(expected, result.toByteArray()));
}
public void testFileMerge() throws Throwable
@@ -135,6 +133,6 @@ public class UtilTests extends SVNTests
"latest\n" +
">>>>>>> local\n" +
"\nN-3\nN-2\nN-1\nN\n").getBytes();
- Assert.assertArrayEquals(expected, result.toByteArray());
+ assertTrue(Arrays.equals(expected, result.toByteArray()));
}
}
Modified: subversion/branches/fsfs-improvements/subversion/bindings/swig/perl/native/Makefile.PL.in
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/swig/perl/native/Makefile.PL.in?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/swig/perl/native/Makefile.PL.in (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/swig/perl/native/Makefile.PL.in Wed Oct 30 01:04:22 2013
@@ -40,7 +40,7 @@ my @modules = qw/client delta fs ra repo
my @ldpaths = (abs_path($swig_builddir) . "/perl/libsvn_swig_perl/.libs",
map { abs_path($svnlib_builddir) . "/libsvn_$_/.libs" }
@modules, qw/diff subr ra_local ra_svn ra_serf
- fs_base fs_util fs_fs/);
+ fs_base fs_util fs_fs fs_x/);
my @ldmodules = map {"-lsvn_$_-1"} (@modules, qw/diff subr/);
Modified: subversion/branches/fsfs-improvements/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c Wed Oct 30 01:04:22 2013
@@ -1645,13 +1645,13 @@ static VALUE
invoke_callback(VALUE baton, VALUE pool)
{
callback_baton_t *cbb = (callback_baton_t *)baton;
- VALUE sub_pool;
+ VALUE subpool;
VALUE argv[1];
argv[0] = pool;
- svn_swig_rb_get_pool(1, argv, Qnil, &sub_pool, NULL);
- cbb->pool = sub_pool;
- return rb_ensure(callback, baton, callback_ensure, sub_pool);
+ svn_swig_rb_get_pool(1, argv, Qnil, &subpool, NULL);
+ cbb->pool = subpool;
+ return rb_ensure(callback, baton, callback_ensure, subpool);
}
static VALUE
Modified: subversion/branches/fsfs-improvements/subversion/include/private/svn_auth_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/include/private/svn_auth_private.h?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/include/private/svn_auth_private.h (original)
+++ subversion/branches/fsfs-improvements/subversion/include/private/svn_auth_private.h Wed Oct 30 01:04:22 2013
@@ -37,6 +37,24 @@
extern "C" {
#endif /* __cplusplus */
+/** SSL server authority verification credential type.
+ *
+ * The followin auth parameters are available to the providers:
+ *
+ * - @c SVN_AUTH_PARAM_SSL_SERVER_FAILURES (@c apr_uint32_t*)
+ * - @c SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO
+ * (@c svn_auth_ssl_server_cert_info_t*)
+ *
+ * The following optional auth parameters are relevant to the providers:
+ *
+ * - @c SVN_AUTH_PARAM_NO_AUTH_CACHE (@c void*)
+ *
+ * @since New in 1.9.
+ */
+#define SVN_AUTH_CRED_SSL_SERVER_AUTHORITY "svn.ssl.server.authority"
+
+
+
/* If you add a password type for a provider which stores
* passwords on disk in encrypted form, remember to update
* svn_auth__simple_save_creds_helper. Otherwise it will be
@@ -213,6 +231,25 @@ svn_auth__ssl_client_cert_pw_set(svn_boo
svn_boolean_t non_interactive,
apr_pool_t *pool);
+#if (defined(WIN32) && !defined(__MINGW32__)) || defined(DOXYGEN)
+/**
+ * Set @a *provider to an authentication provider that implements
+ * ssl authority verification via the Windows CryptoApi.
+ *
+ * This provider automatically validates authority certificates with
+ * the CryptoApi, like Internet Explorer and the Windows network API do.
+ * This allows the rollout of root certificates via Windows Domain
+ * policies, instead of Subversion specific configuration.
+ *
+ * @note This function is only available on Windows.
+ */
+void
+svn_auth__get_windows_ssl_server_authority_provider(
+ svn_auth_provider_object_t **provider,
+ apr_pool_t *pool);
+#endif
+
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: subversion/branches/fsfs-improvements/subversion/include/private/svn_dep_compat.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/include/private/svn_dep_compat.h?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/include/private/svn_dep_compat.h (original)
+++ subversion/branches/fsfs-improvements/subversion/include/private/svn_dep_compat.h Wed Oct 30 01:04:22 2013
@@ -115,6 +115,19 @@ typedef apr_uint32_t apr_uintptr_t;
#endif
/**
+ * APR keeps a few interesting defines hidden away in its private
+ * headers apr_arch_file_io.h, so we redefined them here.
+ *
+ * @since New in 1.9
+ */
+#ifndef APR_FREADONLY
+#define APR_FREADONLY 0x10000000
+#endif
+#ifndef APR_OPENINFO
+#define APR_OPENINFO 0x00100000
+#endif
+
+/**
* Check at compile time if the Serf version is at least a certain
* level.
* @param major The major version component of the version checked
Modified: subversion/branches/fsfs-improvements/subversion/include/private/svn_sqlite.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/include/private/svn_sqlite.h?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/include/private/svn_sqlite.h (original)
+++ subversion/branches/fsfs-improvements/subversion/include/private/svn_sqlite.h Wed Oct 30 01:04:22 2013
@@ -372,6 +372,9 @@ svn_sqlite__result_null(svn_sqlite__cont
void
svn_sqlite__result_int64(svn_sqlite__context_t *sctx, apr_int64_t val);
+void
+svn_sqlite__result_error(svn_sqlite__context_t *sctx, const char *msg, int num);
+
/* --------------------------------------------------------------------- */
Modified: subversion/branches/fsfs-improvements/subversion/include/private/svn_subr_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/include/private/svn_subr_private.h?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/include/private/svn_subr_private.h (original)
+++ subversion/branches/fsfs-improvements/subversion/include/private/svn_subr_private.h Wed Oct 30 01:04:22 2013
@@ -469,8 +469,21 @@ svn_root_pools__release_pool(apr_pool_t
*/
/* Future attempts to modify CFG will trigger an assertion. */
-void svn_config__set_read_only(svn_config_t *cfg,
- apr_pool_t *scratch_pool);
+void
+svn_config__set_read_only(svn_config_t *cfg,
+ apr_pool_t *scratch_pool);
+
+/* Return TRUE, if CFG cannot be modified. */
+svn_boolean_t
+svn_config__is_read_only(svn_config_t *cfg);
+
+/* Return TRUE, if OPTION in SECTION in CFG exists and does not require
+ * further expansion (due to either containing no placeholders or already
+ * having been expanded). */
+svn_boolean_t
+svn_config__is_expanded(svn_config_t *cfg,
+ const char *section,
+ const char *option);
/** @} */
Modified: subversion/branches/fsfs-improvements/subversion/include/private/svn_utf_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/include/private/svn_utf_private.h?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/include/private/svn_utf_private.h (original)
+++ subversion/branches/fsfs-improvements/subversion/include/private/svn_utf_private.h Wed Oct 30 01:04:22 2013
@@ -93,6 +93,28 @@ svn_utf__cstring_from_utf8_fuzzy(const c
const char *,
apr_pool_t *));
+
+#if defined(WIN32)
+/* On Windows: Convert the UTF-8 string SRC to UTF-16.
+ If PREFIX is not NULL, prepend it to the converted result.
+ The result, if not empty, will be allocated in RESULT_POOL. */
+svn_error_t *
+svn_utf__win32_utf8_to_utf16(const WCHAR **result,
+ const char *src,
+ const WCHAR *prefix,
+ apr_pool_t *result_pool);
+
+/* On Windows: Convert the UTF-16 string SRC to UTF-8.
+ If PREFIX is not NULL, prepend it to the converted result.
+ The result, if not empty, will be allocated in RESULT_POOL. */
+svn_error_t *
+svn_utf__win32_utf16_to_utf8(const char **result,
+ const WCHAR *src,
+ const char *prefix,
+ apr_pool_t *result_pool);
+#endif /* WIN32*/
+
+
/* A constant used for many length parameters in the utf8proc wrappers
* to indicate that the length of a string is unknonw. */
#define SVN_UTF__UNKNOWN_LENGTH ((apr_size_t) -1)
Modified: subversion/branches/fsfs-improvements/subversion/include/svn_dirent_uri.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/include/svn_dirent_uri.h?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/include/svn_dirent_uri.h (original)
+++ subversion/branches/fsfs-improvements/subversion/include/svn_dirent_uri.h Wed Oct 30 01:04:22 2013
@@ -202,7 +202,7 @@ svn_dirent_join(const char *base,
apr_pool_t *result_pool);
/** Join multiple components onto a @a base dirent. The components are
- * terminated by a @c NULL.
+ * terminated by a @c SVN_VA_NULL.
*
* If any component is the empty string, it will be ignored.
*
Modified: subversion/branches/fsfs-improvements/subversion/include/svn_fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/include/svn_fs.h?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/include/svn_fs.h (original)
+++ subversion/branches/fsfs-improvements/subversion/include/svn_fs.h Wed Oct 30 01:04:22 2013
@@ -1399,8 +1399,6 @@ svn_fs_path_change2_create(const svn_fs_
* Allocate and return a hash @a *changed_paths2_p containing descriptions
* of the paths changed under @a root. The hash is keyed with
* <tt>const char *</tt> paths, and has #svn_fs_path_change2_t * values.
- * @a move_behavior determines how moves are being detected and reported;
- * see #svn_fs_move_behavior_t for the various options.
*
* Callers can assume that this function takes time proportional to
* the amount of data output, and does not need to do tree crawls;
@@ -1410,22 +1408,8 @@ svn_fs_path_change2_create(const svn_fs_
*
* Use @a pool for all allocations, including the hash and its values.
*
- * @since New in 1.9.
- */
-svn_error_t *
-svn_fs_paths_changed3(apr_hash_t **changed_paths2_p,
- svn_fs_root_t *root,
- svn_move_behavior_t move_behavior,
- apr_pool_t *pool);
-
-
-/** Same as svn_fs_paths_changed3 but with @a move_behavior set to
- * #svn_fs_move_behavior_no_moves.
- *
- * @deprecated Provided for backward compatibility with the 1.8 API.
* @since New in 1.6.
*/
-SVN_DEPRECATED
svn_error_t *
svn_fs_paths_changed2(apr_hash_t **changed_paths2_p,
svn_fs_root_t *root,
Modified: subversion/branches/fsfs-improvements/subversion/include/svn_path.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/include/svn_path.h?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/include/svn_path.h (original)
+++ subversion/branches/fsfs-improvements/subversion/include/svn_path.h Wed Oct 30 01:04:22 2013
@@ -114,7 +114,7 @@ char *
svn_path_join(const char *base, const char *component, apr_pool_t *pool);
/** Join multiple components onto a @a base path, allocated in @a pool. The
- * components are terminated by a @c NULL.
+ * components are terminated by a @c SVN_VA_NULL.
*
* If any component is the empty string, it will be ignored.
*
Modified: subversion/branches/fsfs-improvements/subversion/include/svn_ra.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/include/svn_ra.h?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/include/svn_ra.h (original)
+++ subversion/branches/fsfs-improvements/subversion/include/svn_ra.h Wed Oct 30 01:04:22 2013
@@ -1621,7 +1621,7 @@ svn_ra_get_log3(svn_ra_session_t *sessio
/**
* Similar to svn_ra_get_log3(), but with @a move_behavior being set to
- * #svn_fs_move_behavior_no_moves.
+ * #svn_move_behavior_no_moves.
*
* @since New in 1.5.
* @deprecated Provided for backward compatibility with the 1.8 API.
Modified: subversion/branches/fsfs-improvements/subversion/include/svn_types.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/include/svn_types.h?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/include/svn_types.h (original)
+++ subversion/branches/fsfs-improvements/subversion/include/svn_types.h Wed Oct 30 01:04:22 2013
@@ -70,7 +70,13 @@ extern "C" {
*/
#ifndef SVN_EXPERIMENTAL
# if !defined(SWIGPERL) && !defined(SWIGPYTHON) && !defined(SWIGRUBY)
-# if !defined(__clang__) && defined(__GNUC__) \
+# if defined(__has_attribute)
+# if __has_attribute(__warning__)
+# define SVN_EXPERIMENTAL __attribute__((warning("experimental function used")))
+# else
+# define SVN_EXPERIMENTAL
+# endif
+# elif !defined(__llvm__) && defined(__GNUC__) \
&& (__GNUC__ >= 4 || (__GNUC__==3 && __GNUC_MINOR__>=1))
# define SVN_EXPERIMENTAL __attribute__((warning("experimental function used")))
# elif defined(_MSC_VER) && _MSC_VER >= 1300
@@ -125,6 +131,15 @@ typedef int svn_boolean_t;
+/** Declaration of the null pointer constant type. */
+struct svn_null_pointer_constant_stdarg_sentinel_t;
+
+/** Null pointer constant used as a sentinel in variable argument lists. */
+#define SVN_VA_NULL ((struct svn_null_pointer_constant_stdarg_sentinel_t*)0)
+/* See? (char*)NULL -- They have the same length, but the cast looks ugly. */
+
+
+
/** Subversion error object.
*
* Defined here, rather than in svn_error.h, to avoid a recursive @#include
Modified: subversion/branches/fsfs-improvements/subversion/include/svn_xml.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/include/svn_xml.h?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/include/svn_xml.h (original)
+++ subversion/branches/fsfs-improvements/subversion/include/svn_xml.h Wed Oct 30 01:04:22 2013
@@ -312,7 +312,7 @@ svn_xml_make_header(svn_stringbuf_t **st
* If @a *str is @c NULL, set @a *str to a new stringbuf allocated
* in @a pool, else append to the existing stringbuf there.
*
- * Take the tag's attributes from varargs, a NULL-terminated list of
+ * Take the tag's attributes from varargs, a SVN_VA_NULL-terminated list of
* alternating <tt>char *</tt> key and <tt>char *</tt> val. Do xml-escaping
* on each val.
*
Modified: subversion/branches/fsfs-improvements/subversion/libsvn_client/cmdline.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/libsvn_client/cmdline.c?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/libsvn_client/cmdline.c (original)
+++ subversion/branches/fsfs-improvements/subversion/libsvn_client/cmdline.c Wed Oct 30 01:04:22 2013
@@ -278,7 +278,7 @@ svn_client_args_to_target_array2(apr_arr
}
}
- target = apr_pstrcat(pool, true_target, peg_rev, (char *)NULL);
+ target = apr_pstrcat(pool, true_target, peg_rev, SVN_VA_NULL);
if (rel_url_found)
{
@@ -338,7 +338,7 @@ svn_client_args_to_target_array2(apr_arr
SVN_ERR(svn_opt__arg_canonicalize_url(&true_target, abs_target,
pool));
- target = apr_pstrcat(pool, true_target, peg_rev, (char *)NULL);
+ target = apr_pstrcat(pool, true_target, peg_rev, SVN_VA_NULL);
}
APR_ARRAY_PUSH(*targets_p, const char *) = target;
Modified: subversion/branches/fsfs-improvements/subversion/libsvn_client/commit_util.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/libsvn_client/commit_util.c?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/libsvn_client/commit_util.c (original)
+++ subversion/branches/fsfs-improvements/subversion/libsvn_client/commit_util.c Wed Oct 30 01:04:22 2013
@@ -966,17 +966,19 @@ struct handle_descendants_baton
void *cancel_baton;
svn_client__check_url_kind_t check_url_func;
void *check_url_baton;
+ svn_client__committables_t *committables;
};
/* Helper for the commit harvesters */
static svn_error_t *
handle_descendants(void *baton,
- const void *key, apr_ssize_t klen, void *val,
- apr_pool_t *pool)
+ const void *key, apr_ssize_t klen, void *val,
+ apr_pool_t *pool)
{
struct handle_descendants_baton *hdb = baton;
apr_array_header_t *commit_items = val;
apr_pool_t *iterpool = svn_pool_create(pool);
+ const char *repos_root_url = key;
int i;
for (i = 0; i < commit_items->nelts; i++)
@@ -1002,32 +1004,64 @@ handle_descendants(void *baton,
for (j = 0; j < absent_descendants->nelts; j++)
{
- int k;
- svn_boolean_t found_item = FALSE;
svn_node_kind_t kind;
+ svn_client_commit_item3_t *desc_item;
const char *relpath = APR_ARRAY_IDX(absent_descendants, j,
const char *);
const char *local_abspath = svn_dirent_join(item->path, relpath,
iterpool);
- /* If the path has a commit operation, we do nothing.
- (It will be deleted by the operation) */
- for (k = 0; k < commit_items->nelts; k++)
+ /* ### Need a sub-iterpool? */
+
+
+ /* We found a 'not present' descendant during a copy (at op_depth>0),
+ this is most commonly caused by copying some mixed revision tree.
+
+ In this case not present can imply that the node does not exist
+ in the parent revision, or that the node does. But we want to copy
+ the working copy state in which it does not exist, but might be
+ replaced. */
+
+ desc_item = svn_hash_gets(hdb->committables->by_path, local_abspath);
+
+ /* If the path has a commit operation (possibly at an higher
+ op_depth, we might want to turn an add in a replace. */
+ if (desc_item)
{
- svn_client_commit_item3_t *cmt_item =
- APR_ARRAY_IDX(commit_items, k, svn_client_commit_item3_t *);
+ const char *dir;
+ svn_boolean_t found_intermediate = FALSE;
+
+ if (desc_item->state_flags & SVN_CLIENT_COMMIT_ITEM_DELETE)
+ continue; /* We already have a delete or replace */
+ else if (!(desc_item->state_flags & SVN_CLIENT_COMMIT_ITEM_ADD))
+ continue; /* Not a copy/add, just a modification */
- if (! strcmp(cmt_item->path, local_abspath))
+ dir = svn_dirent_dirname(local_abspath, iterpool);
+
+ while (strcmp(dir, item->path))
{
- found_item = TRUE;
- break;
+ svn_client_commit_item3_t *i_item;
+
+ i_item = svn_hash_gets(hdb->committables->by_path, dir);
+
+ if (i_item)
+ {
+ if ((i_item->state_flags & SVN_CLIENT_COMMIT_ITEM_DELETE)
+ || (i_item->state_flags & SVN_CLIENT_COMMIT_ITEM_ADD))
+ {
+ found_intermediate = TRUE;
+ break;
+ }
+ }
+ dir = svn_dirent_dirname(dir, iterpool);
}
- }
- if (found_item)
- continue; /* We have an explicit delete or replace for this path */
+ if (found_intermediate)
+ continue; /* Some intermediate ancestor is an add or delete */
- /* ### Need a sub-iterpool? */
+ /* Fall through to detect if we need to turn the add in a
+ replace. */
+ }
if (hdb->check_url_func)
{
@@ -1045,25 +1079,35 @@ handle_descendants(void *baton,
else
kind = svn_node_unknown; /* 'Ok' for a delete of something */
- {
- /* Add a new commit item that describes the delete */
- apr_pool_t *result_pool = commit_items->pool;
- svn_client_commit_item3_t *new_item
- = svn_client_commit_item3_create(result_pool);
-
- new_item->path = svn_dirent_join(item->path, relpath,
- result_pool);
- new_item->kind = kind;
- new_item->url = svn_path_url_add_component2(item->url, relpath,
- result_pool);
- new_item->revision = SVN_INVALID_REVNUM;
- new_item->state_flags = SVN_CLIENT_COMMIT_ITEM_DELETE;
- new_item->incoming_prop_changes = apr_array_make(result_pool, 1,
- sizeof(svn_prop_t *));
-
- APR_ARRAY_PUSH(commit_items, svn_client_commit_item3_t *)
- = new_item;
- }
+ if (desc_item)
+ {
+ /* Extend the existing add/copy item to create a replace */
+ desc_item->state_flags |= SVN_CLIENT_COMMIT_ITEM_DELETE;
+ continue;
+ }
+
+ /* Add a new commit item that describes the delete */
+
+ SVN_ERR(add_committable(hdb->committables,
+ svn_dirent_join(item->path, relpath,
+ iterpool),
+ kind,
+ repos_root_url,
+ svn_uri_skip_ancestor(
+ repos_root_url,
+ svn_path_url_add_component2(item->url,
+ relpath,
+ iterpool),
+ iterpool),
+ SVN_INVALID_REVNUM,
+ NULL /* copyfrom_relpath */,
+ SVN_INVALID_REVNUM,
+ NULL /* moved_from_abspath */,
+ SVN_CLIENT_COMMIT_ITEM_DELETE,
+ NULL /* lock tokens */,
+ NULL /* lock */,
+ commit_items->pool,
+ iterpool));
}
}
@@ -1181,6 +1225,7 @@ svn_client__harvest_committables(svn_cli
hdb.cancel_baton = ctx->cancel_baton;
hdb.check_url_func = check_url_func;
hdb.check_url_baton = check_url_baton;
+ hdb.committables = *committables;
SVN_ERR(svn_iter_apr_hash(NULL, (*committables)->by_repository,
handle_descendants, &hdb, iterpool));
@@ -1274,6 +1319,7 @@ harvest_copy_committables(void *baton, v
hdb.cancel_baton = btn->ctx->cancel_baton;
hdb.check_url_func = btn->check_url_func;
hdb.check_url_baton = btn->check_url_baton;
+ hdb.committables = btn->committables;
SVN_ERR(svn_iter_apr_hash(NULL, btn->committables->by_repository,
handle_descendants, &hdb, pool));
Modified: subversion/branches/fsfs-improvements/subversion/libsvn_client/list.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/libsvn_client/list.c?rev=1536949&r1=1536948&r2=1536949&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/libsvn_client/list.c (original)
+++ subversion/branches/fsfs-improvements/subversion/libsvn_client/list.c Wed Oct 30 01:04:22 2013
@@ -128,6 +128,10 @@ get_dir_contents(apr_uint32_t dirent_fie
}
SVN_ERR(err);
+ /* Locks will often be empty. Prevent pointless lookups in that case. */
+ if (locks && apr_hash_count(locks) == 0)
+ locks = NULL;
+
/* Filter out svn:externals from all properties hash. */
if (prop_hash)
prop_val = svn_hash_gets(prop_hash, SVN_PROP_EXTERNALS);