Subversion
Data Structures | Macros | 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_change3_t
 Change descriptor. More...
 
struct  svn_fs_path_change2_t
 Similar to svn_fs_path_change3_t, but with node_rev_id and without path information. 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...
 
struct  svn_fs_fsfs_info_t
 A structure that provides some information about a filesystem. More...
 
struct  svn_fs_fsx_info_t
 A structure that provides some information about a filesystem. More...
 
struct  svn_fs_info_placeholder_t
 
struct  svn_fs_ioctl_code_t
 A structure specifying the filesystem-specific input/output operation. More...
 

Macros

#define SVN_FS_TYPE_BDB   "bdb"
 
#define SVN_FS_TYPE_FSFS   "fsfs"
 
#define SVN_FS_TYPE_FSX   "fsx"
 EXPERIMENTAL filesystem backend. More...
 
#define SVN_FS_TXN_CHECK_OOD   0x00001
 Do on-the-fly out-of-dateness checks. More...
 
#define SVN_FS_TXN_CHECK_LOCKS   0x00002
 Do on-the-fly lock checks. More...
 
#define SVN_FS_TXN_CLIENT_DATE   0x00004
 Allow the client to specify the final svn:date of the revision by setting or deleting the corresponding transaction property rather than have it set automatically when the transaction is committed. More...
 
#define SVN_FS_DECLARE_IOCTL_CODE(name, fs_type, code)   static const svn_fs_ioctl_code_t name = { fs_type, code }
 A convenience macro to declare svn_fs_ioctl_code_t codes. More...
 
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_FSFS_CACHE_DELTAS   "fsfs-cache-deltas"
 Enable / disable text delta caching for a FSFS repository. More...
 
#define SVN_FS_CONFIG_FSFS_CACHE_FULLTEXTS   "fsfs-cache-fulltexts"
 Enable / disable full-text caching for a FSFS repository. More...
 
#define SVN_FS_CONFIG_FSFS_CACHE_REVPROPS   "fsfs-cache-revprops"
 Enable / disable revprop caching for a FSFS repository. More...
 
#define SVN_FS_CONFIG_FSFS_CACHE_NS   "fsfs-cache-namespace"
 Select the cache namespace. More...
 
#define SVN_FS_CONFIG_FSFS_CACHE_NODEPROPS   "fsfs-cache-nodeprops"
 Enable / disable caching of node properties for a FSFS repository. More...
 
#define SVN_FS_CONFIG_FSFS_BLOCK_READ   "fsfs-block-read"
 Enable / disable the FSFS format 7 "block read" feature. More...
 
#define SVN_FS_CONFIG_FSFS_SHARD_SIZE   "fsfs-shard-size"
 String with a decimal representation of the FSFS format shard size. More...
 
#define SVN_FS_CONFIG_FSFS_LOG_ADDRESSING   "fsfs-log-addressing"
 Enable / disable the FSFS format 7 logical addressing feature for a newly created repository. More...
 
#define SVN_FS_CONFIG_FS_TYPE   "fs-type"
 Select the filesystem type. More...
 
#define SVN_FS_CONFIG_PRE_1_4_COMPATIBLE   "pre-1.4-compatible"
 Create repository format compatible with Subversion versions earlier than 1.4. More...
 
#define SVN_FS_CONFIG_PRE_1_5_COMPATIBLE   "pre-1.5-compatible"
 Create repository format compatible with Subversion versions earlier than 1.5. More...
 
#define SVN_FS_CONFIG_PRE_1_6_COMPATIBLE   "pre-1.6-compatible"
 Create repository format compatible with Subversion versions earlier than 1.6. More...
 
#define SVN_FS_CONFIG_PRE_1_8_COMPATIBLE   "pre-1.8-compatible"
 Create repository format compatible with Subversion versions earlier than 1.8. More...
 
#define SVN_FS_CONFIG_COMPATIBLE_VERSION   "compatible-version"
 Create repository format compatible with the specified Subversion release. More...
 
#define SVN_FS_CONFIG_NO_FLUSH_TO_DISK   "no-flush-to-disk"
 Specifies whether the filesystem should be forcing a physical write of the data to disk. More...
 

Typedefs

typedef struct svn_fs_t svn_fs_t
 An object representing a Subversion filesystem. More...
 
typedef void(* svn_fs_warning_callback_t) (void *baton, svn_error_t *err)
 The type of a warning callback function. More...
 
typedef enum svn_fs_upgrade_notify_action_t svn_fs_upgrade_notify_action_t
 The kind of action being taken by 'upgrade'. More...
 
typedef svn_error_t *(* svn_fs_upgrade_notify_t) (void *baton, apr_uint64_t number, svn_fs_upgrade_notify_action_t action, apr_pool_t *scratch_pool)
 The type of an upgrade notification function. More...
 
typedef void(* svn_fs_progress_notify_func_t) (svn_revnum_t revision, void *baton, apr_pool_t *pool)
 Callback function type for progress notification. More...
 
typedef void(* svn_fs_hotcopy_notify_t) (void *baton, svn_revnum_t start_revision, svn_revnum_t end_revision, apr_pool_t *scratch_pool)
 The type of a hotcopy notification function. More...
 
typedef svn_error_t *(* svn_fs_freeze_func_t) (void *baton, apr_pool_t *pool)
 Callback for svn_fs_freeze(). More...
 
typedef struct svn_fs_access_t svn_fs_access_t
 An opaque object representing temporary user data.
 
typedef enum svn_fs_node_relation_t svn_fs_node_relation_t
 Defines the possible ways two arbitrary (root, path)-pairs may be related. More...
 
typedef struct svn_fs_id_t svn_fs_id_t
 An object representing a node-revision id. More...
 
typedef struct svn_fs_txn_t svn_fs_txn_t
 The type of a Subversion transaction object. More...
 
typedef struct svn_fs_root_t svn_fs_root_t
 The Filesystem Root object.
 
typedef enum svn_fs_path_change_kind_t svn_fs_path_change_kind_t
 The kind of change that occurred on the path.
 
typedef struct svn_fs_path_change3_t svn_fs_path_change3_t
 Change descriptor. More...
 
typedef struct svn_fs_path_change2_t svn_fs_path_change2_t
 Similar to svn_fs_path_change3_t, but with node_rev_id and without path information. More...
 
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. More...
 
typedef struct svn_fs_path_change_iterator_t svn_fs_path_change_iterator_t
 Opaque iterator object type for a changed paths list. More...
 
typedef struct svn_fs_history_t svn_fs_history_t
 An opaque node history object.
 
typedef svn_error_t *(* svn_fs_mergeinfo_receiver_t) (const char *path, svn_mergeinfo_t mergeinfo, void *baton, apr_pool_t *scratch_pool)
 Receives parsed mergeinfo for the file system path path. More...
 
typedef struct svn_fs_dirent_t svn_fs_dirent_t
 The type of a Subversion directory entry. More...
 
typedef svn_error_t *(* svn_fs_process_contents_func_t) (const unsigned char *contents, apr_size_t len, void *baton, apr_pool_t *scratch_pool)
 Callback function type used with svn_fs_try_process_file_contents() that delivers the immutable, non-NULL contents of len bytes. More...
 
typedef struct svn_fs_lock_target_t svn_fs_lock_target_t
 A lock represents one user's exclusive right to modify a path in a filesystem. More...
 
typedef svn_error_t *(* svn_fs_lock_callback_t) (void *baton, const char *path, const svn_lock_t *lock, svn_error_t *fs_err, apr_pool_t *scratch_pool)
 The callback invoked by svn_fs_lock_many() and svn_fs_unlock_many(). More...
 
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. More...
 
typedef enum svn_fs_pack_notify_action_t svn_fs_pack_notify_action_t
 The kind of action being taken by 'pack'.
 
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. More...
 
typedef struct svn_fs_fsfs_info_t svn_fs_fsfs_info_t
 A structure that provides some information about a filesystem. More...
 
typedef struct svn_fs_fsx_info_t svn_fs_fsx_info_t
 A structure that provides some information about a filesystem. More...
 
typedef struct svn_fs_info_placeholder_t svn_fs_info_placeholder_t
 
typedef struct svn_fs_ioctl_code_t svn_fs_ioctl_code_t
 A structure specifying the filesystem-specific input/output operation. More...
 

Enumerations

enum  svn_fs_upgrade_notify_action_t {
  svn_fs_upgrade_pack_revprops = 0,
  svn_fs_upgrade_cleanup_revprops,
  svn_fs_upgrade_format_bumped
}
 The kind of action being taken by 'upgrade'. More...
 
enum  svn_fs_node_relation_t {
  svn_fs_node_unrelated = 0,
  svn_fs_node_unchanged,
  svn_fs_node_common_ancestor
}
 Defines the possible ways two arbitrary (root, path)-pairs may be related. More...
 
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,
  svn_fs_pack_notify_start_revprop,
  svn_fs_pack_notify_end_revprop,
  svn_fs_pack_notify_noop
}
 The kind of action being taken by 'pack'. More...
 

Functions

const svn_version_tsvn_fs_version (void)
 Get libsvn_fs version information. More...
 
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. More...
 
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. More...
 
svn_error_tsvn_fs_create2 (svn_fs_t **fs_p, const char *path, apr_hash_t *fs_config, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
 Create a new, empty Subversion filesystem, stored in the directory path, and return a pointer to it in *fs_p. More...
 
svn_error_tsvn_fs_create (svn_fs_t **fs_p, const char *path, apr_hash_t *fs_config, apr_pool_t *pool)
 Like svn_fs_create2(), but without scratch_pool. More...
 
svn_error_tsvn_fs_open2 (svn_fs_t **fs_p, const char *path, apr_hash_t *fs_config, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
 Open a Subversion filesystem located in the directory path, and return a pointer to it in *fs_p. More...
 
svn_error_tsvn_fs_open (svn_fs_t **fs_p, const char *path, apr_hash_t *fs_config, apr_pool_t *pool)
 Like svn_fs_open2(), but without scratch_pool. More...
 
svn_error_tsvn_fs_upgrade2 (const char *path, svn_fs_upgrade_notify_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *scratch_pool)
 Upgrade the Subversion filesystem located in the directory path to the latest version supported by this library. More...
 
svn_error_tsvn_fs_upgrade (const char *path, apr_pool_t *pool)
 Like svn_fs_upgrade2 but with notify_func, notify_baton, cancel_func and cancel_baton being set to NULL. More...
 
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. More...
 
const char * svn_fs_path (svn_fs_t *fs, apr_pool_t *pool)
 Return the path to fs's repository, allocated in pool. More...
 
apr_hash_t * svn_fs_config (svn_fs_t *fs, apr_pool_t *pool)
 Return a shallow copy of the configuration parameters used to open fs, allocated in pool. More...
 
svn_error_tsvn_fs_delete_fs (const char *path, apr_pool_t *pool)
 Delete the filesystem at path. More...
 
svn_error_tsvn_fs_hotcopy3 (const char *src_path, const char *dest_path, svn_boolean_t clean, svn_boolean_t incremental, svn_fs_hotcopy_notify_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *scratch_pool)
 Copy a possibly live Subversion filesystem from src_path to dest_path. More...
 
svn_error_tsvn_fs_hotcopy2 (const char *src_path, const char *dest_path, svn_boolean_t clean, svn_boolean_t incremental, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *scratch_pool)
 Like svn_fs_hotcopy3(), but with notify_func and notify_baton always passed as NULL. More...
 
svn_error_tsvn_fs_hotcopy (const char *src_path, const char *dest_path, svn_boolean_t clean, apr_pool_t *pool)
 Like svn_fs_hotcopy2(), but with incremental always passed as TRUE and without cancellation support. More...
 
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. More...
 
svn_error_tsvn_fs_freeze (svn_fs_t *fs, svn_fs_freeze_func_t freeze_func, void *freeze_baton, apr_pool_t *pool)
 Take an exclusive lock on fs to prevent commits and then invoke freeze_func passing freeze_baton. More...
 
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. More...
 
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. More...
 
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. More...
 
svn_error_tsvn_fs_set_access (svn_fs_t *fs, svn_fs_access_t *access_ctx)
 Associate access_ctx with an open fs. More...
 
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: More...
 
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. More...
 
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. More...
 
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 respectively unrelated, equivalent, or otherwise related (part of the same node). More...
 
svn_boolean_t svn_fs_check_related (const svn_fs_id_t *id1, const svn_fs_id_t *id2)
 Return TRUE if node revisions id1 and id2 are related (part of the same node), else return FALSE. More...
 
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 revision id id. More...
 
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. More...
 
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. More...
 
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. More...
 
svn_error_tsvn_fs_abort_txn (svn_fs_txn_t *txn, apr_pool_t *pool)
 Abort the transaction txn. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
svn_error_tsvn_fs_change_txn_props (svn_fs_txn_t *txn, const apr_array_header_t *props, apr_pool_t *pool)
 Change, add, and/or delete transaction property values in transaction txn. More...
 
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. More...
 
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. More...
 
void svn_fs_close_root (svn_fs_root_t *root)
 Free the root directory root; this only needs to be used if you want to free the memory associated with root earlier than the time you destroy the pool passed to the function that created it (svn_fs_revision_root() or svn_fs_txn_root()).
 
svn_fs_tsvn_fs_root_fs (svn_fs_root_t *root)
 Return the filesystem to which root belongs. More...
 
svn_boolean_t svn_fs_is_txn_root (svn_fs_root_t *root)
 Return TRUE iff root is a transaction root. More...
 
svn_boolean_t svn_fs_is_revision_root (svn_fs_root_t *root)
 Return TRUE iff root is a revision root. More...
 
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. More...
 
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. More...
 
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. More...
 
svn_fs_path_change3_tsvn_fs_path_change3_create (svn_fs_path_change_kind_t change_kind, apr_pool_t *result_pool)
 Allocate an svn_fs_path_change3_t structure in result_pool, initialize and return it. More...
 
svn_fs_path_change3_tsvn_fs_path_change3_dup (svn_fs_path_change3_t *change, apr_pool_t *result_pool)
 Return a deep copy of *change, allocated in result_pool. More...
 
svn_error_tsvn_fs_path_change_get (svn_fs_path_change3_t **change, svn_fs_path_change_iterator_t *iterator)
 Set *change to the path change that iterator currently points to and advance the iterator. More...
 
svn_error_tsvn_fs_paths_changed3 (svn_fs_path_change_iterator_t **iterator, svn_fs_root_t *root, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
 Determine what has changed under a root. More...
 
svn_error_tsvn_fs_paths_changed2 (apr_hash_t **changed_paths2_p, svn_fs_root_t *root, apr_pool_t *pool)
 Same as svn_fs_paths_changed3() but returning all changes in a single, large data structure and using a single pool for all allocations. More...
 
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). More...
 
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. More...
 
svn_error_tsvn_fs_node_history2 (svn_fs_history_t **history_p, svn_fs_root_t *root, const char *path, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
 Set *history_p to an opaque node history object which represents path under root. More...
 
svn_error_tsvn_fs_node_history (svn_fs_history_t **history_p, svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Same as svn_fs_node_history2() but using a single pool for all allocations. More...
 
svn_error_tsvn_fs_history_prev2 (svn_fs_history_t **prev_history_p, svn_fs_history_t *history, svn_boolean_t cross_copies, apr_pool_t *result_pool, apr_pool_t *scratch_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. More...
 
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)
 Same as svn_fs_history_prev2() but using a single pool for all allocations. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
svn_error_tsvn_fs_node_relation (svn_fs_node_relation_t *relation, svn_fs_root_t *root_a, const char *path_a, svn_fs_root_t *root_b, const char *path_b, apr_pool_t *scratch_pool)
 Determine how path_a under root_a and path_b under root_b are related and return the result in relation. More...
 
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 the node-revision identified by path under root was created; that is, to the revision in which path under root was last modified. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
svn_error_tsvn_fs_node_has_props (svn_boolean_t *has_props, svn_fs_root_t *root, const char *path, apr_pool_t *scratch_pool)
 Set *has_props to TRUE if the node path in root has properties and to FALSE if it doesn't have properties. More...
 
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. More...
 
svn_error_tsvn_fs_props_different (svn_boolean_t *different_p, svn_fs_root_t *root1, const char *path1, svn_fs_root_t *root2, const char *path2, apr_pool_t *scratch_pool)
 Determine if the properties of two path/root combinations are different. More...
 
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 have changed. More...
 
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. More...
 
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. More...
 
svn_error_tsvn_fs_get_mergeinfo3 (svn_fs_root_t *root, const apr_array_header_t *paths, svn_mergeinfo_inheritance_t inherit, svn_boolean_t include_descendants, svn_boolean_t adjust_inherited_mergeinfo, svn_fs_mergeinfo_receiver_t receiver, void *baton, apr_pool_t *scratch_pool)
 Retrieve mergeinfo for multiple nodes. More...
 
svn_error_tsvn_fs_get_mergeinfo2 (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, svn_boolean_t adjust_inherited_mergeinfo, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
 Same as svn_fs_get_mergeinfo3(), but all mergeinfo is being collected and returned in *catalog. More...
 
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)
 Same as svn_fs_get_mergeinfo2(), but with adjust_inherited_mergeinfo set always set to TRUE and with only one pool. More...
 
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. More...
 
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. More...
 
svn_error_tsvn_fs_dir_optimal_order (apr_array_header_t **ordered_p, svn_fs_root_t *root, apr_hash_t *entries, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
 Take the svn_fs_dirent_t structures in entries as returned by svn_fs_dir_entries for root and determine an optimized ordering in which data access would most likely be efficient. More...
 
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. More...
 
svn_error_tsvn_fs_delete (svn_fs_root_t *root, const char *path, apr_pool_t *pool)
 Delete the node named path in root. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
svn_error_tsvn_fs_try_process_file_contents (svn_boolean_t *success, svn_fs_root_t *root, const char *path, svn_fs_process_contents_func_t processor, void *baton, apr_pool_t *pool)
 Efficiently deliver the contents of the file path in root via processor (with baton), setting *success to TRUE upon doing so. More...
 
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. More...
 
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. More...
 
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. More...
 
svn_error_tsvn_fs_contents_different (svn_boolean_t *different_p, svn_fs_root_t *root1, const char *path1, svn_fs_root_t *root2, const char *path2, apr_pool_t *scratch_pool)
 Check if the contents of two root/path combos are different. More...
 
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. More...
 
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. More...
 
svn_error_tsvn_fs_info_format (int *fs_format, svn_version_t **supports_version, svn_fs_t *fs, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
 Return filesystem format information for fs. More...
 
svn_error_tsvn_fs_info_config_files (apr_array_header_t **files, svn_fs_t *fs, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
 Return a list of admin-serviceable config files for fs. More...
 
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. More...
 
svn_error_tsvn_fs_refresh_revision_props (svn_fs_t *fs, apr_pool_t *scratch_pool)
 Make sure that all completed revision property changes to the filesystem underlying fs are actually visible through fs. More...
 
svn_error_tsvn_fs_revision_prop2 (svn_string_t **value_p, svn_fs_t *fs, svn_revnum_t rev, const char *propname, svn_boolean_t refresh, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
 Set *value_p to the value of the property named propname on revision rev in the filesystem fs. More...
 
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)
 Like svn_fs_revision_prop2 but using pool for scratch_pool as well as result_pool and setting refresh to TRUE. More...
 
svn_error_tsvn_fs_revision_proplist2 (apr_hash_t **table_p, svn_fs_t *fs, svn_revnum_t rev, svn_boolean_t refresh, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
 Set *table_p to the entire property list of revision rev in filesystem fs, as an APR hash table allocated in pool. More...
 
svn_error_tsvn_fs_revision_proplist (apr_hash_t **table_p, svn_fs_t *fs, svn_revnum_t rev, apr_pool_t *pool)
 Like svn_fs_revision_proplist2 but using pool for scratch_pool as well as result_pool and setting refresh to TRUE. More...
 
svn_error_tsvn_fs_change_rev_prop2 (svn_fs_t *fs, svn_revnum_t rev, const char *name, const svn_string_t *const *old_value_p, const svn_string_t *value, apr_pool_t *pool)
 Change a revision's property's value, or add/delete a property. More...
 
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)
 Similar to svn_fs_change_rev_prop2(), but with old_value_p passed as NULL. More...
 
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. More...
 
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. More...
 
svn_error_tsvn_fs_set_uuid (svn_fs_t *fs, const char *uuid, apr_pool_t *pool)
 If not NULL, associate *uuid with fs. More...
 
svn_fs_lock_target_tsvn_fs_lock_target_create (const char *token, svn_revnum_t current_rev, apr_pool_t *result_pool)
 Create an svn_fs_lock_target_t allocated in result_pool. More...
 
void svn_fs_lock_target_set_token (svn_fs_lock_target_t *target, const char *token)
 Update target changing the token to token, token can be NULL. More...
 
svn_error_tsvn_fs_lock_many (svn_fs_t *fs, apr_hash_t *lock_targets, const char *comment, svn_boolean_t is_dav_comment, apr_time_t expiration_date, svn_boolean_t steal_lock, svn_fs_lock_callback_t lock_callback, void *lock_baton, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
 Lock the paths in lock_targets in fs. More...
 
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)
 Similar to svn_fs_lock_many() but locks only a single path and returns the lock in *lock, allocated in pool, or an error. More...
 
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. More...
 
svn_error_tsvn_fs_unlock_many (svn_fs_t *fs, apr_hash_t *unlock_targets, svn_boolean_t break_lock, svn_fs_lock_callback_t lock_callback, void *lock_baton, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
 Remove the locks on the paths in unlock_targets in fs. More...
 
svn_error_tsvn_fs_unlock (svn_fs_t *fs, const char *path, const char *token, svn_boolean_t break_lock, apr_pool_t *pool)
 Similar to svn_fs_unlock_many() but only unlocks a single path. More...
 
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. More...
 
svn_error_tsvn_fs_get_locks2 (svn_fs_t *fs, const char *path, svn_depth_t depth, 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. More...
 
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)
 Similar to svn_fs_get_locks2(), but with depth always passed as svn_depth_infinity, and with the following known problem (which is not present in svn_fs_get_locks2()): More...
 
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. More...
 
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. More...
 
svn_error_tsvn_fs_verify (const char *path, apr_hash_t *fs_config, svn_revnum_t start, svn_revnum_t end, svn_fs_progress_notify_func_t notify_func, void *notify_baton, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *scratch_pool)
 Perform backend-specific data consistency and correctness validations to the Subversion filesystem (mainly the meta-data) located in the directory path. More...
 
svn_error_tsvn_fs_verify_root (svn_fs_root_t *root, apr_pool_t *scratch_pool)
 Perform backend-specific data consistency and correctness validations of root in the Subversion filesystem fs. More...
 
svn_error_tsvn_fs_info (const svn_fs_info_placeholder_t **fs_info, svn_fs_t *fs, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
 Set *fs_info to a struct describing fs. More...
 
void * svn_fs_info_dup (const void *info, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
 Return a duplicate of info, allocated in result_pool. More...
 
svn_error_tsvn_fs_ioctl (svn_fs_t *fs, svn_fs_ioctl_code_t ctlcode, void *input, void **output_p, svn_cancel_func_t cancel_func, void *cancel_baton, apr_pool_t *result_pool, apr_pool_t *scratch_pool)
 Issue a filesystem-specific input/output operation defined by ctlcode (usually, a low-level operation which cannot be expressed by other filesystem APIs). More...
 

Detailed Description

Interface to the Subversion filesystem.

@if copyrights

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations

under the License.

Definition in file svn_fs.h.

Function Documentation

◆ svn_fs_version()

const svn_version_t* svn_fs_version ( void  )

Get libsvn_fs version information.

Since
New in 1.1.