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 &copySources, 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 &copySo
     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 &copySources, 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;
                          }
-       });
+        });
     }
 
     /**


Reply via email to