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