pub unsafe extern "C" fn svn_client_switch3(
result_rev: *mut svn_revnum_t,
path: *const c_char,
url: *const c_char,
peg_revision: *const svn_opt_revision_t,
revision: *const svn_opt_revision_t,
depth: svn_depth_t,
depth_is_sticky: svn_boolean_t,
ignore_externals: svn_boolean_t,
allow_unver_obstructions: svn_boolean_t,
ignore_ancestry: svn_boolean_t,
ctx: *mut svn_client_ctx_t,
pool: *mut apr_pool_t,
) -> *mut svn_error_t
Expand description
Switch an existing working copy directory to a different repository location.
This is normally used to switch a working copy directory over to another line of development, such as a branch or a tag. Switching an existing working copy directory is more efficient than checking out @a url from scratch.
@param[out] result_rev If non-NULL, the value of the revision to which
the working copy was actually switched.
@param[in] path The directory to be switched. This need not be the
root of a working copy.
@param[in] url The repository URL to switch to.
@param[in] peg_revision The peg revision.
@param[in] revision The operative revision.
@param[in] depth The depth of the operation. If #svn_depth_infinity,
switch fully recursively. Else if #svn_depth_immediates,
switch @a path and its file children (if any), and
switch subdirectories but do not update them. Else if
#svn_depth_files, switch just file children, ignoring
subdirectories completely. Else if #svn_depth_empty,
switch just @a path and touch nothing underneath it.
@param[in] depth_is_sticky If @c TRUE, and @a depth is not
#svn_depth_unknown, then in addition to switching @a path, also
set its sticky ambient depth value to @a depth.
@param[in] ignore_externals If @c TRUE, don’t process externals
definitions as part of this operation.
@param[in] allow_unver_obstructions If @c TRUE, then tolerate existing
unversioned items that obstruct incoming paths. Only
obstructions of the same type (file or dir) as the added
item are tolerated. The text of obstructing files is left
as-is, effectively treating it as a user modification after
the checkout. Working properties of obstructing items are
set equal to the base properties.
If @c FALSE, then abort if there are any unversioned
obstructing items.
@param[in] ignore_ancestry If @c FALSE, then verify that the file
or directory at @a path shares some common version control
ancestry with the switch URL location (represented by the
combination of @a url, @a peg_revision, and @a revision),
and returning #SVN_ERR_CLIENT_UNRELATED_RESOURCES if they
do not. If @c TRUE, no such sanity checks are performed.
@param[in] ctx The standard client context, used for authentication and notification. The notifier is invoked for paths affected by the switch, and also for files which may be restored from the pristine store after being previously removed from the working copy. @param[in] pool Used for any temporary allocation.
@return A pointer to an #svn_error_t of the type (this list is not
exhaustive):
#SVN_ERR_CLIENT_BAD_REVISION if @a revision is not one of
#svn_opt_revision_number, #svn_opt_revision_head, or
#svn_opt_revision_date.
If no error occurred, return #SVN_NO_ERROR.
@since New in 1.7.
@see #svn_depth_t
#svn_client_ctx_t
@ref clnt_revisions for
a discussion of operative and peg revisions.