# svn_ra_reporter3_t Struct Reference

The update Reporter. More...

`#include <svn_ra.h>`

## Data Fields
svn_error_t *(* | set_path )(void *report_baton, const char *path, svn_revnum_t revision, svn_depth_t depth, svn_boolean_t start_empty, const char *lock_token, apr_pool_t *pool)
| Describe a working copy path as being at a particular revision and having depth depth.
svn_error_t *(* | delete_path )(void *report_baton, const char *path, apr_pool_t *pool)
| Describing a working copy path as missing.
svn_error_t *(* | link_path )(void *report_baton, const char *path, const char *url, svn_revnum_t revision, svn_depth_t depth, svn_boolean_t start_empty, const char *lock_token, apr_pool_t *pool)
| Like set_path(), but differs in that path in the working copy (relative to the root of the report driver) isn't a reflection of path in the repository (relative to the URL specified when opening the RA layer), but is instead a reflection of a different repository url at revision, and has depth depth.
svn_error_t *(* | finish_report )(void *report_baton, apr_pool_t *pool)
| WC calls this when the state report is finished; any directories or files not explicitly `set' are assumed to be at the baseline revision originally passed into do_update().
svn_error_t *(* | abort_report )(void *report_baton, apr_pool_t *pool)
| If an error occurs during a report, this routine should cause the filesystem transaction to be aborted & cleaned up.

## Detailed Description

The update Reporter.

A vtable structure which allows a working copy to describe a subset (or possibly all) of its working-copy to an RA layer, for the purposes of an update, switch, status, or diff operation.

Paths for report calls are relative to the target (not the anchor) of the operation. Report calls must be made in depth-first order: parents before children, all children of a parent before any siblings of the parent. The first report call must be a set_path with a path argument of "" and a valid revision. (If the target of the operation is locally deleted or missing, use the anchor's revision.) If the target of the operation is deleted or switched relative to the anchor, follow up the initial set_path call with a link_path or delete_path call with a path argument of "" to indicate that. In no other case may there be two report descriptions for the same path. If the target of the operation is a locally added file or directory (which previously did not exist), it may be reported as having revision 0 or as having the parent directory's revision.

Since:
  New in 1.5.

Definition at line 281 of file svn_ra.h.

## Field Documentation

svn_error_t*(* svn_ra_reporter3_t::abort_report)(void *report_baton, apr_pool_t *pool)

If an error occurs during a report, this routine should cause the filesystem transaction to be aborted & cleaned up.

No other reporting functions should be called after calling this function.

Definition at line 360 of file svn_ra.h.

svn_error_t*(* svn_ra_reporter3_t::delete_path)(void *report_baton, const char *path, apr_pool_t *pool)

Describing a working copy path as missing.

path may not be underneath a path on which set_path() was previously called with `svn_depth_exclude` in this report.

All temporary allocations are done in pool.

Definition at line 318 of file svn_ra.h.

svn_error_t*(* svn_ra_reporter3_t::finish_report)(void *report_baton, apr_pool_t *pool)

WC calls this when the state report is finished; any directories or files not explicitly `set' are assumed to be at the baseline revision originally passed into do_update().

No other reporting functions, including abort_report, should be called after calling this function.

Definition at line 353 of file svn_ra.h.

svn_error_t*(* svn_ra_reporter3_t::link_path)(void *report_baton, const char *path, const char *url, svn_revnum_t revision, svn_depth_t depth, svn_boolean_t start_empty, const char *lock_token, apr_pool_t *pool)

Like set_path(), but differs in that path in the working copy (relative to the root of the report driver) isn't a reflection of path in the repository (relative to the URL specified when opening the RA layer), but is instead a reflection of a different repository url at revision, and has depth depth.

path may not be underneath a path on which set_path() was previously called with `svn_depth_exclude` in this report.

If start_empty is set and path is a directory, the implementor should assume the directory has no entries or props.

If lock_token is non-NULL, it is the lock token for path in the WC.

All temporary allocations are done in pool.

Definition at line 338 of file svn_ra.h.

svn_error_t*(* svn_ra_reporter3_t::set_path)(void *report_baton, const char *path, svn_revnum_t revision, svn_depth_t depth, svn_boolean_t start_empty, const char *lock_token, apr_pool_t *pool)

Describe a working copy path as being at a particular revision and having depth depth.

revision may be SVN_INVALID_REVNUM if (for example) path represents a locally-added path with no revision number, or depth is `svn_depth_exclude`.

path may not be underneath a path on which set_path() was previously called with `svn_depth_exclude` in this report.

If start_empty is set and path is a directory, the implementor should assume the directory has no entries or props.

This will *override* any previous set_path() calls made on parent paths. path is relative to the URL specified in svn_ra_open4().

If lock_token is non-NULL, it is the lock token for path in the WC.

All temporary allocations are done in pool.

Definition at line 303 of file svn_ra.h.

The documentation for this struct was generated from the following file:

- svn_ra.h

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines