# Data structures and editor things for repository inspection.

As it turns out, the svn_repos_replay2(), svn_repos_dir_delta2() and svn_repos_begin_report2() interfaces can be extremely useful for examining the repository, or more exactly, changes to the repository. More...

## Data Structures
struct | svn_repos_node_t
| A node in the repository. More...
## Typedefs
typedef struct svn_repos_node_t | svn_repos_node_t
| A node in the repository.
## Functions
svn_error_t * | svn_repos_node_editor (const svn_delta_editor_t **editor, void **edit_baton, svn_repos_t *repos, svn_fs_root_t *base_root, svn_fs_root_t *root, apr_pool_t *node_pool, apr_pool_t *pool)
| Set *editor and *edit_baton to an editor that, when driven by a driver such as svn_repos_replay2(), builds an `svn_repos_node_t *` tree representing the delta from base_root to root in repos's filesystem.
svn_repos_node_t * | svn_repos_node_from_baton (void *edit_baton)
| Return the root node of the linked-list tree generated by driving the editor (associated with edit_baton) created by svn_repos_node_editor().

## Detailed Description

As it turns out, the svn_repos_replay2(), svn_repos_dir_delta2() and svn_repos_begin_report2() interfaces can be extremely useful for examining the repository, or more exactly, changes to the repository.

These drivers allows for differences between two trees to be described using an editor.

By using the editor obtained from svn_repos_node_editor() with one of the drivers mentioned above, the description of how to transform one tree into another can be used to build an in-memory linked-list tree, which each node representing a repository node that was changed.

## Typedef Documentation

typedef struct svn_repos_node_t svn_repos_node_t

A node in the repository.

## Function Documentation

svn_error_t* svn_repos_node_editor | ( | const svn_delta_editor_t ** | editor,
|  | void ** | edit_baton,
|  | svn_repos_t * | repos,
|  | svn_fs_root_t * | base_root,
|  | svn_fs_root_t * | root,
|  | apr_pool_t * | node_pool,
|  | apr_pool_t * | pool |
| ) |  |  |

Set *editor and *edit_baton to an editor that, when driven by a driver such as svn_repos_replay2(), builds an `svn_repos_node_t *` tree representing the delta from base_root to root in repos's filesystem.

The editor can also be driven by svn_repos_dir_delta2() or svn_repos_begin_report2(), but unless you have special needs, svn_repos_replay2() is preferred.

Invoke svn_repos_node_from_baton() on edit_baton to obtain the root node afterwards.

Note that the delta includes "bubbled-up" directories; that is, many of the directory nodes will have no prop_mods.

Allocate the tree and its contents in node_pool; do all other allocation in pool.

svn_repos_node_t* svn_repos_node_from_baton | ( | void * | edit_baton | ) |

Return the root node of the linked-list tree generated by driving the editor (associated with edit_baton) created by svn_repos_node_editor().

This is only really useful if used *after* the editor drive is completed.

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines