Main Page   Modules   Data Structures   File List   Data Fields   Globals  

Dumping and loading filesystem data


Data Structures

struct  svn_repos_parse_fns_t
 A vtable that is driven by svn_repos_parse_dumpstream. More...


Typedefs

typedef svn_repos_parse_fns_t svn_repos_parser_fns_t
 A vtable that is driven by svn_repos_parse_dumpstream.


Enumerations

enum  svn_node_action
 The different "actions" attached to nodes in the dumpfile.

enum  svn_repos_load_uuid
 The different policies for processing the UUID in the dumpfile.


Functions

svn_error_tsvn_repos_dump_fs (svn_repos_t *repos, svn_stream_t *dumpstream, svn_stream_t *feedback_stream, svn_revnum_t start_rev, svn_revnum_t end_rev, svn_boolean_t incremental, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
 Dump the contents of the filesystem within already-open repos into writable dumpstream.

svn_error_tsvn_repos_load_fs (svn_repos_t *repos, svn_stream_t *dumpstream, svn_stream_t *feedback_stream, enum svn_repos_load_uuid uuid_action, const char *parent_dir, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
 Read and parse dumpfile-formatted dumpstream, reconstructing filesystem revisions in already-open repos, handling uuids in accordance with uuid_action.

svn_error_tsvn_repos_parse_dumpstream (svn_stream_t *stream, const svn_repos_parser_fns_t *parse_fns, void *parse_baton, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
 Read and parse dumpfile-formatted stream, calling callbacks in parse_fns/@a parse_baton, and using pool for allocations.

svn_error_tsvn_repos_get_fs_build_parser (const svn_repos_parser_fns_t **parser, void **parse_baton, svn_repos_t *repos, svn_boolean_t use_history, enum svn_repos_load_uuid uuid_action, svn_stream_t *outstream, const char *parent_dir, apr_pool_t *pool)
 Set *parser and *parse_baton to a vtable parser which commits new revisions to the fs in repos.


Detailed Description

The filesystem 'dump' format contains nothing but the abstract structure of the filesystem -- independent of any internal node-id schema or database back-end. All of the data in the dumpfile is acquired by public function calls into svn_fs.h. Similarly, the parser which reads the dumpfile is able to reconstruct the filesystem using only public svn_fs.h routines.

Thus the dump/load feature's main purpose is for *migrating* data from one svn filesystem to another -- presumably two filesystems which have different internal implementations.

If you simply want to backup your filesystem, you're probably better off using the built-in facilities of the DB backend (using Berkeley DB's hot-backup feature, for example.)

For a description of the dumpfile format, see /trunk/notes/fs_dumprestore.txt.


Function Documentation

svn_error_t* svn_repos_dump_fs svn_repos_t   repos,
svn_stream_t   dumpstream,
svn_stream_t   feedback_stream,
svn_revnum_t    start_rev,
svn_revnum_t    end_rev,
svn_boolean_t    incremental,
svn_cancel_func_t    cancel_func,
void *    cancel_baton,
apr_pool_t *    pool
 

Dump the contents of the filesystem within already-open repos into writable dumpstream.

Begin at revision start_rev, and dump every revision up through end_rev. Use pool for all allocation. If non-@c NULL, send feedback to feedback_stream. dumpstream can be NULL for the purpose of verifying the repository.

If start_rev is SVN_INVALID_REVNUM, then start dumping at revision 0. If end_rev is SVN_INVALID_REVNUM, then dump through the HEAD revision.

If incremental is TRUE, the first revision dumped will be a diff against the previous revision (usually it looks like a full dump of the tree).

If cancel_func is not NULL, it is called periodically with cancel_baton as argument to see if the client wishes to cancel the dump.

svn_error_t* svn_repos_get_fs_build_parser const svn_repos_parser_fns_t **    parser,
void **    parse_baton,
svn_repos_t   repos,
svn_boolean_t    use_history,
enum svn_repos_load_uuid    uuid_action,
svn_stream_t   outstream,
const char *    parent_dir,
apr_pool_t *    pool
 

Set *parser and *parse_baton to a vtable parser which commits new revisions to the fs in repos.

The constructed parser will treat UUID records in a manner consistent with uuid_action. Use pool to operate on the fs.

If use_history is set, then the parser will require relative 'copyfrom' history to exist in the repository when it encounters nodes that are added-with-history.

If parent_dir is not null, then the parser will reparent all the loaded nodes, from root to parent_dir. The directory parent_dir must be an existing directory in the repository.

Print all parsing feedback to outstream (if non-@c NULL).

svn_error_t* svn_repos_load_fs svn_repos_t   repos,
svn_stream_t   dumpstream,
svn_stream_t   feedback_stream,
enum svn_repos_load_uuid    uuid_action,
const char *    parent_dir,
svn_cancel_func_t    cancel_func,
void *    cancel_baton,
apr_pool_t *    pool
 

Read and parse dumpfile-formatted dumpstream, reconstructing filesystem revisions in already-open repos, handling uuids in accordance with uuid_action.

Read and parse dumpfile-formatted dumpstream, reconstructing filesystem revisions in already-open repos. Use pool for all allocation. If non-@c NULL, send feedback to feedback_stream.

If the dumpstream contains copy history that is unavailable in the repository, an error will be thrown.

The repository's UUID will be updated iff the dumpstream contains a UUID and uuid_action is not equal to svn_repos_load_uuid_ignore and either the repository contains no revisions or uuid_action is equal to svn_repos_load_uuid_force.

If the dumpstream contains no UUID, then uuid_action is ignored and the repository UUID is not touched.

If cancel_func is not NULL, it is called periodically with cancel_baton as argument to see if the client wishes to cancel the load.

svn_error_t* svn_repos_parse_dumpstream svn_stream_t   stream,
const svn_repos_parser_fns_t   parse_fns,
void *    parse_baton,
svn_cancel_func_t    cancel_func,
void *    cancel_baton,
apr_pool_t *    pool
 

Read and parse dumpfile-formatted stream, calling callbacks in parse_fns/@a parse_baton, and using pool for allocations.

If cancel_func is not NULL, it is called periodically with cancel_baton as argument to see if the client wishes to cancel the dump.

This parser has built-in knowledge of the dumpfile format, but only in a general sense:

* it recognizes revision and node records by looking for either a REVISION_NUMBER or NODE_PATH headers.

* it recognizes the CONTENT-LENGTH headers, so it knows if and how to suck up the content body.

* it knows how to parse a content body into two parts: props and text, and pass the pieces to the vtable.

This is enough knowledge to make it easy on vtable implementors, but still allow expansion of the format: most headers are ignored.


Generated on Wed Oct 20 01:47:47 2004 for Subversion by doxygen1.2.18