Log Message: |
On the pin-externals branch, allow fine-grained API-level control over which
externals get pinned during a copy. This feature is intended for clients which
allow users to select specific externals for pinning, like TortoiseSVN does.
Suggested by: steveking
* subversion/include/svn_client.h
(svn_client_copy7): Add externals_to_pin parameter. Extend docstring.
* subversion/libsvn_client/copy.c
(make_external_description): New. Factored out from pin_externals_prop().
(pin_externals_prop): Add externals_to_pin parameter. If set, only pin
externals matching those in externals_to_pin.
(resolve_pinned_externals, do_wc_to_wc_copies_with_write_lock,
do_wc_to_wc_copies, repos_to_repos_copy, wc_to_repos_copy,
repos_to_wc_copy_single, repos_to_wc_copy_locked, repos_to_wc_copy,
try_copy, svn_client_copy7): Add new externals_to_pin parameter
and pass it all the way down to pin_externals_prop().
(svn_client_move7): Pass NULL for externals_to_pin.
* subversion/libsvn_client/deprecated.c
(svn_client_copy6): Pass NULL for externals_to_pin.
* subversion/svn/copy-cmd.c
(svn_cl__copy): Pass NULL for externals_to_pin.
* subversion/tests/libsvn_client/client-test.c
(test_copy_pin_externals, test_funcs): New test.
|