# Copy paths in the working copy and repository.
[Client working copy management]

## Data Structures
struct | svn_client_copy_source_t
| A structure which describes the source of a copy operation--its path, revision, and peg revision. More...
## Typedefs
typedef struct svn_client_copy_source_t | svn_client_copy_source_t
| A structure which describes the source of a copy operation--its path, revision, and peg revision.
## Functions
svn_error_t * | svn_client_copy6 (const apr_array_header_t *sources, const char *dst_path, svn_boolean_t copy_as_child, svn_boolean_t make_parents, svn_boolean_t ignore_externals, const apr_hash_t *revprop_table, svn_commit_callback2_t commit_callback, void *commit_baton, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Copy each src in sources to dst_path.
svn_error_t * | svn_client_copy5 (svn_commit_info_t **commit_info_p, const apr_array_header_t *sources, const char *dst_path, svn_boolean_t copy_as_child, svn_boolean_t make_parents, svn_boolean_t ignore_externals, const apr_hash_t *revprop_table, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_copy6(), but returns the commit info in *commit_info_p rather than through a callback function.
svn_error_t * | svn_client_copy4 (svn_commit_info_t **commit_info_p, const apr_array_header_t *sources, const char *dst_path, svn_boolean_t copy_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_copy5(), with ignore_externals set to `FALSE`.
svn_error_t * | svn_client_copy3 (svn_commit_info_t **commit_info_p, const char *src_path, const svn_opt_revision_t *src_revision, const char *dst_path, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_copy4(), with only one src_path, copy_as_child set to `FALSE`, revprop_table passed as NULL, and make_parents set to `FALSE`.
svn_error_t * | svn_client_copy2 (svn_commit_info_t **commit_info_p, const char *src_path, const svn_opt_revision_t *src_revision, const char *dst_path, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_copy3(), with the difference that if dst_path already exists and is a directory, copy the item into that directory, keeping its name (the last component of src_path).
svn_error_t * | svn_client_copy (svn_client_commit_info_t **commit_info_p, const char *src_path, const svn_opt_revision_t *src_revision, const char *dst_path, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_copy2(), but uses svn_client_commit_info_t for commit_info_p.

## Typedef Documentation

typedef struct svn_client_copy_source_t svn_client_copy_source_t

A structure which describes the source of a copy operation--its path, revision, and peg revision.

Since:
  New in 1.5.

## Function Documentation

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

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

Deprecated:
  Provided for backward compatibility with the 1.2 API.

svn_error_t* svn_client_copy2 | ( | svn_commit_info_t ** | commit_info_p,
|  | const char * | src_path,
|  | const svn_opt_revision_t * | src_revision,
|  | const char * | dst_path,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_client_copy3(), with the difference that if dst_path already exists and is a directory, copy 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_copy3 | ( | svn_commit_info_t ** | commit_info_p,
|  | const char * | src_path,
|  | const svn_opt_revision_t * | src_revision,
|  | const char * | dst_path,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

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

Also, use src_revision as both the operational and peg revision.

Since:
  New in 1.4.

Deprecated:
  Provided for backward compatibility with the 1.4 API.

svn_error_t* svn_client_copy4 | ( | svn_commit_info_t ** | commit_info_p,
|  | const apr_array_header_t * | sources,
|  | const char * | dst_path,
|  | svn_boolean_t | copy_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_copy5(), with ignore_externals set to `FALSE`.

Since:
  New in 1.5.

Deprecated:
  Provided for backward compatibility with the 1.5 API.

svn_error_t* svn_client_copy5 | ( | svn_commit_info_t ** | commit_info_p,
|  | const apr_array_header_t * | sources,
|  | const char * | dst_path,
|  | svn_boolean_t | copy_as_child,
|  | svn_boolean_t | make_parents,
|  | svn_boolean_t | ignore_externals,
|  | const apr_hash_t * | revprop_table,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

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

Since:
  New in 1.6.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_client_copy6 | ( | const apr_array_header_t * | sources,
|  | const char * | dst_path,
|  | svn_boolean_t | copy_as_child,
|  | svn_boolean_t | make_parents,
|  | svn_boolean_t | ignore_externals,
|  | const apr_hash_t * | revprop_table,
|  | svn_commit_callback2_t | commit_callback,
|  | void * | commit_baton,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

Copy each src in sources to dst_path.

If multiple sources are given, dst_path must be a directory, and sources will be copied as children of dst_path.

sources must be an array of elements of type `svn_client_copy_source_t *`.

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, the src members must be all repository URLs or all working copy paths.

The parent of dst_path must already exist.

If sources has only one item, attempt to copy it to dst_path. If copy_as_child is TRUE and dst_path already exists, attempt to copy the item as a child of dst_path. If copy_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 sources has multiple items, and copy_as_child is TRUE, all sources are copied as children of dst_path. If any child of dst_path already exists with the same name any item in sources, 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 sources has multiple items, and copy_as_child is FALSE, fail with SVN_ERR_CLIENT_MULTIPLE_SOURCES_DISALLOWED.

If dst_path is a URL, use the authentication baton in ctx and ctx->log_msg_func3/ctx->log_msg_baton3 to immediately attempt to commit the copy action in the repository.

If dst_path is not a URL, then this is just a variant of svn_client_add(), where the sources are scheduled for addition as copies. No changes will happen to the repository until a commit occurs. This scheduling can be removed with svn_client_revert2().

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

If ignore_externals is set, don't process externals definitions as part of this operation.

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, invoke it with ctx->notify_baton2 for each item added at the new location, passing the new, relative path of the added item.

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