Copies each source in
sources
to
dst
.
If multiple
sources
are given,
dst
must be a directory, and
sources
will be copied as children of
dst
.
Each
src
in
sources
must be files or directories under version control, or URLs of a versioned item in the repository. If
sources
has multiple items, they must be all repository URLs or all working copy paths.
The parent of
dst
must already exist.
If
sources
has only one item, attempts to copy it to
dst
. If
failWhenDstExists
is
false and
dst
already exists, attempts to copy the item as a child of
dst
. If
failWhenDstExists
is
true and
dst
already exists, throws an {@link SVNException} with the {@link SVNErrorCode#ENTRY_EXISTS} error code.
If
sources
has multiple items, and
failWhenDstExists
is
false, all
sources
are copied as children of
dst
. If any child of
dst
already exists with the same name any item in
sources
, throws an {@link SVNException} with the {@link SVNErrorCode#ENTRY_EXISTS} error code.
If
sources
has multiple items, and
failWhenDstExists
is
true, throws an {@link SVNException} with the {@link SVNErrorCode#CLIENT_MULTIPLE_SOURCES_DISALLOWED}.
This method is just a variant of a local add operation, where
sources
are scheduled for addition as copies. No changes will happen to the repository until a commit occurs. This scheduling can be removed with {@link SVNWCClient#doRevert(File[],SVNDepth,Collection)}.
If
makeParents is true, creates any non-existent parent directories also. If the caller's {@link ISVNEventHandler} is non-null, invokes it for each item added at the new location. Note: this routine requires repository access only when sources are urls.
@param sources array of copy sources
@param dst destination working copy path
@param isMove if true, then it will be a move operation (delete, then add with history)
@param makeParents if true, creates non-existent parent directories as well
@param failWhenDstExists controls whether to fail or not if dst
already exists
@throws SVNException
@since 1.2, SVN 1.5