# Move paths in the working copy or repository.
[Client working copy management]

## Functions
svn_error_t * | svn_client_move6 (const apr_array_header_t *src_paths, const char *dst_path, svn_boolean_t move_as_child, svn_boolean_t make_parents, const apr_hash_t *revprop_table, svn_commit_callback2_t commit_callback, void *commit_baton, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Move src_paths to dst_path.
svn_error_t * | svn_client_move5 (svn_commit_info_t **commit_info_p, const apr_array_header_t *src_paths, const char *dst_path, svn_boolean_t force, svn_boolean_t move_as_child, svn_boolean_t make_parents, const apr_hash_t *revprop_table, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_move6(), but returns the commit info in *commit_info_p rather than through a callback function.
svn_error_t * | svn_client_move4 (svn_commit_info_t **commit_info_p, const char *src_path, const char *dst_path, svn_boolean_t force, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_move5(), with only one src_path, move_as_child set to `FALSE`, revprop_table passed as NULL, and make_parents set to `FALSE`.
svn_error_t * | svn_client_move3 (svn_commit_info_t **commit_info_p, const char *src_path, const char *dst_path, svn_boolean_t force, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_move4(), with the difference that if dst_path already exists and is a directory, move the item into that directory, keeping its name (the last component of src_path).
svn_error_t * | svn_client_move2 (svn_client_commit_info_t **commit_info_p, const char *src_path, const char *dst_path, svn_boolean_t force, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_move3(), but uses svn_client_commit_info_t for commit_info_p.
svn_error_t * | svn_client_move (svn_client_commit_info_t **commit_info_p, const char *src_path, const svn_opt_revision_t *src_revision, const char *dst_path, svn_boolean_t force, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_move2(), but an extra argument src_revision must be passed.

## Function Documentation

svn_error_t* svn_client_move | ( | svn_client_commit_info_t ** | commit_info_p,
|  | const char * | src_path,
|  | const svn_opt_revision_t * | src_revision,
|  | const char * | dst_path,
|  | svn_boolean_t | force,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_client_move2(), but an extra argument src_revision must be passed.

This has no effect, but must be of kind svn_opt_revision_unspecified or svn_opt_revision_head, otherwise error SVN_ERR_UNSUPPORTED_FEATURE is returned.

Deprecated:
  Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_client_move2 | ( | svn_client_commit_info_t ** | commit_info_p,
|  | const char * | src_path,
|  | const char * | dst_path,
|  | svn_boolean_t | force,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_client_move3(), but uses svn_client_commit_info_t for commit_info_p.

Deprecated:
  Provided for backward compatibility with the 1.2 API.

Since:
  New in 1.2.

svn_error_t* svn_client_move3 | ( | svn_commit_info_t ** | commit_info_p,
|  | const char * | src_path,
|  | const char * | dst_path,
|  | svn_boolean_t | force,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_client_move4(), with the difference that if dst_path already exists and is a directory, move the item into that directory, keeping its name (the last component of src_path).

Since:
  New in 1.3.

Deprecated:
  Provided for backward compatibility with the 1.3 API.

svn_error_t* svn_client_move4 | ( | svn_commit_info_t ** | commit_info_p,
|  | const char * | src_path,
|  | const char * | dst_path,
|  | svn_boolean_t | force,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_client_move5(), with only one src_path, move_as_child set to `FALSE`, revprop_table passed as NULL, and make_parents set to `FALSE`.

Note: The behaviour of force changed in 1.5 (r860885 and r861421), when the 'move' semantics were improved to just move the source including any modified and/or unversioned items in it. Before that, force controlled what happened to such items, but now force is ignored.

Since:
  New in 1.4.

Deprecated:
  Provided for backward compatibility with the 1.4 API.

svn_error_t* svn_client_move5 | ( | svn_commit_info_t ** | commit_info_p,
|  | const apr_array_header_t * | src_paths,
|  | const char * | dst_path,
|  | svn_boolean_t | force,
|  | svn_boolean_t | move_as_child,
|  | svn_boolean_t | make_parents,
|  | const apr_hash_t * | revprop_table,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_client_move6(), but returns the commit info in *commit_info_p rather than through a callback function.

A WC-to-WC move will include any modified and/or unversioned children. force is ignored.

Since:
  New in 1.5.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_client_move6 | ( | const apr_array_header_t * | src_paths,
|  | const char * | dst_path,
|  | svn_boolean_t | move_as_child,
|  | svn_boolean_t | make_parents,
|  | const apr_hash_t * | revprop_table,
|  | svn_commit_callback2_t | commit_callback,
|  | void * | commit_baton,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

Move src_paths to dst_path.

src_paths must be files or directories under version control, or URLs of versioned items in the repository. All src_paths must be of the same type. If multiple src_paths are given, dst_path must be a directory and src_paths will be moved as children of dst_path.

If src_paths are repository URLs:

- dst_path must also be a repository URL.

- The authentication baton in ctx and ctx->log_msg_func/ctx->log_msg_baton are used to commit the move.

- The move operation will be immediately committed.

If src_paths are working copy paths:

- dst_path must also be a working copy path.

- ctx->log_msg_func3 and ctx->log_msg_baton3 are ignored.

- This is a scheduling operation. No changes will happen to the repository until a commit occurs. This scheduling can be removed with svn_client_revert2(). If one of src_paths is a file it is removed from the working copy immediately. If one of src_path is a directory it will remain in the working copy but all the files, and unversioned items, it contains will be removed.

The parent of dst_path must already exist.

If src_paths has only one item, attempt to move it to dst_path. If move_as_child is TRUE and dst_path already exists, attempt to move the item as a child of dst_path. If move_as_child is FALSE and dst_path already exists, fail with SVN_ERR_ENTRY_EXISTS if dst_path is a working copy path and SVN_ERR_FS_ALREADY_EXISTS if dst_path is a URL.

If src_paths has multiple items, and move_as_child is TRUE, all src_paths are moved as children of dst_path. If any child of dst_path already exists with the same name any item in src_paths, fail with SVN_ERR_ENTRY_EXISTS if dst_path is a working copy path and SVN_ERR_FS_ALREADY_EXISTS if dst_path is a URL.

If src_paths has multiple items, and move_as_child is FALSE, fail with SVN_ERR_CLIENT_MULTIPLE_SOURCES_DISALLOWED.

If make_parents is TRUE, create any non-existent parent directories also.

If non-NULL, revprop_table is a hash table holding additional, custom revision properties (`const char *` names mapped to `svn_string_t *` values) to be set on the new revision in the event that this is a committing operation. This table cannot contain any standard Subversion properties.

ctx->log_msg_func3/ctx->log_msg_baton3 are a callback/baton combo that this function can use to query for a commit log message when one is needed.

If ctx->notify_func2 is non-NULL, then for each item moved, call ctx->notify_func2 with the ctx->notify_baton2 twice, once to indicate the deletion of the moved thing, and once to indicate the addition of the new location of the thing.

### Is this really true? What about svn_wc_notify_commit_replaced()? ###

If commit_callback is non-NULL, then for each successful commit, call commit_callback with commit_baton and a svn_commit_info_t for the commit.

Since:
  New in 1.7.

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines