# Report interesting information about paths in the working copy.
[Client working copy management]

## Data Structures
struct | svn_client_status_t
| Structure for holding the "status" of a working copy item. More...
## Typedefs
typedef struct svn_client_status_t | svn_client_status_t
| Structure for holding the "status" of a working copy item.
typedef svn_error_t *(* | svn_client_status_func_t )(void *baton, const char *path, const svn_client_status_t *status, apr_pool_t *scratch_pool)
| A callback for reporting a status about path (which may be an absolute or relative path).
## Functions
svn_client_status_t * | svn_client_status_dup (const svn_client_status_t *status, apr_pool_t *result_pool)
| Return a duplicate of status, allocated in result_pool.
svn_error_t * | svn_client_status5 (svn_revnum_t *result_rev, svn_client_ctx_t *ctx, const char *path, const svn_opt_revision_t *revision, svn_depth_t depth, svn_boolean_t get_all, svn_boolean_t update, svn_boolean_t no_ignore, svn_boolean_t ignore_externals, svn_boolean_t depth_as_sticky, const apr_array_header_t *changelists, svn_client_status_func_t status_func, void *status_baton, apr_pool_t *scratch_pool)
| Given path to a working copy directory (or single file), call status_func/status_baton with a set of svn_wc_status_t * structures which describe the status of path, and its children (recursing according to depth).
svn_error_t * | svn_client_status4 (svn_revnum_t *result_rev, const char *path, const svn_opt_revision_t *revision, svn_wc_status_func3_t status_func, void *status_baton, svn_depth_t depth, svn_boolean_t get_all, svn_boolean_t update, svn_boolean_t no_ignore, svn_boolean_t ignore_externals, const apr_array_header_t *changelists, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Same as svn_client_status5(), but using svn_wc_status_func3_t instead of svn_client_status_func_t and depth_as_sticky set to TRUE.
svn_error_t * | svn_client_status3 (svn_revnum_t *result_rev, const char *path, const svn_opt_revision_t *revision, svn_wc_status_func2_t status_func, void *status_baton, svn_depth_t depth, svn_boolean_t get_all, svn_boolean_t update, svn_boolean_t no_ignore, svn_boolean_t ignore_externals, const apr_array_header_t *changelists, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Same as svn_client_status4(), but using an svn_wc_status_func2_t instead of an svn_wc_status_func3_t.
svn_error_t * | svn_client_status2 (svn_revnum_t *result_rev, const char *path, const svn_opt_revision_t *revision, svn_wc_status_func2_t status_func, void *status_baton, svn_boolean_t recurse, svn_boolean_t get_all, svn_boolean_t update, svn_boolean_t no_ignore, svn_boolean_t ignore_externals, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Like svn_client_status3(), except with changelists passed as `NULL`, and with recurse instead of depth.
svn_error_t * | svn_client_status (svn_revnum_t *result_rev, const char *path, svn_opt_revision_t *revision, svn_wc_status_func_t status_func, void *status_baton, svn_boolean_t recurse, svn_boolean_t get_all, svn_boolean_t update, svn_boolean_t no_ignore, svn_client_ctx_t *ctx, apr_pool_t *pool)
| Similar to svn_client_status2(), but with ignore_externals always set to FALSE, taking the svn_wc_status_func_t type instead of the svn_wc_status_func2_t type for status_func, and requiring *revision to be non-const even though it is treated as constant.

## Typedef Documentation

typedef svn_error_t*(* svn_client_status_func_t)(void *baton, const char *path, const svn_client_status_t *status, apr_pool_t *scratch_pool)

A callback for reporting a status about path (which may be an absolute or relative path).

baton is a closure object; it should be provided by the implementation, and passed by the caller.

scratch_pool will be cleared between invocations to the callback.

### we might be revamping the status infrastructure, and this callback ### could totally disappear by the end of 1.7 development. however, we ### need to mark the STATUS parameter as "const" so that it is easier ### to reason about who/what can modify those structures.

Since:
  New in 1.7.

Definition at line 2237 of file svn_client.h.

typedef struct svn_client_status_t svn_client_status_t

Structure for holding the "status" of a working copy item.

Note:
  Fields may be added to the end of this structure in future versions. Therefore, to preserve binary compatibility, users should not directly allocate structures of this type.

Since:
  New in 1.7.

## Function Documentation

svn_error_t* svn_client_status | ( | svn_revnum_t * | result_rev,
|  | const char * | path,
|  | svn_opt_revision_t * | revision,
|  | svn_wc_status_func_t | status_func,
|  | void * | status_baton,
|  | svn_boolean_t | recurse,
|  | svn_boolean_t | get_all,
|  | svn_boolean_t | update,
|  | svn_boolean_t | no_ignore,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

Similar to svn_client_status2(), but with ignore_externals always set to FALSE, taking the svn_wc_status_func_t type instead of the svn_wc_status_func2_t type for status_func, and requiring *revision to be non-const even though it is treated as constant.

Deprecated:
  Provided for backward compatibility with the 1.1 API.

svn_error_t* svn_client_status2 | ( | svn_revnum_t * | result_rev,
|  | const char * | path,
|  | const svn_opt_revision_t * | revision,
|  | svn_wc_status_func2_t | status_func,
|  | void * | status_baton,
|  | svn_boolean_t | recurse,
|  | svn_boolean_t | get_all,
|  | svn_boolean_t | update,
|  | svn_boolean_t | no_ignore,
|  | svn_boolean_t | ignore_externals,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

Like svn_client_status3(), except with changelists passed as `NULL`, and with recurse instead of depth.

If recurse is TRUE, behave as if for svn_depth_infinity; else if recurse is FALSE, behave as if for svn_depth_immediates.

Since:
  New in 1.2.

Deprecated:
  Provided for backward compatibility with the 1.4 API.

svn_error_t* svn_client_status3 | ( | svn_revnum_t * | result_rev,
|  | const char * | path,
|  | const svn_opt_revision_t * | revision,
|  | svn_wc_status_func2_t | status_func,
|  | void * | status_baton,
|  | svn_depth_t | depth,
|  | svn_boolean_t | get_all,
|  | svn_boolean_t | update,
|  | svn_boolean_t | no_ignore,
|  | svn_boolean_t | ignore_externals,
|  | const apr_array_header_t * | changelists,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

Same as svn_client_status4(), but using an svn_wc_status_func2_t instead of an svn_wc_status_func3_t.

Since:
  New in 1.5.

Deprecated:
  Provided for backward compatibility with the 1.5 API.

svn_error_t* svn_client_status4 | ( | svn_revnum_t * | result_rev,
|  | const char * | path,
|  | const svn_opt_revision_t * | revision,
|  | svn_wc_status_func3_t | status_func,
|  | void * | status_baton,
|  | svn_depth_t | depth,
|  | svn_boolean_t | get_all,
|  | svn_boolean_t | update,
|  | svn_boolean_t | no_ignore,
|  | svn_boolean_t | ignore_externals,
|  | const apr_array_header_t * | changelists,
|  | svn_client_ctx_t * | ctx,
|  | apr_pool_t * | pool |
| ) |  |  |

Same as svn_client_status5(), but using svn_wc_status_func3_t instead of svn_client_status_func_t and depth_as_sticky set to TRUE.

Since:
  New in 1.6.

Deprecated:
  Provided for backward compatibility with the 1.6 API.

svn_error_t* svn_client_status5 | ( | svn_revnum_t * | result_rev,
|  | svn_client_ctx_t * | ctx,
|  | const char * | path,
|  | const svn_opt_revision_t * | revision,
|  | svn_depth_t | depth,
|  | svn_boolean_t | get_all,
|  | svn_boolean_t | update,
|  | svn_boolean_t | no_ignore,
|  | svn_boolean_t | ignore_externals,
|  | svn_boolean_t | depth_as_sticky,
|  | const apr_array_header_t * | changelists,
|  | svn_client_status_func_t | status_func,
|  | void * | status_baton,
|  | apr_pool_t * | scratch_pool |
| ) |  |  |

Given path to a working copy directory (or single file), call status_func/status_baton with a set of svn_wc_status_t * structures which describe the status of path, and its children (recursing according to depth).

- If get_all is set, retrieve all entries; otherwise, retrieve only "interesting" entries (local mods and/or out of date).

- If update is set, contact the repository and augment the status structures with information about out-of-dateness (with respect to revision). Also, if result_rev is not `NULL`, set *result_rev to the actual revision against which the working copy was compared (*result_rev is not meaningful unless update is set).

If no_ignore is `FALSE`, don't report any file or directory (or recurse into any directory) that is 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`, report each such file or directory with the status code svn_wc_status_ignored.

If ignore_externals is not set, then recurse into externals definitions (if any exist) after handling the main target. This calls the client notification function (in ctx) with the svn_wc_notify_status_external action before handling each externals definition, and with svn_wc_notify_status_completed after each.

If depth_as_sticky is set and depth is not svn_depth_unknown, then the status is calculated as if depth_is_sticky was passed to an equivalent update command.

changelists is an array of `const char *` changelist names, used as a restrictive filter on items whose statuses are reported; that is, don't report status about any item unless it's a member of one of those changelists. If changelists is empty (or altogether `NULL`), no changelist filtering occurs.

If path is an absolute path then the `path` parameter passed in each call to status_func will be an absolute path.

All temporary allocations are performed in scratch_pool.

Since:
  New in 1.7.

svn_client_status_t* svn_client_status_dup | ( | const svn_client_status_t * | status,
|  | apr_pool_t * | result_pool |
| ) |  |  |

Return a duplicate of status, allocated in result_pool.

No part of the new structure will be shared with status.

Since:
  New in 1.7.

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines