Loading...
Searching...
No Matches
Data structures and editor things forrepository inspection.

As it turns out, the svn_repos_replay2(), svn_repos_dir_delta2() and svn_repos_begin_report3() 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().
svn_error_t * | svn_repos_info_format (int *repos_format, svn_version_t **supports_version, svn_repos_t *repos, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
| Return repository format information for repos.

## Detailed Description

As it turns out, the svn_repos_replay2(), svn_repos_dir_delta2() and svn_repos_begin_report3() 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.

## Function Documentation

## svn_repos_info_format()

svn_error_t * svn_repos_info_format | ( | int * | repos_format,
|  | svn_version_t ** | supports_version,
|  | svn_repos_t * | repos,
|  | apr_pool_t * | result_pool,
|  | apr_pool_t * | scratch_pool
| ) |  |

Return repository format information for repos.

Set *repos_format to the repository format number of repos, which is an integer that increases when incompatible changes are made (such as by svn_repos_upgrade2).

Set *supports_version to the version number of the minimum Subversion GA release that can read and write repos; allocate it in result_pool. Use scratch_pool for temporary allocations.

See also
  svn_fs_info_format, svn_repos_capabilities

Since
  New in 1.9.

## svn_repos_node_editor()

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_report3(), 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_from_baton()

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.