Author: ivan
Date: Sat Feb 14 11:15:05 2015
New Revision: 1659777
URL: http://svn.apache.org/r1659777
Log:
On the remove-log-addressing branch: Merge changes from trunk.
Modified:
subversion/branches/remove-log-addressing/ (props changed)
subversion/branches/remove-log-addressing/.ycm_extra_conf.py
subversion/branches/remove-log-addressing/CHANGES
subversion/branches/remove-log-addressing/autogen.sh
subversion/branches/remove-log-addressing/build/generator/gen_msvc_dsp.py
subversion/branches/remove-log-addressing/build/generator/gen_win.py
subversion/branches/remove-log-addressing/build/generator/gen_win_dependencies.py
subversion/branches/remove-log-addressing/contrib/client-side/svncopy/svncopy.pl.in
subversion/branches/remove-log-addressing/notes/ (props changed)
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/EditorProxy.h
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/SVNClient.cpp
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/SVNClient.h
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/StateReporter.cpp
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.cpp
subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
subversion/branches/remove-log-addressing/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
subversion/branches/remove-log-addressing/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
subversion/branches/remove-log-addressing/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
subversion/branches/remove-log-addressing/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/test/test_fs.rb
subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/test/util.rb
subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/test/windows_util.rb
subversion/branches/remove-log-addressing/subversion/include/private/svn_packed_data.h
subversion/branches/remove-log-addressing/subversion/include/private/svn_repos_private.h
subversion/branches/remove-log-addressing/subversion/include/private/svn_sorts_private.h
subversion/branches/remove-log-addressing/subversion/include/private/svn_subr_private.h
subversion/branches/remove-log-addressing/subversion/include/private/svn_wc_private.h
subversion/branches/remove-log-addressing/subversion/include/svn_auth.h
subversion/branches/remove-log-addressing/subversion/include/svn_cache_config.h
subversion/branches/remove-log-addressing/subversion/include/svn_client.h
subversion/branches/remove-log-addressing/subversion/include/svn_cmdline.h
subversion/branches/remove-log-addressing/subversion/include/svn_diff.h
subversion/branches/remove-log-addressing/subversion/include/svn_fs.h
subversion/branches/remove-log-addressing/subversion/include/svn_io.h
subversion/branches/remove-log-addressing/subversion/include/svn_props.h
subversion/branches/remove-log-addressing/subversion/include/svn_ra.h
subversion/branches/remove-log-addressing/subversion/include/svn_repos.h
subversion/branches/remove-log-addressing/subversion/include/svn_string.h
subversion/branches/remove-log-addressing/subversion/libsvn_client/blame.c
subversion/branches/remove-log-addressing/subversion/libsvn_client/client.h
subversion/branches/remove-log-addressing/subversion/libsvn_client/commit.c
subversion/branches/remove-log-addressing/subversion/libsvn_client/commit_util.c
subversion/branches/remove-log-addressing/subversion/libsvn_client/copy.c
subversion/branches/remove-log-addressing/subversion/libsvn_client/deprecated.c
subversion/branches/remove-log-addressing/subversion/libsvn_client/diff.c
subversion/branches/remove-log-addressing/subversion/libsvn_client/externals.c
subversion/branches/remove-log-addressing/subversion/libsvn_client/log.c
subversion/branches/remove-log-addressing/subversion/libsvn_client/merge.c
subversion/branches/remove-log-addressing/subversion/libsvn_client/patch.c
subversion/branches/remove-log-addressing/subversion/libsvn_client/prop_commands.c
subversion/branches/remove-log-addressing/subversion/libsvn_client/ra.c
subversion/branches/remove-log-addressing/subversion/libsvn_client/update.c
subversion/branches/remove-log-addressing/subversion/libsvn_delta/svndiff.c
subversion/branches/remove-log-addressing/subversion/libsvn_diff/parse-diff.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs/fs-loader.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_base/lock.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/cached_data.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/fs_fs.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/hotcopy.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/id.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/lock.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/low_level.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/recovery.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/revprops.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/revprops.h
subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/stats.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_fs/tree.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/ (props
changed)
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/cached_data.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/changes.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/dag.h
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/fs.h
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/fs_id.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/fs_x.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/hotcopy.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/hotcopy.h
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/index.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/index.h
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/lock.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/lock.h
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/low_level.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/low_level.h
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/noderevs.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/pack.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/reps.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/rev_file.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/revprops.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/revprops.h
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/string_table.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/string_table.h
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/transaction.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/tree.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/util.c
subversion/branches/remove-log-addressing/subversion/libsvn_fs_x/verify.c
subversion/branches/remove-log-addressing/subversion/libsvn_ra/ra_loader.c
subversion/branches/remove-log-addressing/subversion/libsvn_ra_local/ra_plugin.c
subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/ra_serf.h
subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/serf.c
subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/update.c
subversion/branches/remove-log-addressing/subversion/libsvn_ra_serf/util.c
subversion/branches/remove-log-addressing/subversion/libsvn_ra_svn/client.c
subversion/branches/remove-log-addressing/subversion/libsvn_ra_svn/marshal.c
subversion/branches/remove-log-addressing/subversion/libsvn_repos/authz_pool.c
subversion/branches/remove-log-addressing/subversion/libsvn_repos/config_pool.c
subversion/branches/remove-log-addressing/subversion/libsvn_repos/dump.c
subversion/branches/remove-log-addressing/subversion/libsvn_repos/fs-wrap.c
subversion/branches/remove-log-addressing/subversion/libsvn_repos/log.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/bit_array.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/cache-membuffer.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/config.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/dirent_uri.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/dso.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/fnv1a.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/gpg_agent.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/hash.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/io.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/object_pool.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/packed_data.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/prefix_string.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/sorts.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/sqlite.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/sqlite3wrapper.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/subst.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/sysinfo.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/types.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/utf.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/utf8proc/utf8proc_data.c
subversion/branches/remove-log-addressing/subversion/libsvn_subr/x509info.c
subversion/branches/remove-log-addressing/subversion/libsvn_wc/conflicts.c
subversion/branches/remove-log-addressing/subversion/libsvn_wc/copy.c
subversion/branches/remove-log-addressing/subversion/libsvn_wc/delete.c
subversion/branches/remove-log-addressing/subversion/libsvn_wc/diff.h
subversion/branches/remove-log-addressing/subversion/libsvn_wc/entries.c
subversion/branches/remove-log-addressing/subversion/libsvn_wc/externals.c
subversion/branches/remove-log-addressing/subversion/libsvn_wc/props.c
subversion/branches/remove-log-addressing/subversion/libsvn_wc/questions.c
subversion/branches/remove-log-addressing/subversion/libsvn_wc/update_editor.c
subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc-metadata.sql
subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc-queries.sql
subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc.h
subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db.c
subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db.h
subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_private.h
subversion/branches/remove-log-addressing/subversion/libsvn_wc/wc_db_update_move.c
subversion/branches/remove-log-addressing/subversion/libsvn_wc/workqueue.c
subversion/branches/remove-log-addressing/subversion/mod_dav_svn/lock.c
subversion/branches/remove-log-addressing/subversion/mod_dav_svn/status.c
subversion/branches/remove-log-addressing/subversion/svn/auth-cmd.c
subversion/branches/remove-log-addressing/subversion/svn/cl.h
subversion/branches/remove-log-addressing/subversion/svn/copy-cmd.c
subversion/branches/remove-log-addressing/subversion/svn/info-cmd.c
subversion/branches/remove-log-addressing/subversion/svn/mergeinfo-cmd.c
subversion/branches/remove-log-addressing/subversion/svn/notify.c
subversion/branches/remove-log-addressing/subversion/svn/propget-cmd.c
subversion/branches/remove-log-addressing/subversion/svn/svn.c
subversion/branches/remove-log-addressing/subversion/svnadmin/svnadmin.c
subversion/branches/remove-log-addressing/subversion/svnserve/logger.c
subversion/branches/remove-log-addressing/subversion/svnserve/serve.c
subversion/branches/remove-log-addressing/subversion/svnserve/server.h
subversion/branches/remove-log-addressing/subversion/svnserve/svnserve.c
subversion/branches/remove-log-addressing/subversion/tests/cmdline/blame_tests.py
subversion/branches/remove-log-addressing/subversion/tests/cmdline/checkout_tests.py
subversion/branches/remove-log-addressing/subversion/tests/cmdline/commit_tests.py
subversion/branches/remove-log-addressing/subversion/tests/cmdline/dav-mirror-autocheck.sh
subversion/branches/remove-log-addressing/subversion/tests/cmdline/davautocheck.sh
subversion/branches/remove-log-addressing/subversion/tests/cmdline/export_tests.py
subversion/branches/remove-log-addressing/subversion/tests/cmdline/externals_tests.py
subversion/branches/remove-log-addressing/subversion/tests/cmdline/lock_tests.py
subversion/branches/remove-log-addressing/subversion/tests/cmdline/merge_tests.py
subversion/branches/remove-log-addressing/subversion/tests/cmdline/merge_tree_conflict_tests.py
subversion/branches/remove-log-addressing/subversion/tests/cmdline/move_tests.py
subversion/branches/remove-log-addressing/subversion/tests/cmdline/redirect_tests.py
subversion/branches/remove-log-addressing/subversion/tests/cmdline/stat_tests.py
subversion/branches/remove-log-addressing/subversion/tests/cmdline/svnadmin_tests.py
subversion/branches/remove-log-addressing/subversion/tests/cmdline/svntest/actions.py
subversion/branches/remove-log-addressing/subversion/tests/cmdline/switch_tests.py
subversion/branches/remove-log-addressing/subversion/tests/cmdline/update_tests.py
subversion/branches/remove-log-addressing/subversion/tests/libsvn_client/client-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_client/mtcc-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_fs/fs-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_fs/locks-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_fs_x/
(props changed)
subversion/branches/remove-log-addressing/subversion/tests/libsvn_fs_x/fs-x-pack-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_fs_x/string-table-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_ra/ra-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_subr/cache-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_subr/checksum-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_subr/config-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_subr/io-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_subr/packed-data-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_subr/priority-queue-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_subr/sqlite-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_subr/string-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_subr/subst_translate-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_wc/conflict-data-test.c
subversion/branches/remove-log-addressing/subversion/tests/libsvn_wc/op-depth-test.c
subversion/branches/remove-log-addressing/subversion/tests/svn_test_main.c
subversion/branches/remove-log-addressing/tools/buildbot/slaves/i686-debian-sarge1/svnlog.sh
subversion/branches/remove-log-addressing/tools/buildbot/slaves/svn-x64-centos/svnbuild.sh
subversion/branches/remove-log-addressing/tools/buildbot/slaves/svn-x64-centos/svnlog.sh
subversion/branches/remove-log-addressing/tools/buildbot/slaves/svn-x64-macosx-gnu-shared-daily-ra_serf/svnlog.sh
subversion/branches/remove-log-addressing/tools/buildbot/slaves/svn-x64-macosx-gnu-shared/svnlog.sh
subversion/branches/remove-log-addressing/tools/buildbot/slaves/ubuntu-x64/svnlog.sh
subversion/branches/remove-log-addressing/tools/client-side/svn-ssl-fingerprints.sh
subversion/branches/remove-log-addressing/tools/dev/benchmarks/RepoPerf/copy_repo.py
subversion/branches/remove-log-addressing/tools/dev/benchmarks/RepoPerf/win_repo_bench.py
subversion/branches/remove-log-addressing/tools/dev/benchmarks/large_dirs/create_bigdir.sh
subversion/branches/remove-log-addressing/tools/dev/build-svn-deps-win.pl
subversion/branches/remove-log-addressing/tools/dev/fsfs-access-map.c
subversion/branches/remove-log-addressing/tools/dev/po-merge.py
subversion/branches/remove-log-addressing/tools/dev/remove-trailing-whitespace.sh
subversion/branches/remove-log-addressing/tools/dev/x509-parser.c
subversion/branches/remove-log-addressing/tools/diff/diff.c
subversion/branches/remove-log-addressing/tools/dist/backport.pl
subversion/branches/remove-log-addressing/tools/dist/backport_tests.py
(props changed)
subversion/branches/remove-log-addressing/tools/dist/dist.sh
subversion/branches/remove-log-addressing/tools/dist/nightly.sh
subversion/branches/remove-log-addressing/tools/hook-scripts/control-chars.py
(props changed)
subversion/branches/remove-log-addressing/tools/hook-scripts/mailer/mailer.py
subversion/branches/remove-log-addressing/tools/hook-scripts/mailer/tests/mailer-init.sh
subversion/branches/remove-log-addressing/tools/hook-scripts/validate-files.py
(props changed)
subversion/branches/remove-log-addressing/tools/po/po-update.sh
subversion/branches/remove-log-addressing/tools/server-side/svnpubsub/daemonize.py
subversion/branches/remove-log-addressing/tools/server-side/svnpubsub/svnpubsub/util.py
(props changed)
subversion/branches/remove-log-addressing/win-tests.py
Propchange: subversion/branches/remove-log-addressing/
------------------------------------------------------------------------------
--- svn:auto-props (original)
+++ svn:auto-props Sat Feb 14 11:15:05 2015
@@ -2,9 +2,12 @@
*.cpp = svn:eol-style=native
*.h = svn:eol-style=native
*.hpp = svn:eol-style=native
+*.java = svn:eol-style=native
*.py = svn:eol-style=native
*.pl = svn:eol-style=native
*.rb = svn:eol-style=native
+*.sql = svn:eol-style=native
*.txt = svn:eol-style=native
README = svn:eol-style=native
BRANCH-README = svn:eol-style=native
+STATUS = svn:eol-style=native
Propchange: subversion/branches/remove-log-addressing/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Feb 14 11:15:05 2015
@@ -60,6 +60,7 @@
/subversion/branches/nfc-nfd-aware-client:870276,870376
/subversion/branches/node_pool:1304828-1305388
/subversion/branches/performance:979193,980118,981087,981090,981189,981194,981287,981684,981827,982043,982355,983398,983406,983430,983474,983488,983490,983760,983764,983766,983770,984927,984973,984984,985014,985037,985046,985472,985477,985482,985487-985488,985493,985497,985500,985514,985601,985603,985606,985669,985673,985695,985697,986453,986465,986485,986491-986492,986517,986521,986605,986608,986817,986832,987865,987868-987869,987872,987886-987888,987893,988319,988898,990330,990533,990535-990537,990541,990568,990572,990574-990575,990600,990759,992899,992904,992911,993127,993141,994956,995478,995507,995603,998012,998858,999098,1001413,1001417,1004291,1022668,1022670,1022676,1022715,1022719,1025660,1025672,1027193,1027203,1027206,1027214,1027227,1028077,1028092,1028094,1028104,1028107,1028111,1028354,1029038,1029042-1029043,1029054-1029055,1029062-1029063,1029078,1029080,1029090,1029092-1029093,1029111,1029151,1029158,1029229-1029230,1029232,1029335-1029336,1029339-1029340,1029342,10
29344,1030763,1030827,1031203,1031235,1032285,1032333,1033040,1033057,1033294,1035869,1035882,1039511,1043705,1053735,1056015,1066452,1067683,1067697-1078365
+/subversion/branches/pin-externals:1643757-1659392
/subversion/branches/py-tests-as-modules:956579-1033052
/subversion/branches/ra_serf-digest-authn:875693-876404
/subversion/branches/reintegrate-improvements:873853-874164
@@ -87,4 +88,4 @@
/subversion/branches/verify-at-commit:1462039-1462408
/subversion/branches/verify-keep-going:1439280-1546110
/subversion/branches/wc-collate-path:1402685-1480384
-/subversion/trunk:1603891-1659290
+/subversion/trunk:1603891-1659776
Modified: subversion/branches/remove-log-addressing/.ycm_extra_conf.py
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/.ycm_extra_conf.py?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/.ycm_extra_conf.py (original)
+++ subversion/branches/remove-log-addressing/.ycm_extra_conf.py Sat Feb 14
11:15:05 2015
@@ -31,7 +31,7 @@ import os
import ycm_core
from clang_helpers import PrepareClangFlags
-compilation_database_folder = os.path.dirname(os.path.realpath(__file__))
+compilation_database_folder = os.path.dirname(os.path.realpath(__file__))
if compilation_database_folder:
database = ycm_core.CompilationDatabase( compilation_database_folder )
@@ -79,10 +79,10 @@ def FlagsForFile( filename ):
filename )
do_cache = True
else:
- final_flags = [ ]
- do_cache = False
+ final_flags = [ ]
+ do_cache = False
return {
'flags': final_flags,
- 'do_cache': do_cache
+ 'do_cache': do_cache
}
Modified: subversion/branches/remove-log-addressing/CHANGES
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/CHANGES?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/CHANGES (original)
+++ subversion/branches/remove-log-addressing/CHANGES Sat Feb 14 11:15:05 2015
@@ -138,6 +138,7 @@ http://svn.apache.org/repos/asf/subversi
* alow the use of libmagic to be configured via subversion configuration
file or SVN_CONFIG_OPTION_ENABLE_MAGIC_FILE env variable (r1572916)
* store human readable info about SSL certs in auth store (r1573625)
+ * new '--pin-externals' option for svn copy (issue #1258)
- Client-side bugfixes:
* export: fix problem exporting symlinks on windows (r1476093)
Modified: subversion/branches/remove-log-addressing/autogen.sh
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/autogen.sh?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/autogen.sh (original)
+++ subversion/branches/remove-log-addressing/autogen.sh Sat Feb 14 11:15:05
2015
@@ -205,7 +205,7 @@ fi
echo "Creating svn_private_config.h.in..."
${AUTOHEADER:-autoheader}
-# If there's a config.cache file, we may need to delete it.
+# If there's a config.cache file, we may need to delete it.
# If we have an existing configure script, save a copy for comparison.
if [ -f config.cache ] && [ -f configure ]; then
cp configure configure.$$.tmp
Modified:
subversion/branches/remove-log-addressing/build/generator/gen_msvc_dsp.py
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/build/generator/gen_msvc_dsp.py?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/build/generator/gen_msvc_dsp.py
(original)
+++ subversion/branches/remove-log-addressing/build/generator/gen_msvc_dsp.py
Sat Feb 14 11:15:05 2015
@@ -148,9 +148,9 @@ class Generator(gen_win.WinGeneratorBase
depends = [ ]
if not isinstance(target, gen_base.TargetI18N):
depends = self.adjust_win_depends(target, name)
- #print name
- #for dep in depends:
- # print " ",dep.name
+ #print name
+ #for dep in depends:
+ # print " ",dep.name
dep_names = [ ]
for dep in depends:
Modified: subversion/branches/remove-log-addressing/build/generator/gen_win.py
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/build/generator/gen_win.py?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
--- subversion/branches/remove-log-addressing/build/generator/gen_win.py
(original)
+++ subversion/branches/remove-log-addressing/build/generator/gen_win.py Sat
Feb 14 11:15:05 2015
@@ -70,7 +70,7 @@ class WinGeneratorBase(gen_win_dependenc
# On Windows we create svn_private_config.h in the output directory since
# r1370526.
- #
+ #
# Without this replacement all projects include a not-existing file,
# which makes the MSBuild calculation to see whether a project is changed
# far more expensive than necessary.
@@ -86,7 +86,7 @@ class WinGeneratorBase(gen_win_dependenc
printed = []
for lib in sorted(self._libraries.values(), key = lambda s: s.name):
if lib.name in printed:
- continue
+ continue
printed.append(lib.name)
print('Found %s %s' % (lib.name, lib.version))
@@ -761,7 +761,7 @@ class WinGeneratorBase(gen_win_dependenc
"Return the list of include directories for target"
fakeincludes = [ "subversion/include" ]
-
+
for dep in self.get_win_depends(target, FILTER_EXTERNALLIBS):
if dep.external_lib:
for elib in re.findall('\$\(SVN_([^\)]*)_LIBS\)', dep.external_lib):
Modified:
subversion/branches/remove-log-addressing/build/generator/gen_win_dependencies.py
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/build/generator/gen_win_dependencies.py?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
---
subversion/branches/remove-log-addressing/build/generator/gen_win_dependencies.py
(original)
+++
subversion/branches/remove-log-addressing/build/generator/gen_win_dependencies.py
Sat Feb 14 11:15:05 2015
@@ -19,7 +19,7 @@
#
#
#
-# gen_win_dependencies.py
+# gen_win_dependencies.py
#
# base class for generating windows projects, containing the
# dependency locator code shared between the test runner and
@@ -73,22 +73,22 @@ class SVNCommonLibrary:
self.debug_lib_dir = debug_lib_dir
else:
self.debug_lib_dir = lib_dir
-
+
if debug_lib_name:
self.debug_lib_name = debug_lib_name
else:
self.debug_lib_name = lib_name
-
+
if debug_dll_dir:
self.debug_dll_dir = debug_dll_dir
else:
self.debug_dll_dir = dll_dir
-
+
if debug_dll_name:
self.debug_dll_name = debug_dll_name
else:
self.debug_dll_name = dll_name
-
+
self.extra_bin = extra_bin
class GenDependenciesBase(gen_base.GeneratorBase):
@@ -278,7 +278,7 @@ class GenDependenciesBase(gen_base.Gener
if find_libs:
self.find_libraries(False)
-
+
def find_libraries(self, show_warnings):
"find required and optional libraries"
@@ -312,7 +312,7 @@ class GenDependenciesBase(gen_base.Gener
if not self.apr_path:
sys.stderr.write("ERROR: Use '--with-apr' option to configure APR " + \
"location.\n")
- sys.exit(1)
+ sys.exit(1)
inc_base = os.path.join(self.apr_path, 'include')
@@ -391,18 +391,18 @@ class GenDependenciesBase(gen_base.Gener
extra_bin = []
- if dll_dir:
+ if dll_dir:
bin_files = os.listdir(dll_dir)
if debug_dll_dir and os.path.isdir(debug_dll_dir):
debug_bin_files = os.listdir(debug_dll_dir)
else:
- debug_bin_files = bin_files
-
+ debug_bin_files = bin_files
+
for bin in bin_files:
if bin in debug_bin_files:
if re.match('^(lib)?apr[-_].*' + suffix + '(d)?.dll$', bin):
extra_bin.append(bin)
-
+
self._libraries['apr'] = SVNCommonLibrary('apr', inc_path, lib_dir,
lib_name,
apr_version,
debug_lib_dir=debug_lib_dir,
@@ -442,7 +442,7 @@ class GenDependenciesBase(gen_base.Gener
version = (major, minor, patch)
self.aprutil_version = aprutil_version = '%d.%d.%d' % version
-
+
if version < minimal_aprutil_version:
sys.stderr.write("ERROR: apr-util %s or higher is required "
"(%s found)\n" % (
@@ -462,7 +462,7 @@ class GenDependenciesBase(gen_base.Gener
debug_dll_dir = None
dll_name = None
defines.extend(["APU_DECLARE_STATIC"])
-
+
if not os.path.isdir(lib_dir) and \
os.path.isfile(os.path.join(self.apr_util_path, 'lib', lib_name)):
# Installed APR-Util instead of APR-Util-Source
@@ -473,7 +473,7 @@ class GenDependenciesBase(gen_base.Gener
else:
lib_name = 'libaprutil%s.lib' % suffix
lib_dir = os.path.join(self.apr_util_path, 'Release')
-
+
if not os.path.isdir(lib_dir) and \
os.path.isfile(os.path.join(self.apr_util_path, 'lib', lib_name)):
# Installed APR-Util instead of APR-Util-Source
@@ -481,7 +481,7 @@ class GenDependenciesBase(gen_base.Gener
debug_lib_dir = lib_dir
else:
debug_lib_dir = os.path.join(self.apr_util_path, 'Debug')
-
+
dll_name = 'libaprutil%s.dll' % suffix
if os.path.isfile(os.path.join(lib_dir, dll_name)):
dll_dir = lib_dir
@@ -491,13 +491,13 @@ class GenDependenciesBase(gen_base.Gener
debug_dll_dir = None
extra_bin = []
-
+
if dll_dir:
bin_files = os.listdir(dll_dir)
if debug_dll_dir and os.path.isdir(debug_dll_dir):
debug_bin_files = os.listdir(debug_dll_dir)
else:
- debug_bin_files = bin_files
+ debug_bin_files = bin_files
for bin in bin_files:
if bin in debug_bin_files:
@@ -688,7 +688,7 @@ class GenDependenciesBase(gen_base.Gener
# CMake default: zlibstatic.lib (static) and zlib.lib (dll)
lib_name = 'zlibstatic.lib'
else:
- # Standard makefile produces zlib.lib (static) and zdll.lib (dll)
+ # Standard makefile produces zlib.lib (static) and zdll.lib (dll)
lib_name = 'zlib.lib'
debug_lib_name = None
else:
@@ -711,7 +711,7 @@ class GenDependenciesBase(gen_base.Gener
version = tuple(map(int, vermatch.groups()))
self.zlib_version = '%d.%d.%d' % version
-
+
if version < minimal_zlib_version:
sys.stderr.write("ERROR: ZLib %s or higher is required "
"(%s found)\n" % (
@@ -804,10 +804,10 @@ class GenDependenciesBase(gen_base.Gener
def _find_openssl(self, show_warnings):
"Find openssl"
-
+
if not self.openssl_path:
return
-
+
version_path = os.path.join(self.openssl_path, 'inc32/openssl/opensslv.h')
if os.path.isfile(version_path):
# We have an OpenSSL Source location
@@ -840,12 +840,12 @@ class GenDependenciesBase(gen_base.Gener
vermatch = re.search(
r'#\s*define\s+OPENSSL_VERSION_TEXT\s+"OpenSSL\s+((\d+)\.(\d+).(\d+)([^
-]*))',
txt)
-
- version = (int(vermatch.group(2)),
+
+ version = (int(vermatch.group(2)),
int(vermatch.group(3)),
int(vermatch.group(4)))
openssl_version = vermatch.group(1)
-
+
self._libraries['openssl'] = SVNCommonLibrary('openssl', inc_dir, lib_dir,
'ssleay32.lib',
openssl_version,
@@ -1378,7 +1378,7 @@ class GenDependenciesBase(gen_base.Gener
# Amalgamation
inc_dir = sqlite_base
lib_dir = None
- lib_name = None
+ lib_name = None
defines.append('SVN_SQLITE_INLINE')
else:
sys.stderr.write("ERROR: SQLite not found\n")
Modified:
subversion/branches/remove-log-addressing/contrib/client-side/svncopy/svncopy.pl.in
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/contrib/client-side/svncopy/svncopy.pl.in?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
---
subversion/branches/remove-log-addressing/contrib/client-side/svncopy/svncopy.pl.in
(original)
+++
subversion/branches/remove-log-addressing/contrib/client-side/svncopy/svncopy.pl.in
Sat Feb 14 11:15:05 2015
@@ -970,6 +970,12 @@ B<svncopy> - extended form of B<svn copy
B<svncopy.pl> [option ...] source [source ...] destination
+--------------------------------------------------------------------------
+NOTE: This script is deprecated. Please use 'svn copy --pin-externals' for
+pinning externals, and use the relative external URL syntax instead of the
+'--update-externals' functionality of this script.
+--------------------------------------------------------------------------
+
This script copies one Subversion location or set of locations to another,
in the same way as B<svn copy>. Using the script allows more advanced
operations,
in particular allowing svn:externals to be dealt with properly for branching
Propchange: subversion/branches/remove-log-addressing/notes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Feb 14 11:15:05 2015
@@ -23,6 +23,7 @@
/subversion/branches/log-g-performance/notes:870941-871032
/subversion/branches/merge-skips-obstructions/notes:874525-874615
/subversion/branches/nfc-nfd-aware-client/notes:870276,870376
+/subversion/branches/pin-externals/notes:1643757-1659392
/subversion/branches/ra_serf-digest-authn/notes:875693-876404
/subversion/branches/reintegrate-improvements/notes:873853-874164
/subversion/branches/subtree-mergeinfo/notes:876734-878766
@@ -38,4 +39,4 @@
/subversion/branches/tc_url_rev/notes:874351-874483
/subversion/branches/tree-conflicts/notes:868291-873154
/subversion/branches/tree-conflicts-notify/notes:873926-874008
-/subversion/trunk/notes:1603891-1658357
+/subversion/trunk/notes:1603891-1659776
Modified:
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/EditorProxy.h
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/EditorProxy.h?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
---
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/EditorProxy.h
(original)
+++
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/EditorProxy.h
Sat Feb 14 11:15:05 2015
@@ -142,7 +142,7 @@ private:
const char* m_repos_root_url; ///< The root of the repository
const char* m_base_relpath; ///< The root of the session within the repo
bool m_found_paths; ///< Returned paths are absolute
-
+
svn_editor_t* m_editor;
const svn_delta_editor_t* m_delta_editor;
void* m_delta_baton;
Modified:
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/SVNClient.cpp
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/SVNClient.cpp?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
---
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/SVNClient.cpp
(original)
+++
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/SVNClient.cpp
Sat Feb 14 11:15:05 2015
@@ -70,11 +70,19 @@
#include "svn_diff.h"
#include "svn_config.h"
#include "svn_io.h"
+#include "svn_hash.h"
#include "svn_dirent_uri.h"
#include "svn_path.h"
#include "svn_utf.h"
+#include "private/svn_subr_private.h"
#include "svn_private_config.h"
+#include "ExternalItem.hpp"
+#include "jniwrapper/jni_list.hpp"
+#include "jniwrapper/jni_stack.hpp"
+#include "jniwrapper/jni_string_map.hpp"
+
+
SVNClient::SVNClient(jobject jthis_in)
: m_lastPath("", pool), context(jthis_in, pool)
{
@@ -443,9 +451,75 @@ void SVNClient::commit(Targets &targets,
);
}
+
+namespace {
+typedef Java::ImmutableList<JavaHL::ExternalItem> PinList;
+typedef Java::ImmutableMap<PinList> PinMap;
+
+struct PinListFunctor
+{
+ explicit PinListFunctor(const Java::Env& env, SVN::Pool& pool, int refs_len)
+ : m_pool(pool),
+ m_refs(apr_array_make(pool.getPool(), refs_len,
+ sizeof(svn_wc_external_item2_t*)))
+ {}
+
+ void operator()(const JavaHL::ExternalItem& item)
+ {
+ APR_ARRAY_PUSH(m_refs, svn_wc_external_item2_t*) =
+ item.get_external_item(m_pool);
+ }
+
+ SVN::Pool& m_pool;
+ apr_array_header_t *m_refs;
+};
+
+struct PinMapFunctor
+{
+ explicit PinMapFunctor(const Java::Env& env, SVN::Pool& pool)
+ : m_env(env),
+ m_pool(pool),
+ m_pin_set(svn_hash__make(pool.getPool()))
+ {}
+
+ void operator()(const std::string& path, const PinList& refs)
+ {
+ PinListFunctor lf(m_env, m_pool, refs.length());
+ refs.for_each(lf);
+ const char* key = static_cast<const char*>(
+ apr_pmemdup(m_pool.getPool(), path.c_str(), path.size() + 1));
+ svn_hash_sets(m_pin_set, key, lf.m_refs);
+ }
+
+ const Java::Env& m_env;
+ SVN::Pool& m_pool;
+ apr_hash_t *m_pin_set;
+};
+
+apr_hash_t *get_externals_to_pin(jobject jexternalsToPin, SVN::Pool& pool)
+{
+ if (!jexternalsToPin)
+ return NULL;
+
+ const Java::Env env;
+ JNIEnv *jenv = env.get();
+
+ try
+ {
+ PinMap pin_map(env, jexternalsToPin);
+ PinMapFunctor mf(env, pool);
+ pin_map.for_each(mf);
+ return mf.m_pin_set;
+ }
+ SVN_JAVAHL_JNI_CATCH;
+ return NULL;
+}
+} // anonymous namespace
+
void SVNClient::copy(CopySources ©Sources, const char *destPath,
CommitMessage *message, bool copyAsChild,
bool makeParents, bool ignoreExternals,
+ bool pinExternals, jobject jexternalsToPin,
PropertyTable &revprops, CommitCallback *callback)
{
SVN::Pool subPool(pool);
@@ -460,10 +534,13 @@ void SVNClient::copy(CopySources ©So
if (ctx == NULL)
return;
- SVN_JNI_ERR(svn_client_copy6(srcs, destinationPath.c_str(),
- copyAsChild, makeParents, ignoreExternals,
- revprops.hash(subPool),
- CommitCallback::callback, callback,
+ apr_hash_t *pin_set = get_externals_to_pin(jexternalsToPin, subPool);
+ if (!JNIUtil::isJavaExceptionThrown())
+ SVN_JNI_ERR(svn_client_copy7(srcs, destinationPath.c_str(),
+ copyAsChild, makeParents, ignoreExternals,
+ pinExternals, pin_set,
+ revprops.hash(subPool),
+ CommitCallback::callback, callback,
ctx, subPool.getPool()), );
}
Modified:
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/SVNClient.h
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/SVNClient.h?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
---
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/SVNClient.h
(original)
+++
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/SVNClient.h
Sat Feb 14 11:15:05 2015
@@ -149,8 +149,9 @@ class SVNClient :public SVNBase
PropertyTable &revprops, CommitCallback *callback);
void copy(CopySources ©Sources, const char *destPath,
CommitMessage *message, bool copyAsChild, bool makeParents,
- bool ignoreExternals, PropertyTable &revprops,
- CommitCallback *callback);
+ bool ignoreExternals, bool pinExternals,
+ jobject jexternalsToPin,
+ PropertyTable &revprops, CommitCallback *callback);
void commit(Targets &targets, CommitMessage *message, svn_depth_t depth,
bool noUnlock, bool keepChangelist,
StringArray &changelists, PropertyTable &revprops,
Modified:
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/StateReporter.cpp
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/StateReporter.cpp?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
---
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/StateReporter.cpp
(original)
+++
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/StateReporter.cpp
Sat Feb 14 11:15:05 2015
@@ -83,7 +83,7 @@ StateReporter::setPath(jstring jpath, jl
//DEBUG:fprintf(stderr, " (n) StateReporter::setPath()\n");
if (!m_valid) { throw_reporter_inactive(); return; }
-
+
JNIStringHolder lock_token(jlock_token);
if (JNIUtil::isJavaExceptionThrown())
return;
Modified:
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
---
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
(original)
+++
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
Sat Feb 14 11:15:05 2015
@@ -559,6 +559,7 @@ JNIEXPORT void JNICALL
Java_org_apache_subversion_javahl_SVNClient_copy
(JNIEnv *env, jobject jthis, jobject jcopySources, jstring jdestPath,
jboolean jcopyAsChild, jboolean jmakeParents, jboolean jignoreExternals,
+ jboolean jpinExternals, jobject jexternalsToPin,
jobject jrevpropTable, jobject jmessage, jobject jcallback)
{
JNIEntry(SVNClient, copy);
@@ -590,8 +591,9 @@ Java_org_apache_subversion_javahl_SVNCli
return;
CommitCallback callback(jcallback);
- cl->copy(copySources, destPath, &message, jcopyAsChild ? true : false,
- jmakeParents ? true : false, jignoreExternals ? true : false,
+ cl->copy(copySources, destPath, &message,
+ bool(jcopyAsChild), bool(jmakeParents),
+ bool(jignoreExternals), bool(jpinExternals), jexternalsToPin,
revprops, jcallback ? &callback : NULL);
}
Modified:
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.cpp
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.cpp?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
---
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.cpp
(original)
+++
subversion/branches/remove-log-addressing/subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.cpp
Sat Feb 14 11:15:05 2015
@@ -178,7 +178,7 @@ Java_org_apache_subversion_javahl_util_C
ctx.m_config, &value,
ctx.m_section.c_str(), ctx.m_option.c_str(),
default_value.c_str()),
- NULL);
+ NULL);
return JNIUtil::makeJString(value);
}
Modified:
subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
---
subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
(original)
+++
subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
Sat Feb 14 11:15:05 2015
@@ -376,6 +376,20 @@ public interface ISVNClient
* @param makeParents Whether to create intermediate parents
* @param ignoreExternals Whether or not to process external definitions
* as part of this operation.
+ * @param pinExternals Whether or not to pin external definitions as part
+ * of this operation.
+ * @param externalsToPin The set of externals to pin.
+ * Keys are either local absolute paths (when the source of the
+ * copy is the working copy) or URLs within the repository
+ * (when the source is the repository) where an
+ * <code>svn:externals</code> property is defined.
+ * Values are lists of parsed {@link ExternalItem}
+ * objects from each external definitions.
+ * If <code>pinExternals</code> is <code>true</code>, only
+ * the externals in this set will be pinned; if this parameter
+ * is <code>null</code>, all externals will be pinned.
+ * If <code>pinExternals</code> is <code>false</code>,
+ * this parameter will be ignored.
* @param revpropTable A string-to-string mapping of revision properties
* to values which will be set if this operation
* results in a commit.
@@ -383,6 +397,22 @@ public interface ISVNClient
* if <code>destPath</code> is not a URL
* @throws ClientException If the copy operation fails.
* @throws NullPointerException if the <code>sources</code> list is empty.
+ * @since 1.9
+ */
+ void copy(List<CopySource> sources, String destPath,
+ boolean copyAsChild, boolean makeParents,
+ boolean ignoreExternals, boolean pinExternals,
+ Map<String, List<ExternalItem>> externalsToPin,
+ Map<String, String> revpropTable,
+ CommitMessageCallback handler, CommitCallback callback)
+ throws ClientException;
+
+ /**
+ * Copy versioned paths with the history preserved.
+ * <p>
+ * Behaves like the 1.9 version with
+ * <code>pinExternals<code> set to <code>false</code> and
+ * <code>externalsToPin<code> set to <code>null</code>.
*/
void copy(List<CopySource> sources, String destPath,
boolean copyAsChild, boolean makeParents,
Modified:
subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
---
subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
(original)
+++
subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNRepos.java
Sat Feb 14 11:15:05 2015
@@ -34,138 +34,138 @@ import org.apache.subversion.javahl.type
public interface ISVNRepos {
- /**
- * interface to receive the messages
- */
- public static interface MessageReceiver
- {
- /**
- * receive one message line
- * @param message one line of message
- */
- public void receiveMessageLine(String message);
- }
-
- /**
- * release the native peer (should not depend on finalize)
- */
- public abstract void dispose();
-
- /**
- * Filesystem in a Berkeley DB
- */
- public static final String BDB = "bdb";
- /**
- * Filesystem in the filesystem
- */
- public static final String FSFS = "fsfs";
-
- /**
- * @return Version information about the underlying native libraries.
- */
- public abstract Version getVersion();
-
- /**
- * create a subversion repository.
- * @param path the path where the repository will been
- * created.
- * @param disableFsyncCommit disable to fsync at the commit (BDB).
- * @param keepLog keep the log files (BDB).
- * @param configPath optional path for user configuration
files.
- * @param fstype the type of the filesystem (BDB or FSFS)
- * @throws ClientException throw in case of problem
- */
- public abstract void create(File path, boolean disableFsyncCommit,
- boolean keepLog, File configPath, String fstype)
- throws ClientException;
-
- /**
- * deltify the revisions in the repository
- * @param path the path to the repository
- * @param start start revision
- * @param end end revision
- * @throws ClientException throw in case of problem
- */
- public abstract void deltify(File path, Revision start, Revision end)
- throws ClientException;
-
- /**
- * dump the data in a repository
- * @param path the path to the repository
- * @param dataOut the data will be outputed here
- * @param start the first revision to be dumped
- * @param end the last revision to be dumped
- * @param incremental the dump will be incremantal
- * @param useDeltas the dump will contain deltas between nodes
+ /**
+ * interface to receive the messages
+ */
+ public static interface MessageReceiver
+ {
+ /**
+ * receive one message line
+ * @param message one line of message
+ */
+ public void receiveMessageLine(String message);
+ }
+
+ /**
+ * release the native peer (should not depend on finalize)
+ */
+ public abstract void dispose();
+
+ /**
+ * Filesystem in a Berkeley DB
+ */
+ public static final String BDB = "bdb";
+ /**
+ * Filesystem in the filesystem
+ */
+ public static final String FSFS = "fsfs";
+
+ /**
+ * @return Version information about the underlying native libraries.
+ */
+ public abstract Version getVersion();
+
+ /**
+ * create a subversion repository.
+ * @param path the path where the repository will been
+ * created.
+ * @param disableFsyncCommit disable to fsync at the commit (BDB).
+ * @param keepLog keep the log files (BDB).
+ * @param configPath optional path for user configuration files.
+ * @param fstype the type of the filesystem (BDB or FSFS)
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void create(File path, boolean disableFsyncCommit,
+ boolean keepLog, File configPath, String fstype)
+ throws ClientException;
+
+ /**
+ * deltify the revisions in the repository
+ * @param path the path to the repository
+ * @param start start revision
+ * @param end end revision
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void deltify(File path, Revision start, Revision end)
+ throws ClientException;
+
+ /**
+ * dump the data in a repository
+ * @param path the path to the repository
+ * @param dataOut the data will be outputed here
+ * @param start the first revision to be dumped
+ * @param end the last revision to be dumped
+ * @param incremental the dump will be incremantal
+ * @param useDeltas the dump will contain deltas between nodes
* @param callback the callback to receive notifications
- * @throws ClientException throw in case of problem
- */
- public abstract void dump(File path, OutputStream dataOut,
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void dump(File path, OutputStream dataOut,
Revision start, Revision end, boolean incremental,
boolean useDeltas, ReposNotifyCallback callback)
- throws ClientException;
+ throws ClientException;
- /**
- * make a hot copy of the repository
- * @param path the path to the source repository
- * @param targetPath the path to the target repository
- * @param cleanLogs clean the unused log files in the source
- * repository
+ /**
+ * make a hot copy of the repository
+ * @param path the path to the source repository
+ * @param targetPath the path to the target repository
+ * @param cleanLogs clean the unused log files in the source
+ * repository
* @param callback the callback to receive notifications
- * @throws ClientException throw in case of problem
+ * @throws ClientException throw in case of problem
* @since 1.9
- */
- public abstract void hotcopy(File path, File targetPath,
+ */
+ public abstract void hotcopy(File path, File targetPath,
boolean cleanLogs, boolean incremental,
ReposNotifyCallback callback)
throws ClientException;
- public abstract void hotcopy(File path, File targetPath,
- boolean cleanLogs, boolean incremental)
+ public abstract void hotcopy(File path, File targetPath,
+ boolean cleanLogs, boolean incremental)
throws ClientException;
- public abstract void hotcopy(File path, File targetPath,
- boolean cleanLogs) throws ClientException;
+ public abstract void hotcopy(File path, File targetPath,
+ boolean cleanLogs) throws ClientException;
- /**
- * list all logfiles (BDB) in use or not)
- * @param path the path to the repository
- * @param receiver interface to receive the logfile names
- * @throws ClientException throw in case of problem
- */
- public abstract void listDBLogs(File path, MessageReceiver receiver)
- throws ClientException;
-
- /**
- * list unused logfiles
- * @param path the path to the repository
- * @param receiver interface to receive the logfile names
- * @throws ClientException throw in case of problem
- */
- public abstract void listUnusedDBLogs(File path, MessageReceiver
receiver)
- throws ClientException;
-
-
- /**
- * load the data of a dump into a repository
- * @param path the path to the repository
- * @param dataInput the data input source
+ /**
+ * list all logfiles (BDB) in use or not)
+ * @param path the path to the repository
+ * @param receiver interface to receive the logfile names
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void listDBLogs(File path, MessageReceiver receiver)
+ throws ClientException;
+
+ /**
+ * list unused logfiles
+ * @param path the path to the repository
+ * @param receiver interface to receive the logfile names
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void listUnusedDBLogs(File path, MessageReceiver receiver)
+ throws ClientException;
+
+
+ /**
+ * load the data of a dump into a repository
+ * @param path the path to the repository
+ * @param dataInput the data input source
* @param start the first revision to load
* @param end the last revision to load
- * @param ignoreUUID ignore any UUID found in the input stream
- * @param forceUUID set the repository UUID to any found in the
- * stream
- * @param usePreCommitHook use the pre-commit hook when processing
commits
- * @param usePostCommitHook use the post-commit hook when processing
commits
+ * @param ignoreUUID ignore any UUID found in the input stream
+ * @param forceUUID set the repository UUID to any found in the
+ * stream
+ * @param usePreCommitHook use the pre-commit hook when processing commits
+ * @param usePostCommitHook use the post-commit hook when processing
commits
* @param validateProps validate "svn:" revision and node
properties
* @param ignoreDates ignore revision datestamps in the dump
stream
- * @param relativePath the directory in the repository, where the
data
- * in put optional.
- * @param callback the target for processing messages
- * @throws ClientException throw in case of problem
+ * @param relativePath the directory in the repository, where the data
+ * in put optional.
+ * @param callback the target for processing messages
+ * @throws ClientException throw in case of problem
* @since 1.9
- */
- public abstract void load(File path, InputStream dataInput,
+ */
+ public abstract void load(File path, InputStream dataInput,
Revision start, Revision end,
boolean ignoreUUID, boolean forceUUID,
boolean usePreCommitHook,
@@ -176,27 +176,27 @@ public interface ISVNRepos {
ReposNotifyCallback callback)
throws ClientException;
- /**
- * Load the data of a dump into a repository. Sets
+ /**
+ * Load the data of a dump into a repository. Sets
* <code>validateProps</code> and <code>ignoreDates</code> to
* <code>false</code>.
*
- * @param path the path to the repository
- * @param dataInput the data input source
+ * @param path the path to the repository
+ * @param dataInput the data input source
* @param start the first revision to load
* @param end the last revision to load
- * @param ignoreUUID ignore any UUID found in the input stream
- * @param forceUUID set the repository UUID to any found in the
- * stream
- * @param usePreCommitHook use the pre-commit hook when processing
commits
- * @param usePostCommitHook use the post-commit hook when processing
commits
- * @param relativePath the directory in the repository, where the
data
- * in put optional.
- * @param callback the target for processing messages
- * @throws ClientException throw in case of problem
+ * @param ignoreUUID ignore any UUID found in the input stream
+ * @param forceUUID set the repository UUID to any found in the
+ * stream
+ * @param usePreCommitHook use the pre-commit hook when processing commits
+ * @param usePostCommitHook use the post-commit hook when processing
commits
+ * @param relativePath the directory in the repository, where the data
+ * in put optional.
+ * @param callback the target for processing messages
+ * @throws ClientException throw in case of problem
* @since 1.8
- */
- public abstract void load(File path, InputStream dataInput,
+ */
+ public abstract void load(File path, InputStream dataInput,
Revision start, Revision end,
boolean ignoreUUID, boolean forceUUID,
boolean usePreCommitHook,
@@ -205,163 +205,163 @@ public interface ISVNRepos {
ReposNotifyCallback callback)
throws ClientException;
- /**
- * load the data of a dump into a repository
- * @param path the path to the repository
- * @param dataInput the data input source
- * @param ignoreUUID ignore any UUID found in the input stream
- * @param forceUUID set the repository UUID to any found in the
- * stream
- * @param usePreCommitHook use the pre-commit hook when processing
commits
- * @param usePostCommitHook use the post-commit hook when processing
commits
- * @param relativePath the directory in the repository, where the
data
- * in put optional.
- * @param callback the target for processing messages
- * @throws ClientException throw in case of problem
+ /**
+ * load the data of a dump into a repository
+ * @param path the path to the repository
+ * @param dataInput the data input source
+ * @param ignoreUUID ignore any UUID found in the input stream
+ * @param forceUUID set the repository UUID to any found in the
+ * stream
+ * @param usePreCommitHook use the pre-commit hook when processing commits
+ * @param usePostCommitHook use the post-commit hook when processing
commits
+ * @param relativePath the directory in the repository, where the data
+ * in put optional.
+ * @param callback the target for processing messages
+ * @throws ClientException throw in case of problem
* @note behaves like the 1.8 vesion with the revision
* parameters set to Revision.START and Revision.HEAD.
- */
- public abstract void load(File path, InputStream dataInput,
- boolean ignoreUUID, boolean forceUUID, boolean
usePreCommitHook,
+ */
+ public abstract void load(File path, InputStream dataInput,
+ boolean ignoreUUID, boolean forceUUID, boolean usePreCommitHook,
boolean usePostCommitHook, String relativePath,
ReposNotifyCallback callback)
throws ClientException;
- /**
- * list all open transactions in a repository
- * @param path the path to the repository
- * @param receiver receives one transaction name per call
- * @throws ClientException throw in case of problem
- */
- public abstract void lstxns(File path, MessageReceiver receiver)
- throws ClientException;
-
- /**
- * recover the filesystem backend of a repository
- * @param path the path to the repository
+ /**
+ * list all open transactions in a repository
+ * @param path the path to the repository
+ * @param receiver receives one transaction name per call
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void lstxns(File path, MessageReceiver receiver)
+ throws ClientException;
+
+ /**
+ * recover the filesystem backend of a repository
+ * @param path the path to the repository
* @return youngest revision
- * @throws ClientException throw in case of problem
- */
- public abstract long recover(File path, ReposNotifyCallback callback)
- throws ClientException;
-
- /**
- * Take an exclusive lock on each of the listed repositories
- * to prevent commits; then, while holding all the locks, call
- * the action.invoke().
- *
- * The repositories may or may not be readable by Subversion
- * while frozen, depending on implementation details of the
- * repository's filesystem backend.
- *
- * Repositories are locked in the listed order.
- * @param action describes the action to perform
- * @param paths the set of repository paths
- * @throws ClientException
+ * @throws ClientException throw in case of problem
+ */
+ public abstract long recover(File path, ReposNotifyCallback callback)
+ throws ClientException;
+
+ /**
+ * Take an exclusive lock on each of the listed repositories
+ * to prevent commits; then, while holding all the locks, call
+ * the action.invoke().
+ *
+ * The repositories may or may not be readable by Subversion
+ * while frozen, depending on implementation details of the
+ * repository's filesystem backend.
+ *
+ * Repositories are locked in the listed order.
+ * @param action describes the action to perform
+ * @param paths the set of repository paths
+ * @throws ClientException
* @since 1.8
- */
- public abstract void freeze(ReposFreezeAction action,
- File... paths)
- throws ClientException;
-
- /**
- * remove open transaction in a repository
- * @param path the path to the repository
- * @param transactions the transactions to be removed
- * @throws ClientException throw in case of problem
- */
- public abstract void rmtxns(File path, String[] transactions)
- throws ClientException;
-
- /**
- * Change the value of the revision property <code>propName</code>
- * to <code>propValue</code>. By default, does not run
- * pre-/post-revprop-change hook scripts.
- *
- * @param path The path to the repository.
- * @param rev The revision for which to change a property value.
- * @param propName The name of the property to change.
- * @param propValue The new value to set for the property.
- * @param usePreRevPropChangeHook Whether to run the
- * <i>pre-revprop-change</i> hook script.
- * @param usePostRevPropChangeHook Whether to run the
- * <i>post-revprop-change</i> hook script.
- * @throws SubversionException If a problem occurs.
- */
- public abstract void setRevProp(File path, Revision rev, String
propName,
- String propValue, boolean usePreRevPropChangeHook,
- boolean usePostRevPropChangeHook) throws
SubversionException;
-
- /**
- * Verify the repository at <code>path</code> between revisions
- * <code>start</code> and <code>end</code>.
- *
- * @param path the path to the repository
- * @param start the first revision
- * @param end the last revision
+ */
+ public abstract void freeze(ReposFreezeAction action,
+ File... paths)
+ throws ClientException;
+
+ /**
+ * remove open transaction in a repository
+ * @param path the path to the repository
+ * @param transactions the transactions to be removed
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void rmtxns(File path, String[] transactions)
+ throws ClientException;
+
+ /**
+ * Change the value of the revision property <code>propName</code>
+ * to <code>propValue</code>. By default, does not run
+ * pre-/post-revprop-change hook scripts.
+ *
+ * @param path The path to the repository.
+ * @param rev The revision for which to change a property value.
+ * @param propName The name of the property to change.
+ * @param propValue The new value to set for the property.
+ * @param usePreRevPropChangeHook Whether to run the
+ * <i>pre-revprop-change</i> hook script.
+ * @param usePostRevPropChangeHook Whether to run the
+ * <i>post-revprop-change</i> hook script.
+ * @throws SubversionException If a problem occurs.
+ */
+ public abstract void setRevProp(File path, Revision rev, String propName,
+ String propValue, boolean usePreRevPropChangeHook,
+ boolean usePostRevPropChangeHook) throws SubversionException;
+
+ /**
+ * Verify the repository at <code>path</code> between revisions
+ * <code>start</code> and <code>end</code>.
+ *
+ * @param path the path to the repository
+ * @param start the first revision
+ * @param end the last revision
* @param keepGoing continue verification even if a revision
is bad
* @param checkNormalization report directory entry and mergeinfo name
collisions
* caused by denormalized Unicode
representations
* @param metadataOnly check only metadata, not file contents
* @param callback the callback to receive notifications
- * @throws ClientException If an error occurred.
+ * @throws ClientException If an error occurred.
* @since 1.9
- */
- public abstract void verify(File path, Revision start, Revision end,
+ */
+ public abstract void verify(File path, Revision start, Revision end,
boolean keepGoing, boolean checkNormalization,
boolean metadataOnly,
ReposNotifyCallback callback)
throws ClientException;
- /**
- * Verify the repository at <code>path</code> between revisions
- * <code>start</code> and <code>end</code>.
- *
- * @param path the path to the repository
- * @param start the first revision
- * @param end the last revision
+ /**
+ * Verify the repository at <code>path</code> between revisions
+ * <code>start</code> and <code>end</code>.
+ *
+ * @param path the path to the repository
+ * @param start the first revision
+ * @param end the last revision
* @param callback the callback to receive notifications
- * @throws ClientException If an error occurred.
- */
- public abstract void verify(File path, Revision start, Revision end,
+ * @throws ClientException If an error occurred.
+ */
+ public abstract void verify(File path, Revision start, Revision end,
ReposNotifyCallback callback)
throws ClientException;
- /**
- * list all locks in the repository
- * @param path the path to the repository
+ /**
+ * list all locks in the repository
+ * @param path the path to the repository
* @param depth the depth to recurse
- * @throws ClientException throw in case of problem
- */
- public abstract Set<Lock> lslocks(File path, Depth depth)
+ * @throws ClientException throw in case of problem
+ */
+ public abstract Set<Lock> lslocks(File path, Depth depth)
throws ClientException;
- /**
- * remove multiple locks from the repository
- * @param path the path to the repository
- * @param locks the name of the locked items
- * @throws ClientException throw in case of problem
- */
- public abstract void rmlocks(File path, String[] locks)
- throws ClientException;
+ /**
+ * remove multiple locks from the repository
+ * @param path the path to the repository
+ * @param locks the name of the locked items
+ * @throws ClientException throw in case of problem
+ */
+ public abstract void rmlocks(File path, String[] locks)
+ throws ClientException;
/**
* upgrade the repository format
* @param path the path to the repository
* @param callback for notification
- * @throws ClientException throw in case of problem
+ * @throws ClientException throw in case of problem
*/
public abstract void upgrade(File path, ReposNotifyCallback callback)
- throws ClientException;
+ throws ClientException;
/**
* pack the repository
* @param path the path to the repository
* @param callback for notification
- * @throws ClientException throw in case of problem
+ * @throws ClientException throw in case of problem
*/
public abstract void pack(File path, ReposNotifyCallback callback)
- throws ClientException;
+ throws ClientException;
/**
* cancel the active operation
Modified:
subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
---
subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
(original)
+++
subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
Sat Feb 14 11:15:05 2015
@@ -240,11 +240,23 @@ public class SVNClient implements ISVNCl
public native void copy(List<CopySource> sources, String destPath,
boolean copyAsChild, boolean makeParents,
- boolean ignoreExternals,
+ boolean ignoreExternals, boolean pinExternals,
+ Map<String, List<ExternalItem>> externalsToPin,
Map<String, String> revpropTable,
CommitMessageCallback handler, CommitCallback
callback)
throws ClientException;
+ public void copy(List<CopySource> sources, String destPath,
+ boolean copyAsChild, boolean makeParents,
+ boolean ignoreExternals,
+ Map<String, String> revpropTable,
+ CommitMessageCallback handler, CommitCallback callback)
+ throws ClientException
+ {
+ copy(sources, destPath, copyAsChild, makeParents, ignoreExternals,
+ false, null, revpropTable, handler, callback);
+ }
+
public native void move(Set<String> srcPaths, String destPath,
boolean force, boolean moveAsChild,
boolean makeParents, boolean metadataOnly,
Modified:
subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
---
subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
(original)
+++
subversion/branches/remove-log-addressing/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
Sat Feb 14 11:15:05 2015
@@ -2418,18 +2418,18 @@ public class SVNClient implements SVNCli
{
try
{
- final List<org.apache.subversion.javahl.types.Info> infos =
- new
ArrayList<org.apache.subversion.javahl.types.Info>();
- aSVNClient.info2(path,
-
org.apache.subversion.javahl.types.Revision.HEAD,
-
org.apache.subversion.javahl.types.Revision.HEAD,
-
org.apache.subversion.javahl.types.Depth.empty,
- null, new
org.apache.subversion.javahl.callback.InfoCallback()
- {
- public void
singleInfo(org.apache.subversion.javahl.types.Info info) {
- infos.add(info);
- }
- });
+ final List<org.apache.subversion.javahl.types.Info> infos =
+ new ArrayList<org.apache.subversion.javahl.types.Info>();
+ aSVNClient.info2(path,
+ org.apache.subversion.javahl.types.Revision.HEAD,
+ org.apache.subversion.javahl.types.Revision.HEAD,
+ org.apache.subversion.javahl.types.Depth.empty,
+ null, new
org.apache.subversion.javahl.callback.InfoCallback()
+ {
+ public void singleInfo(org.apache.subversion.javahl.types.Info
info) {
+ infos.add(info);
+ }
+ });
return new Info(infos.get(0));
}
catch (org.apache.subversion.javahl.ClientException ex)
Modified:
subversion/branches/remove-log-addressing/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL:
http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1659777&r1=1659776&r2=1659777&view=diff
==============================================================================
---
subversion/branches/remove-log-addressing/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
(original)
+++
subversion/branches/remove-log-addressing/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
Sat Feb 14 11:15:05 2015
@@ -269,7 +269,7 @@ public class BasicTests extends SVNTests
}
catch(JNIError e)
{
- return; // Test passes!
+ return; // Test passes!
}
fail("A JNIError should have been thrown here.");
}
@@ -1060,7 +1060,7 @@ public class BasicTests extends SVNTests
}
client.copy(sources,
new File(thisTest.getWorkingCopy(), "A/B/F").getPath(),
- true, false, false, null, null, null);
+ true, false, false, false, null, null, null, null);
// Commit the changes, and check the state of the WC.
checkCommitRevision(thisTest,
@@ -1077,7 +1077,7 @@ public class BasicTests extends SVNTests
"A/B").getPath(), Revision.WORKING,
Revision.WORKING));
client.copy(wcSource, thisTest.getUrl() + "/parent/A/B",
- true, true, false, null,
+ true, true, false, false, null, null,
new ConstMsg("Copy WC to URL"), null);
// update the WC to get new folder and confirm the copy
@@ -1085,6 +1085,178 @@ public class BasicTests extends SVNTests
update(thisTest), 3);
}
+
+ // Set up externals references in the working copy for the
+ // pin-externals tests.
+ private void setupPinExternalsTest(OneTest thisTest) throws Throwable
+ {
+ byte[] extref = ("^/A/D/H ADHext\n" +
+ "^/A/D/H@1 peggedADHext\n" +
+ "-r1 ^/A/D/H revvedADHext\n").getBytes();
+ Set<String> paths = new HashSet<String>();
+ paths.add(thisTest.getWCPath() + "/A/B");
+
+ // Add an externals reference to the working copy.
+ client.propertySetLocal(paths, "svn:externals", extref,
+ Depth.empty, null, false);
+
+ // Commit the externals definition
+ client.commit(thisTest.getWCPathSet(), Depth.infinity,
+ false, false, null, null,
+ new ConstMsg("Set svn:externals"), null);
+
+ // Update the working copy to bring in the external subtree.
+ client.update(thisTest.getWCPathSet(), Revision.HEAD,
+ Depth.unknown, false, false, false, false);
+ }
+
+ /**
+ * Test WC-to-WC copy with implicit pinned externals
+ * @throws Throwable
+ */
+ public void testCopyPinExternals_wc2wc() throws Throwable
+ {
+ // build the test setup
+ OneTest thisTest = new OneTest();
+ setupPinExternalsTest(thisTest);
+
+ List<CopySource> sources = new ArrayList<CopySource>(1);
+ sources.add(new CopySource(thisTest.getWCPath() + "/A/B", null, null));
+ String target = thisTest.getWCPath() + "/A/Bcopy";
+ client.copy(sources, target, true, false, false,
+ true, // pinExternals
+ null, // externalsToPin
+ null, null, null);
+
+ // Verification
+ String expected = ("^/A/D/H@2 ADHext\n" +
+ "^/A/D/H@1 peggedADHext\n" +
+ "-r1 ^/A/D/H@2 revvedADHext\n");
+ String actual =
+ new String(client.propertyGet(target, "svn:externals", null,
null));
+
+ assertEquals(expected, actual);
+ }
+
+ /**
+ * Test WC-to-REPO copy with implicit pinned externals
+ * @throws Throwable
+ */
+ public void testCopyPinExternals_wc2repo() throws Throwable
+ {
+ // build the test setup
+ OneTest thisTest = new OneTest();
+ setupPinExternalsTest(thisTest);
+
+ List<CopySource> sources = new ArrayList<CopySource>(1);
+ sources.add(new CopySource(thisTest.getWCPath() + "/A/B", null, null));
+ String target = thisTest.getUrl() + "/A/Bcopy";
+ client.copy(sources, target, true, false, false,
+ true, // pinExternals
+ null, // externalsToPin
+ null, new ConstMsg("Copy WC to REPO"), null);
+
+ // Verification
+ String expected = ("^/A/D/H@2 ADHext\n" +
+ "^/A/D/H@1 peggedADHext\n" +
+ "-r1 ^/A/D/H@2 revvedADHext\n");
+ String actual =
+ new String(client.propertyGet(target, "svn:externals", null,
null));
+
+ assertEquals(expected, actual);
+ }
+
+ /**
+ * Test REPO-to-WC copy with implicit pinned externals
+ * @throws Throwable
+ */
+ public void testCopyPinExternals_repo2wc() throws Throwable
+ {
+ // build the test setup
+ OneTest thisTest = new OneTest();
+ setupPinExternalsTest(thisTest);
+
+ List<CopySource> sources = new ArrayList<CopySource>(1);
+ sources.add(new CopySource(thisTest.getUrl() + "/A/B", null, null));
+ String target = thisTest.getWCPath() + "/A/Bcopy";
+ client.copy(sources, target, true, false, false,
+ true, // pinExternals
+ null, // externalsToPin
+ null, null, null);
+
+ // Verification
+ String expected = ("^/A/D/H@2 ADHext\n" +
+ "^/A/D/H@1 peggedADHext\n" +
+ "-r1 ^/A/D/H@2 revvedADHext\n");
+ String actual =
+ new String(client.propertyGet(target, "svn:externals", null,
null));
+
+ assertEquals(expected, actual);
+ }
+
+ /**
+ * Test REPO-to-REPO copy with implicit pinned externals
+ * @throws Throwable
+ */
+ public void testCopyPinExternals_repo2repo() throws Throwable
+ {
+ // build the test setup
+ OneTest thisTest = new OneTest();
+ setupPinExternalsTest(thisTest);
+
+ List<CopySource> sources = new ArrayList<CopySource>(1);
+ sources.add(new CopySource(thisTest.getUrl() + "/A/B", null, null));
+ String target = thisTest.getUrl() + "/A/Bcopy";
+ client.copy(sources, target, true, false, false,
+ true, // pinExternals
+ null, // externalsToPin
+ null, new ConstMsg("Copy WC to REPO"), null);
+
+ // Verification
+ String expected = ("^/A/D/H@2 ADHext\n" +
+ "^/A/D/H@1 peggedADHext\n" +
+ "-r1 ^/A/D/H@2 revvedADHext\n");
+ String actual =
+ new String(client.propertyGet(target, "svn:externals", null,
null));
+
+ assertEquals(expected, actual);
+ }
+
+ /**
+ * Test REPO-to-REPO copy with eplicit pinned externals
+ * @throws Throwable
+ */
+ public void testCopyPinExternals_repo2repo_explicit() throws Throwable
+ {
+ // build the test setup
+ OneTest thisTest = new OneTest();
+ setupPinExternalsTest(thisTest);
+
+ String sourceUrl = thisTest.getUrl() + "/A/B";
+ Map<String, List<ExternalItem>> externalsToPin =
+ new HashMap<String, List<ExternalItem>>();
+ List<ExternalItem> items = new ArrayList<ExternalItem>(1);
+ items.add(new ExternalItem("ADHext", "^/A/D/H", null, null));
+ externalsToPin.put(sourceUrl, items);
+
+ List<CopySource> sources = new ArrayList<CopySource>(1);
+ sources.add(new CopySource(sourceUrl, null, null));
+ String target = thisTest.getUrl() + "/A/Bcopy";
+ client.copy(sources, target, true, false, false,
+ true, // pinExternals
+ externalsToPin,
+ null, new ConstMsg("Copy WC to REPO"), null);
+
+ // Verification
+ String expected = ("^/A/D/H@2 ADHext\n" +
+ "^/A/D/H@1 peggedADHext\n" +
+ "-r1 ^/A/D/H revvedADHext\n");
+ String actual =
+ new String(client.propertyGet(target, "svn:externals", null,
null));
+
+ assertEquals(expected, actual);
+ }
+
/**
* Test the {@link SVNClientInterface.move()} API.
* @since 1.5
@@ -3003,7 +3175,7 @@ public class BasicTests extends SVNTests
srcs.add(new CopySource(thisTest.getUrl() + "/A", Revision.HEAD,
Revision.HEAD));
client.copy(srcs, thisTest.getUrl() + "/branches/A",
- true, false, false, null,
+ true, false, false, false, null, null,
new ConstMsg("create A branch"), null);
// update the WC (to r3) so that it has the branches folder
@@ -3046,7 +3218,7 @@ public class BasicTests extends SVNTests
// Do nothing, right now.
return false;
}
- });
+ });
}
/**