Subversion 1.6.16
Data Structures | Defines | Typedefs | Enumerations | Functions

svn_fs.h File Reference

Interface to the Subversion filesystem. More...

#include <apr.h>
#include <apr_pools.h>
#include <apr_hash.h>
#include <apr_tables.h>
#include <apr_time.h>
#include "svn_types.h"
#include "svn_string.h"
#include "svn_delta.h"
#include "svn_io.h"
#include "svn_mergeinfo.h"
#include "svn_checksum.h"

Go to the source code of this file.

Data Structures

struct  svn_fs_path_change2_t
 Change descriptor. More...
struct  svn_fs_path_change_t
 Similar to svn_fs_path_change2_t, but without kind and copyfrom information. More...
struct  svn_fs_dirent_t
 The type of a Subversion directory entry. More...

Defines

#define SVN_FS_TXN_CHECK_OOD   0x00001
 Do on-the-fly out-of-dateness checks.
#define SVN_FS_TXN_CHECK_LOCKS   0x00002
 Do on-the-fly lock checks.
Filesystem configuration options
#define SVN_FS_CONFIG_BDB_TXN_NOSYNC   "bdb-txn-nosync"
#define SVN_FS_CONFIG_BDB_LOG_AUTOREMOVE   "bdb-log-autoremove"
#define SVN_FS_CONFIG_FS_TYPE   "fs-type"
#define SVN_FS_TYPE_BDB   "bdb"
#define SVN_FS_TYPE_FSFS   "fsfs"
#define SVN_FS_CONFIG_PRE_1_4_COMPATIBLE   "pre-1.4-compatible"
 Create repository format compatible with Subversion versions earlier than 1.4.
#define SVN_FS_CONFIG_PRE_1_5_COMPATIBLE   "pre-1.5-compatible"
 Create repository format compatible with Subversion versions earlier than 1.5.
#define SVN_FS_CONFIG_PRE_1_6_COMPATIBLE   "pre-1.6-compatible"
 Create repository format compatible with Subversion versions earlier than 1.6.

Typedefs

typedef struct svn_fs_t svn_fs_t
 An object representing a Subversion filesystem.
typedef void(* svn_fs_warning_callback_t )(void *baton, svn_error_t *err)
 The type of a warning callback function.
typedef struct svn_fs_access_t svn_fs_access_t
 An opaque object representing temporary user data.
typedef struct svn_fs_id_t svn_fs_id_t
 An object representing a node-id.
typedef struct svn_fs_txn_t svn_fs_txn_t
 The type of a Subversion transaction object.
typedef struct svn_fs_root_t svn_fs_root_t
 The Filesystem Root object.
typedef struct
svn_fs_path_change2_t 
svn_fs_path_change2_t
 Change descriptor.
typedef struct svn_fs_path_change_t svn_fs_path_change_t
 Similar to svn_fs_path_change2_t, but without kind and copyfrom information.
typedef struct svn_fs_history_t svn_fs_history_t
 An opaque node history object.
typedef struct svn_fs_dirent_t svn_fs_dirent_t
 The type of a Subversion directory entry.
typedef svn_error_t *(* svn_fs_get_locks_callback_t )(void *baton, svn_lock_t *lock, apr_pool_t *pool)
 The type of a lock discovery callback function.
typedef svn_error_t *(* svn_fs_pack_notify_t )(void *baton, apr_int64_t shard, svn_fs_pack_notify_action_t action, apr_pool_t *pool)
 The type of a pack notification function.

Enumerations

enum  svn_fs_path_change_kind_t {
  svn_fs_path_change_modify = 0,
  svn_fs_path_change_add,
  svn_fs_path_change_delete,
  svn_fs_path_change_replace,
  svn_fs_path_change_reset
}
 

The kind of change that occurred on the path.

More...
enum  svn_fs_pack_notify_action_t {
  svn_fs_pack_notify_start = 0,
  svn_fs_pack_notify_end
}
 

The kind of action being taken by 'pack'.

More...

Functions

const svn_version_tsvn_fs_version (void)
 Get libsvn_fs version information.
svn_error_tsvn_fs_initialize (apr_pool_t *pool)
 Callers should invoke this function to initialize global state in the FS library before creating FS objects.
void svn_fs_set_warning_func (svn_fs_t *fs, svn_fs_warning_callback_t warning, void *warning_baton)
 Provide a callback function, warning, that fs should use to report (non-fatal) errors.
svn_error_tsvn_fs_create (svn_fs_t **fs_p, const char *path, apr_hash_t *fs_config, apr_pool_t *pool)
 Create a new, empty Subversion filesystem, stored in the directory path, and return a pointer to it in *fs_p.
svn_error_tsvn_fs_open (svn_fs_t **fs_p, const char *path, apr_hash_t *fs_config, apr_pool_t *pool)
 Open a Subversion filesystem located in the directory path, and return a pointer to it in *fs_p.
svn_error_tsvn_fs_upgrade (const char *path, apr_pool_t *pool)
 Upgrade the Subversion filesystem located in the directory path to the latest version supported by this library.
svn_error_tsvn_fs_type (const char **fs_type, const char *path, apr_pool_t *pool)
 Return, in *fs_type, a string identifying the back-end type of the Subversion filesystem located in path.
const char * svn_fs_path (svn_fs_t *fs, apr_pool_t *pool)
 Return the path to fs's repository, allocated in pool.
svn_error_tsvn_fs_delete_fs (const char *path, apr_pool_t *pool)
 Delete the filesystem at path.
svn_error_tsvn_fs_hotcopy (const char *src_path, const char *dest_path, svn_boolean_t clean, apr_pool_t *pool)
 Copy a possibly live Subversion filesystem from src_path to dest_path.
svn_error_tsvn_fs_recover (const char *path, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
 Perform any necessary non-catastrophic recovery on the Subversion filesystem located at path.
svn_error_tsvn_fs_set_berkeley_errcall (svn_fs_t *fs, void(*handler)(const char *errpfx, char *msg))
 Register an error handling function for Berkeley DB error messages.
svn_error_tsvn_fs_berkeley_logfiles (apr_array_header_t **logfiles, const char *path, svn_boolean_t only_unused, apr_pool_t *pool)
 Set *logfiles to an array of const char * log file names of Berkeley DB-based Subversion filesystem.
svn_fs_tsvn_fs_new (apr_hash_t *fs_config, apr_pool_t *pool)
svn_error_tsvn_fs_create_berkeley (svn_fs_t *fs, const char *path)
svn_error_tsvn_fs_open_berkeley (svn_fs_t *fs, const char *path)
const char * svn_fs_berkeley_path (svn_fs_t *fs, apr_pool_t *pool)
svn_error_tsvn_fs_delete_berkeley (const char *path, apr_pool_t *pool)
svn_error_tsvn_fs_hotcopy_berkeley (const char *src_path, const char *dest_path, svn_boolean_t clean_logs, apr_pool_t *pool)
svn_error_tsvn_fs_berkeley_recover (const char *path, apr_pool_t *pool)
svn_error_tsvn_fs_create_access (svn_fs_access_t **access_ctx, const char *username, apr_pool_t *pool)
 Set *access_ctx to a new svn_fs_access_t object representing username, allocated in pool.
svn_error_tsvn_fs_set_access (svn_fs_t *fs, svn_fs_access_t *access_ctx)
 Associate access_ctx with an open fs.
svn_error_tsvn_fs_get_access (svn_fs_access_t **access_ctx, svn_fs_t *fs)
 Set *access_ctx to the current fs access context, or NULL if there is no current fs access context.
svn_error_tsvn_fs_access_get_username (const char **username, svn_fs_access_t *access_ctx)
 Accessors for the access context:
svn_error_tsvn_fs_access_add_lock_token2 (svn_fs_access_t *access_ctx, const char *path, const char *token)
 Push a lock-token token associated with path path into the context access_ctx.
svn_error_tsvn_fs_access_add_lock_token (svn_fs_access_t *access_ctx, const char *token)
 Same as svn_fs_access_add_lock_token2(), but with path set to value 1.
int svn_fs_compare_ids (const svn_fs_id_t *a, const svn_fs_id_t *b)
 Return -1, 0, or 1 if node revisions a and b are unrelated, equivalent, or otherwise related (respectively).
svn_boolean_t svn_fs_check_related (const svn_fs_id_t *id1, const svn_fs_id_t *id2)
 Return non-zero IFF the nodes associated with id1 and id2 are related, else return zero.
svn_fs_id_tsvn_fs_parse_id (const char *data, apr_size_t len, apr_pool_t *pool)
svn_string_tsvn_fs_unparse_id (const svn_fs_id_t *id, apr_pool_t *pool)
 Return a Subversion string containing the unparsed form of the node or node revision id id.
svn_error_tsvn_fs_begin_txn2 (svn_fs_txn_t **txn_p, svn_fs_t *fs, svn_revnum_t rev, apr_uint32_t flags, apr_pool_t *pool)
 Begin a new transaction on the filesystem fs, based on existing revision rev.
svn_error_tsvn_fs_begin_txn (svn_fs_txn_t **txn_p, svn_fs_t *fs, svn_revnum_t rev, apr_pool_t *pool)
 Same as svn_fs_begin_txn2(), but with flags set to 0.
svn_error_tsvn_fs_commit_txn (const char **conflict_p, svn_revnum_t *new_rev, svn_fs_txn_t *txn, apr_pool_t *pool)
 Commit txn.
svn_error_tsvn_fs_abort_txn (svn_fs_txn_t *txn, apr_pool_t *pool)
 Abort the transaction txn.
svn_error_tsvn_fs_purge_txn (svn_fs_t *fs, const char *txn_id, apr_pool_t *pool)
 Cleanup the dead transaction in fs whose ID is txn_id.
svn_error_tsvn_fs_txn_name (const char **name_p, svn_fs_txn_t *txn, apr_pool_t *pool)
 Set *name_p to the name of the transaction txn, as a NULL-terminated string.
svn_revnum_t svn_fs_txn_base_revision (svn_fs_txn_t *txn)
 Return txn's base revision.
svn_error_tsvn_fs_open_txn (svn_fs_txn_t **txn, svn_fs_t *fs, const char *name, apr_pool_t *pool)
 Open the transaction named name in the filesystem fs.
svn_error_tsvn_fs_list_transactions (apr_array_header_t **names_p, svn_fs_t *fs, apr_pool_t *pool)
 Set *names_p to an array of const char * ids which are the names of all the currently active transactions in the filesystem fs.
svn_error_tsvn_fs_txn_prop (svn_string_t **value_p, svn_fs_txn_t *txn, const char *propname, apr_pool_t *pool)
 Set *value_p to the value of the property named propname on transaction txn.
svn_error_tsvn_fs_txn_proplist (apr_hash_t **table_p, svn_fs_txn_t *txn, apr_pool_t *pool)
 Set *table_p to the entire property list of transaction txn, as an APR hash table allocated in pool.
svn_error_tsvn_fs_change_txn_prop (svn_fs_txn_t *txn, const char *name, const svn_string_t *value, apr_pool_t *pool)
 Change a transactions txn's property's value, or add/delete a property.
svn_error_tsvn_fs_change_txn_props (svn_fs_txn_t *txn, apr_array_header_t *props, apr_pool_t *pool)
 Change, add, and/or delete transaction property values in transaction txn.
svn_error_tsvn_fs_revision_root (svn_fs_root_t **root_p, svn_fs_t *fs, svn_revnum_t rev, apr_pool_t *pool)
 Set *root_p to the root directory of revision rev in filesystem fs.
svn_error_tsvn_fs_txn_root (svn_fs_root_t **root_p, svn_fs_txn_t *txn, apr_pool_t *pool)
 Set *root_p to the root directory of txn.
void svn_fs_close_root (svn_fs_root_t *root)
 Free the root directory root.
svn_fs_tsvn_fs_root_fs (svn_fs_root_t *root)
 Return the filesystem to which root belongs.
svn_boolean_t svn_fs_is_txn_root (svn_fs_root_t *root)
 Return TRUE iff root is a transaction root.
svn_boolean_t svn_fs_is_revision_root (svn_fs_root_t *root)
 Return TRUE iff root is a revision root.
const char * svn_fs_txn_root_name (svn_fs_root_t *root, apr_pool_t *pool)
 If root is the root of a transaction, return the name of the transaction, allocated in pool; otherwise, return NULL.
svn_revnum_t svn_fs_txn_root_base_revision (svn_fs_root_t *root)
 If root is the root of a transaction, return the number of the revision on which is was based when created.
svn_revnum_t svn_fs_revision_root_revision (svn_fs_root_t *root)
 If root is the root of a revision, return the revision number.
svn_fs_path_change2_tsvn_fs_path_change2_create (const svn_fs_id_t *node_rev_id, svn_fs_path_change_kind_t change_kind, apr_pool_t *pool)
 Allocate an svn_fs_path_change2_t structure in pool, initialize and return it.
svn_error_tsvn_fs_paths_changed2 (apr_hash_t **changed_paths2_p, svn_fs_root_t *root, apr_pool_t *pool)
 Determine what has changed under a root.
svn_error_tsvn_fs_paths_changed (apr_hash_t **changed_paths_p, svn_fs_root_t *root, apr_pool_t *pool)
 Same as svn_fs_paths_changed2(), only with svn_fs_path_change_t * values in the hash (and thus no kind or copyfrom data).
svn_error_tsvn_fs_check_path (svn_node_kind_t *kind_p, svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Set *kind_p to the type of node present at path under root.
svn_error_tsvn_fs_node_history (svn_fs_history_t **history_p, svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Set *history_p to an opaque node history object which represents path under root.
svn_error_tsvn_fs_history_prev (svn_fs_history_t **prev_history_p, svn_fs_history_t *history, svn_boolean_t cross_copies, apr_pool_t *pool)
 Set *prev_history_p to an opaque node history object which represents the previous (or "next oldest") interesting history location for the filesystem node represented by history, or NULL if no such previous history exists.
svn_error_tsvn_fs_history_location (const char **path, svn_revnum_t *revision, svn_fs_history_t *history, apr_pool_t *pool)
 Set *path and *revision to the path and revision, respectively, of the history object.
svn_error_tsvn_fs_is_dir (svn_boolean_t *is_dir, svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Set *is_dir to TRUE iff path in root is a directory.
svn_error_tsvn_fs_is_file (svn_boolean_t *is_file, svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Set *is_file to TRUE iff path in root is a file.
svn_error_tsvn_fs_node_id (const svn_fs_id_t **id_p, svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Get the id of a node.
svn_error_tsvn_fs_node_created_rev (svn_revnum_t *revision, svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Set *revision to the revision in which path under root was created.
svn_error_tsvn_fs_node_origin_rev (svn_revnum_t *revision, svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Set *revision to the revision in which the line of history represented by path under root originated.
svn_error_tsvn_fs_node_created_path (const char **created_path, svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Set *created_path to the path at which path under root was created.
svn_error_tsvn_fs_node_prop (svn_string_t **value_p, svn_fs_root_t *root, const char *path, const char *propname, apr_pool_t *pool)
 Set *value_p to the value of the property named propname of path in root.
svn_error_tsvn_fs_node_proplist (apr_hash_t **table_p, svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Set *table_p to the entire property list of path in root, as an APR hash table allocated in pool.
svn_error_tsvn_fs_change_node_prop (svn_fs_root_t *root, const char *path, const char *name, const svn_string_t *value, apr_pool_t *pool)
 Change a node's property's value, or add/delete a property.
svn_error_tsvn_fs_props_changed (svn_boolean_t *changed_p, svn_fs_root_t *root1, const char *path1, svn_fs_root_t *root2, const char *path2, apr_pool_t *pool)
 Determine if the properties of two path/root combinations are different.
svn_error_tsvn_fs_copied_from (svn_revnum_t *rev_p, const char **path_p, svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Discover a node's copy ancestry, if any.
svn_error_tsvn_fs_closest_copy (svn_fs_root_t **root_p, const char **path_p, svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Set *root_p and *path_p to the revision root and path of the destination of the most recent copy event that caused path to exist where it does in root, or to NULL if no such copy exists.
svn_error_tsvn_fs_get_mergeinfo (svn_mergeinfo_catalog_t *catalog, svn_fs_root_t *root, const apr_array_header_t *paths, svn_mergeinfo_inheritance_t inherit, svn_boolean_t include_descendants, apr_pool_t *pool)
 Retrieve mergeinfo for multiple nodes.
svn_error_tsvn_fs_merge (const char **conflict_p, svn_fs_root_t *source_root, const char *source_path, svn_fs_root_t *target_root, const char *target_path, svn_fs_root_t *ancestor_root, const char *ancestor_path, apr_pool_t *pool)
 Merge changes between two nodes into a third node.
svn_error_tsvn_fs_dir_entries (apr_hash_t **entries_p, svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Set *entries_p to a newly allocated APR hash table containing the entries of the directory at path in root.
svn_error_tsvn_fs_make_dir (svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Create a new directory named path in root.
svn_error_tsvn_fs_delete (svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Delete the node named path in root.
svn_error_tsvn_fs_copy (svn_fs_root_t *from_root, const char *from_path, svn_fs_root_t *to_root, const char *to_path, apr_pool_t *pool)
 Create a copy of from_path in from_root named to_path in to_root.
svn_error_tsvn_fs_revision_link (svn_fs_root_t *from_root, svn_fs_root_t *to_root, const char *path, apr_pool_t *pool)
 Like svn_fs_copy(), but doesn't record copy history, and preserves the PATH.
svn_error_tsvn_fs_file_length (svn_filesize_t *length_p, svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Set *length_p to the length of the file path in root, in bytes.
svn_error_tsvn_fs_file_checksum (svn_checksum_t **checksum, svn_checksum_kind_t kind, svn_fs_root_t *root, const char *path, svn_boolean_t force, apr_pool_t *pool)
 Set *checksum to the checksum of type kind for the file path.
svn_error_tsvn_fs_file_md5_checksum (unsigned char digest[], svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Same as svn_fs_file_checksum(), only always put the MD5 checksum of file path into digest, which should point to APR_MD5_DIGESTSIZE bytes of storage.
svn_error_tsvn_fs_file_contents (svn_stream_t **contents, svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Set *contents to a readable generic stream that will yield the contents of the file path in root.
svn_error_tsvn_fs_make_file (svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Create a new file named path in root.
svn_error_tsvn_fs_apply_textdelta (svn_txdelta_window_handler_t *contents_p, void **contents_baton_p, svn_fs_root_t *root, const char *path, const char *base_checksum, const char *result_checksum, apr_pool_t *pool)
 Apply a text delta to the file path in root.
svn_error_tsvn_fs_apply_text (svn_stream_t **contents_p, svn_fs_root_t *root, const char *path, const char *result_checksum, apr_pool_t *pool)
 Write data directly to the file path in root.
svn_error_tsvn_fs_contents_changed (svn_boolean_t *changed_p, svn_fs_root_t *root1, const char *path1, svn_fs_root_t *root2, const char *path2, apr_pool_t *pool)
 Check if the contents of two root/path combos have changed.
svn_error_tsvn_fs_youngest_rev (svn_revnum_t *youngest_p, svn_fs_t *fs, apr_pool_t *pool)
 Set *youngest_p to the number of the youngest revision in filesystem fs.
svn_error_tsvn_fs_deltify_revision (svn_fs_t *fs, svn_revnum_t revision, apr_pool_t *pool)
 Provide filesystem fs the opportunity to compress storage relating to associated with revision in filesystem fs.
svn_error_tsvn_fs_revision_prop (svn_string_t **value_p, svn_fs_t *fs, svn_revnum_t rev, const char *propname, apr_pool_t *pool)
 Set *value_p to the value of the property named propname on revision rev in the filesystem fs.
svn_error_tsvn_fs_revision_proplist (apr_hash_t **table_p, svn_fs_t *fs, svn_revnum_t rev, apr_pool_t *pool)
 Set *table_p to the entire property list of revision rev in filesystem fs, as an APR hash table allocated in pool.
svn_error_tsvn_fs_change_rev_prop (svn_fs_t *fs, svn_revnum_t rev, const char *name, const svn_string_t *value, apr_pool_t *pool)
 Change a revision's property's value, or add/delete a property.
svn_error_tsvn_fs_get_file_delta_stream (svn_txdelta_stream_t **stream_p, svn_fs_root_t *source_root, const char *source_path, svn_fs_root_t *target_root, const char *target_path, apr_pool_t *pool)
 Set *stream_p to a pointer to a delta stream that will turn the contents of the file source into the contents of the file target.
svn_error_tsvn_fs_get_uuid (svn_fs_t *fs, const char **uuid, apr_pool_t *pool)
 Populate *uuid with the UUID associated with fs.
svn_error_tsvn_fs_set_uuid (svn_fs_t *fs, const char *uuid, apr_pool_t *pool)
 If not NULL, associate *uuid with fs.
svn_error_tsvn_fs_lock (svn_lock_t **lock, svn_fs_t *fs, const char *path, const char *token, const char *comment, svn_boolean_t is_dav_comment, apr_time_t expiration_date, svn_revnum_t current_rev, svn_boolean_t steal_lock, apr_pool_t *pool)
 A lock represents one user's exclusive right to modify a path in a filesystem.
svn_error_tsvn_fs_generate_lock_token (const char **token, svn_fs_t *fs, apr_pool_t *pool)
 Generate a unique lock-token using fs.
svn_error_tsvn_fs_unlock (svn_fs_t *fs, const char *path, const char *token, svn_boolean_t break_lock, apr_pool_t *pool)
 Remove the lock on path represented by token in fs.
svn_error_tsvn_fs_get_lock (svn_lock_t **lock, svn_fs_t *fs, const char *path, apr_pool_t *pool)
 If path is locked in fs, set *lock to an svn_lock_t which represents the lock, allocated in pool.
svn_error_tsvn_fs_get_locks (svn_fs_t *fs, const char *path, svn_fs_get_locks_callback_t get_locks_func, void *get_locks_baton, apr_pool_t *pool)
 Report locks on or below path in fs using the get_locks_func / get_locks_baton.
svn_error_tsvn_fs_print_modules (svn_stringbuf_t *output, apr_pool_t *pool)
 Append a textual list of all available FS modules to the stringbuf output.
svn_error_tsvn_fs_pack (const char *db_path, svn_fs_pack_notify_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *pool)
 Possibly update the filesystem located in the directory path to use disk space more efficiently.

Detailed Description

Interface to the Subversion filesystem.

Definition in file svn_fs.h.


Function Documentation

const svn_version_t* svn_fs_version ( void  )

Get libsvn_fs version information.

Since:
New in 1.1.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines