svn_client_switch3

Function svn_client_switch3 

Source
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.