Subversion
|
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. More... | |
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. More... | |
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(). More... | |
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.
typedef struct svn_repos_node_t svn_repos_node_t |
A node in the repository.
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_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.