# Begin versioning files/directories in a working copy.
[Client working copy management]

## Functions
svn_error_t * | svn_client_add4 (const char *path, svn_depth_t depth, svn_boolean_t force, svn_boolean_t no_ignore, svn_boolean_t add_parents, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Schedule a working copy path for addition to the repository.
svn_error_t * | svn_client_add3 (const char *path, svn_boolean_t recursive, svn_boolean_t force, svn_boolean_t no_ignore, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_add4(), but with add_parents always set to FALSE and depth set according to recursive: if TRUE, then depth is svn_depth_infinity, if FALSE, then svn_depth_empty.
svn_error_t * | svn_client_add2 (const char *path, svn_boolean_t recursive, svn_boolean_t force, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_add3(), but with no_ignore always set to FALSE.
svn_error_t * | svn_client_add (const char *path, svn_boolean_t recursive, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_add2(), but with force always set to FALSE.

## Function Documentation

svn_error_t* svn_client_add | ( | const char * | path,
|  | svn_boolean_t | recursive,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_client_add2(), but with force always set to FALSE.

Deprecated:
  Provided for backward compatibility with the 1.0 API.

svn_error_t* svn_client_add2 | ( | const char * | path,
|  | svn_boolean_t | recursive,
|  | svn_boolean_t | force,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_client_add3(), but with no_ignore always set to FALSE.

Deprecated:
  Provided for backward compatibility with the 1.2 API.

svn_error_t* svn_client_add3 | ( | const char * | path,
|  | svn_boolean_t | recursive,
|  | svn_boolean_t | force,
|  | svn_boolean_t | no_ignore,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_client_add4(), but with add_parents always set to FALSE and depth set according to recursive: if TRUE, then depth is svn_depth_infinity, if FALSE, then svn_depth_empty.

Deprecated:
  Provided for backward compatibility with the 1.4 API.

svn_error_t* svn_client_add4 | ( | const char * | path,
|  | svn_depth_t | depth,
|  | svn_boolean_t | force,
|  | svn_boolean_t | no_ignore,
|  | svn_boolean_t | add_parents,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

Schedule a working copy path for addition to the repository.

If depth is svn_depth_empty, add just path and nothing below it. If svn_depth_files, add path and any file children of path. If svn_depth_immediates, add path, any file children, and any immediate subdirectories (but nothing underneath those subdirectories). If svn_depth_infinity, add path and everything under it fully recursively.

path's parent must be under revision control already (unless add_parents is TRUE), but path is not. If recursive is set, then assuming path is a directory, all of its contents will be scheduled for addition as well.

If force is not set and path is already under version control, return the error SVN_ERR_ENTRY_EXISTS. If force is set, do not error on already-versioned items. When used on a directory in conjunction with the recursive flag, this has the effect of scheduling for addition unversioned files and directories scattered deep within a versioned tree.

If ctx->notify_func2 is non-NULL, then for each added item, call ctx->notify_func2 with ctx->notify_baton2 and the path of the added item.

If no_ignore is FALSE, don't add any file or directory (or recurse into any directory) that is unversioned and found by recursion (as opposed to being the explicit target path) and whose name matches the svn:ignore property on its parent directory or the global-ignores list in ctx->config. If no_ignore is TRUE, do include such files and directories. (Note that an svn:ignore property can influence this behaviour only when recursing into an already versioned directory with force.)

If add_parents is TRUE, recurse up path's directory and look for a versioned directory. If found, add all intermediate paths between it and path. If not found, return SVN_ERR_CLIENT_NO_VERSIONED_PARENT.

Important:
  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().

Since:
  New in 1.5.

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines