|
Subversion
|
Go to the documentation of this file.
31 #include <apr_pools.h>
33 #include <apr_tables.h>
76 #define SVN_FS_TYPE_BDB "bdb"
78 #define SVN_FS_TYPE_FSFS "fsfs"
88 #define SVN_FS_TYPE_FSX "fsx"
97 #define SVN_FS_CONFIG_BDB_TXN_NOSYNC "bdb-txn-nosync"
98 #define SVN_FS_CONFIG_BDB_LOG_AUTOREMOVE "bdb-log-autoremove"
104 #define SVN_FS_CONFIG_FSFS_CACHE_DELTAS "fsfs-cache-deltas"
110 #define SVN_FS_CONFIG_FSFS_CACHE_FULLTEXTS "fsfs-cache-fulltexts"
120 #define SVN_FS_CONFIG_FSFS_CACHE_REVPROPS "fsfs-cache-revprops"
135 #define SVN_FS_CONFIG_FSFS_CACHE_NS "fsfs-cache-namespace"
141 #define SVN_FS_CONFIG_FSFS_CACHE_NODEPROPS "fsfs-cache-nodeprops"
147 #define SVN_FS_CONFIG_FSFS_BLOCK_READ "fsfs-block-read"
157 #define SVN_FS_CONFIG_FSFS_SHARD_SIZE "fsfs-shard-size"
167 #define SVN_FS_CONFIG_FSFS_LOG_ADDRESSING "fsfs-log-addressing"
175 #define SVN_FS_CONFIG_FS_TYPE "fs-type"
182 #define SVN_FS_CONFIG_PRE_1_4_COMPATIBLE "pre-1.4-compatible"
189 #define SVN_FS_CONFIG_PRE_1_5_COMPATIBLE "pre-1.5-compatible"
196 #define SVN_FS_CONFIG_PRE_1_6_COMPATIBLE "pre-1.6-compatible"
203 #define SVN_FS_CONFIG_PRE_1_8_COMPATIBLE "pre-1.8-compatible"
215 #define SVN_FS_CONFIG_COMPATIBLE_VERSION "compatible-version"
228 #define SVN_FS_CONFIG_NO_FLUSH_TO_DISK "no-flush-to-disk"
281 void *warning_baton);
319 apr_hash_t *fs_config,
320 apr_pool_t *result_pool,
321 apr_pool_t *scratch_pool);
333 apr_hash_t *fs_config,
361 apr_hash_t *fs_config,
362 apr_pool_t *result_pool,
363 apr_pool_t *scratch_pool);
375 apr_hash_t *fs_config,
408 apr_pool_t *scratch_pool);
438 apr_pool_t *scratch_pool);
532 apr_pool_t *scratch_pool);
562 const char *dest_path,
569 apr_pool_t *scratch_pool);
581 const char *dest_path,
586 apr_pool_t *scratch_pool);
598 const char *dest_path,
649 typedef svn_error_t *(*svn_fs_freeze_func_t)(
void *baton, apr_pool_t *pool);
712 void (*handler)(
const char *errpfx,
781 const char *dest_path,
824 const char *username,
1124 #define SVN_FS_TXN_CHECK_OOD 0x00001
1129 #define SVN_FS_TXN_CHECK_LOCKS 0x00002
1137 #define SVN_FS_TXN_CLIENT_DATE 0x00004
1324 const char *propname,
1362 const apr_array_header_t *props,
1556 const char *copyfrom_path;
1614 const char *copyfrom_path;
1678 apr_pool_t *result_pool);
1687 apr_pool_t *result_pool);
1735 apr_pool_t *result_pool,
1736 apr_pool_t *scratch_pool);
1803 apr_pool_t *result_pool,
1804 apr_pool_t *scratch_pool);
1854 apr_pool_t *result_pool,
1855 apr_pool_t *scratch_pool);
1933 apr_pool_t *scratch_pool);
1987 const char *propname,
2012 apr_pool_t *scratch_pool);
2057 apr_pool_t *scratch_pool);
2137 const char **path_p,
2160 const char **path_p,
2173 (*svn_fs_mergeinfo_receiver_t)(
const char *path,
2176 apr_pool_t *scratch_pool);
2214 const apr_array_header_t *paths,
2220 apr_pool_t *scratch_pool);
2234 const apr_array_header_t *paths,
2238 apr_pool_t *result_pool,
2239 apr_pool_t *scratch_pool);
2251 const apr_array_header_t *paths,
2286 const char *source_path,
2288 const char *target_path,
2290 const char *ancestor_path,
2338 apr_hash_t *entries,
2339 apr_pool_t *result_pool,
2340 apr_pool_t *scratch_pool);
2395 const char *from_path,
2397 const char *to_path,
2515 (*svn_fs_process_contents_func_t)(
const unsigned char *contents,
2518 apr_pool_t *scratch_pool);
2591 void **contents_baton_p,
2594 const char *base_checksum,
2595 const char *result_checksum,
2626 const char *result_checksum,
2656 apr_pool_t *scratch_pool);
2721 apr_pool_t *result_pool,
2722 apr_pool_t *scratch_pool);
2733 apr_pool_t *result_pool,
2734 apr_pool_t *scratch_pool);
2780 apr_pool_t *scratch_pool);
2802 const char *propname,
2804 apr_pool_t *result_pool,
2805 apr_pool_t *scratch_pool);
2819 const char *propname,
2844 apr_pool_t *result_pool,
2845 apr_pool_t *scratch_pool);
2922 const char *source_path,
2924 const char *target_path,
2995 apr_pool_t *result_pool);
3028 apr_pool_t *scratch_pool);
3086 apr_hash_t *lock_targets,
3087 const char *comment,
3089 apr_time_t expiration_date,
3093 apr_pool_t *result_pool,
3094 apr_pool_t *scratch_pool);
3106 const char *comment,
3108 apr_time_t expiration_date,
3162 apr_hash_t *unlock_targets,
3166 apr_pool_t *result_pool,
3167 apr_pool_t *scratch_pool);
3229 void *get_locks_baton,
3251 void *get_locks_baton,
3362 apr_hash_t *fs_config,
3369 apr_pool_t *scratch_pool);
3397 apr_pool_t *scratch_pool);
3487 apr_pool_t *result_pool,
3488 apr_pool_t *scratch_pool);
3503 apr_pool_t *result_pool,
3504 apr_pool_t *scratch_pool);
3515 const char *fs_type;
3524 #define SVN_FS_DECLARE_IOCTL_CODE(name, fs_type, code) \
3525 static const svn_fs_ioctl_code_t name = { fs_type, code }
3551 apr_pool_t *result_pool,
3552 apr_pool_t *scratch_pool);
svn_error_t * svn_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.
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.
svn_error_t * svn_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.
svn_error_t * svn_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_boolean_t text_mod
were there text mods?
svn_error_t * svn_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_fs_node_common_ancestor
The (root, path)-pairs have a common ancestor (which may be one of them) but there are changes betwee...
svn_error_t * svn_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...
@ svn_fs_path_change_modify
path modified in txn
svn_checksum_kind_t
Various types of checksums.
@ svn_fs_upgrade_pack_revprops
Packing of the revprop shard has completed.
svn_fs_node_relation_t
Defines the possible ways two arbitrary (root, path)-pairs may be related.
svn_error_t * svn_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 th...
svn_error_t * svn_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...
svn_error_t * svn_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_t * svn_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 (m...
svn_fs_t * svn_fs_root_fs(svn_fs_root_t *root)
Return the filesystem to which root belongs.
svn_error_t * svn_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")...
svn_node_kind_t node_kind
what node kind is the path? (Note: it is legal for this to be svn_node_unknown.)
svn_error_t * svn_fs_abort_txn(svn_fs_txn_t *txn, apr_pool_t *pool)
Abort the transaction txn.
svn_node_kind_t node_kind
what node kind is the path? (Note: it is legal for this to be svn_node_unknown.)
svn_error_t * svn_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 alloc...
svn_revnum_t min_unpacked_rev
The smallest revision (as svn_revnum_t) which is not in a pack file.
svn_error_t * svn_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.
svn_error_t * svn_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.
const char * fs_type
Filesystem backend (fs_type), i.e., the string SVN_FS_TYPE_FSX.
svn_error_t * svn_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_t * svn_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_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.
svn_error_t * svn_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_t * svn_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 relati...
svn_error_t * svn_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_t * svn_fs_set_access(svn_fs_t *fs, svn_fs_access_t *access_ctx)
Associate access_ctx with an open fs.
svn_error_t * svn_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_t * svn_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_t * svn_fs_berkeley_recover(const char *path, apr_pool_t *pool)
svn_error_t * svn_fs_get_uuid(svn_fs_t *fs, const char **uuid, apr_pool_t *pool)
Populate *uuid with the UUID associated with fs.
svn_error_t * svn_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...
svn_error_t * svn_fs_commit_txn(const char **conflict_p, svn_revnum_t *new_rev, svn_fs_txn_t *txn, apr_pool_t *pool)
Commit txn.
struct svn_fs_path_change_iterator_t svn_fs_path_change_iterator_t
Opaque iterator object type for a changed paths list.
A structure that provides some information about a filesystem.
svn_error_t * svn_fs_set_uuid(svn_fs_t *fs, const char *uuid, apr_pool_t *pool)
If not NULL, associate *uuid with fs.
const char * svn_fs_berkeley_path(svn_fs_t *fs, apr_pool_t *pool)
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 cr...
svn_boolean_t copyfrom_known
Copyfrom revision and path; this is only valid if copyfrom_known is true.
svn_error_t * svn_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...
svn_error_t * svn_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,...
svn_error_t * svn_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,...
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,...
const char * fs_type
Filesystem backend (fs_type), i.e., the string SVN_FS_TYPE_FSFS.
Counted-length strings for Subversion, plus some C string goodies.
svn_error_t * svn_fs_delete_berkeley(const char *path, apr_pool_t *pool)
svn_error_t * svn_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.
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_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.
@ svn_fs_upgrade_cleanup_revprops
Removal of the non-packed revprop shard is completed.
const char * name
The name of this directory entry.
svn_error_t * svn_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_t * svn_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_t * svn_fs_delete(svn_fs_root_t *root, const char *path, apr_pool_t *pool)
Delete the node named path in root.
svn_error_t * svn_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.
Subversion checksum routines.
svn_error_t * svn_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 kin...
svn_error_t * svn_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 fil...
A generic checksum representation.
svn_boolean_t svn_fs_is_revision_root(svn_fs_root_t *root)
Return TRUE iff root is a revision root.
const svn_fs_id_t * node_rev_id
node revision id of changed path
svn_error_t * svn_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.
svn_error_t * svn_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.
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; otherwis...
svn_string_t path
path of the node that got changed.
svn_error_t * svn_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.
@ svn_fs_path_change_add
path added in txn
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_boolean_t log_addressing
TRUE if logical addressing is enabled for this repository.
svn_error_t * svn_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 ...
svn_fs_lock_target_t * svn_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.
@ svn_fs_path_change_reset
ignore all previous change items for path (internal-use only)
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 wi...
const svn_version_t * svn_fs_version(void)
Get libsvn_fs version information.
svn_error_t * svn_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_t * svn_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.
svn_error_t * svn_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_tristate_t
Generic three-state property to represent an unknown value for values that are just like booleans.
struct svn_stream_t svn_stream_t
An abstract stream of bytes–either incoming or outgoing or both.
apr_hash_t * svn_mergeinfo_catalog_t
A hash mapping paths (const char *) to svn_mergeinfo_t.
struct svn_fs_info_placeholder_t svn_fs_info_placeholder_t
svn_error_t * svn_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.
svn_error_t * svn_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.
svn_error_t * svn_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.
The type of a Subversion directory entry.
svn_revnum_t min_unpacked_rev
The smallest revision which is not in a pack file.
svn_error_t * svn_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.
svn_error_t * svn_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.
svn_error_t * svn_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_string_t * svn_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.
svn_fs_upgrade_notify_action_t
The kind of action being taken by 'upgrade'.
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.
svn_error_t * svn_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 determi...
svn_error_t * svn_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.
@ svn_fs_path_change_replace
path removed and re-added in txn
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,...
@ svn_fs_pack_notify_start_revprop
packing of the shard revprops has commenced
svn_fs_path_change2_t * svn_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.
void(* svn_fs_progress_notify_func_t)(svn_revnum_t revision, void *baton, apr_pool_t *pool)
Callback function type for progress notification.
svn_error_t * svn_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.
struct svn_fs_fsx_info_t svn_fs_fsx_info_t
A structure that provides some information about a filesystem.
@ svn_fs_pack_notify_end
packing of the shard is completed
svn_depth_t
The concept of depth for directories.
svn_error_t *(* svn_fs_freeze_func_t)(void *baton, apr_pool_t *pool)
Callback for svn_fs_freeze().
svn_error_t * svn_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.
svn_fs_t * svn_fs_new(apr_hash_t *fs_config, apr_pool_t *pool)
svn_fs_path_change_kind_t change_kind
kind of change
svn_node_kind_t kind
The node kind.
svn_error_t * svn_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 files...
svn_fs_path_change3_t * svn_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.
svn_error_t * svn_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.
svn_tristate_t mergeinfo_mod
was the mergeinfo property touched? modify: } true iff svn:mergeinfo property add/del/mod add (copy):...
struct svn_fs_dirent_t svn_fs_dirent_t
The type of a Subversion directory entry.
svn_fs_pack_notify_action_t
The kind of action being taken by 'pack'.
svn_mergeinfo_inheritance_t
The three ways to request mergeinfo affecting a given path.
svn_error_t * svn_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.
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.
struct svn_fs_access_t svn_fs_access_t
An opaque object representing temporary user data.
A lock object, for client & server to share.
struct svn_fs_fsfs_info_t svn_fs_fsfs_info_t
A structure that provides some information about a filesystem.
svn_error_t * svn_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.
svn_error_t * svn_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.
svn_error_t * svn_fs_access_get_username(const char **username, svn_fs_access_t *access_ctx)
Accessors for the access context:
svn_error_t * svn_fs_delete_fs(const char *path, apr_pool_t *pool)
Delete the filesystem at path.
@ svn_fs_node_unrelated
The (root, path)-pairs are not related, i.e.
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.
svn_error_t * svn_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.
svn_error_t * svn_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_t * svn_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 transact...
svn_error_t * svn_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.
void(* svn_fs_warning_callback_t)(void *baton, svn_error_t *err)
The type of a warning callback function.
svn_boolean_t copyfrom_known
Copyfrom revision and path; this is only valid if copyfrom_known is true.
struct svn_fs_t svn_fs_t
An object representing a Subversion filesystem.
svn_error_t * svn_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_t * svn_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.
svn_error_t * svn_fs_open_berkeley(svn_fs_t *fs, const char *path)
svn_boolean_t prop_mod
were the properties touched? modify: true iff props touched.
svn_error_t * svn_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.
svn_error_t * svn_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),...
A structure that provides some information about a filesystem.
svn_error_t * svn_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.
svn_error_t * svn_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_fs_path_change3_t * svn_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.
svn_boolean_t svn_fs_is_txn_root(svn_fs_root_t *root)
Return TRUE iff root is a transaction root.
svn_error_t * svn_fs_create_berkeley(svn_fs_t *fs, const char *path)
apr_int64_t svn_filesize_t
The size of a file in the Subversion FS.
Similar to svn_fs_path_change3_t, but with node_rev_id and without path information.
struct svn_fs_history_t svn_fs_history_t
An opaque node history object.
svn_error_t * svn_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.
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.
@ svn_fs_node_unchanged
No changes have been made between the (root, path)-pairs, i.e.
svn_error_t * svn_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_boolean_t prop_mod
were the properties touched? modify: true iff props touched.
@ svn_fs_path_change_delete
path removed in txn
svn_error_t * svn_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 i...
svn_tristate_t mergeinfo_mod
was the mergeinfo property touched? modify: } true iff svn:mergeinfo property add/del/mod add (copy):...
svn_error_t * svn_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_t * svn_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 even...
struct svn_fs_txn_t svn_fs_txn_t
The type of a Subversion transaction object.
svn_boolean_t prop_mod
were there property mods?
struct svn_fs_ioctl_code_t svn_fs_ioctl_code_t
A structure specifying the filesystem-specific input/output operation.
svn_error_t * svn_fs_generate_lock_token(const char **token, svn_fs_t *fs, apr_pool_t *pool)
Generate a unique lock-token using fs.
svn_error_t * svn_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.
svn_error_t *(* svn_txdelta_window_handler_t)(svn_txdelta_window_t *window, void *baton)
A typedef for functions that consume a series of delta windows, for use in caller-pushes interfaces.
svn_error_t * svn_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 ref...
svn_fs_path_change_kind_t
The kind of change that occurred on the path.
svn_error_t * svn_fs_hotcopy_berkeley(const char *src_path, const char *dest_path, svn_boolean_t clean_logs, apr_pool_t *pool)
svn_revnum_t svn_fs_txn_base_revision(svn_fs_txn_t *txn)
Return txn's base revision.
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.
svn_error_t * svn_fs_make_file(svn_fs_root_t *root, const char *path, apr_pool_t *pool)
Create a new file named path in root.
int svn_boolean_t
YABT: Yet Another Boolean Type.
svn_error_t * svn_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; t...
svn_error_t * svn_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_t * svn_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.
Similar to svn_fs_path_change2_t, but without kind and copyfrom information.
#define SVN_DEPRECATED
Macro used to mark deprecated functions.
svn_error_t * svn_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.
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().
svn_error_t * svn_fs_initialize(apr_pool_t *pool)
Callers should invoke this function to initialize global state in the FS library before creating FS o...
svn_error_t * svn_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.
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.
long int svn_revnum_t
A revision number.
svn_node_kind_t
The various types of nodes in the Subversion filesystem.
struct svn_fs_id_t svn_fs_id_t
An object representing a node-revision id.
svn_error_t * svn_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.
const svn_fs_id_t * id
The node revision ID it names.
@ svn_fs_pack_notify_noop
pack has been a no-op for this repository.
svn_error_t * svn_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,...
svn_boolean_t text_mod
was the text touched? For node_kind=dir: always false.
svn_error_t * svn_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_fs_pack_notify_end_revprop
packing of the shard revprops has completed
svn_error_t * svn_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_t * svn_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.
svn_error_t *(* svn_cancel_func_t)(void *cancel_baton)
A user defined callback that subversion will call with a user defined baton to see if the current ope...
struct svn_fs_path_change_t svn_fs_path_change_t
Similar to svn_fs_path_change2_t, but without kind and copyfrom information.
svn_error_t * svn_fs_print_modules(svn_stringbuf_t *output, apr_pool_t *pool)
Append a textual list of all available FS modules to the stringbuf output.
int shard_size
Shard size, always > 0.
const svn_fs_id_t * node_rev_id
node revision id of changed path
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_t * svn_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.
svn_error_t * svn_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 NU...
svn_error_t * svn_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.
struct svn_fs_path_change3_t svn_fs_path_change3_t
Change descriptor.
General file I/O for Subversion.
svn_error_t * svn_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.
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.
struct svn_txdelta_stream_t svn_txdelta_stream_t
A delta stream — this is the hat from which we pull a series of svn_txdelta_window_t objects,...
svn_error_t * svn_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_t * svn_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.
svn_error_t * svn_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 v...
A structure specifying the filesystem-specific input/output operation.
svn_error_t * svn_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 proper...
svn_fs_path_change_kind_t change_kind
kind of change
int shard_size
Shard size, or 0 if the filesystem is not currently sharded.
svn_error_t * svn_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 p...
svn_error_t * svn_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.
struct svn_fs_root_t svn_fs_root_t
The Filesystem Root object.
svn_error_t * svn_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.
A buffered string, capable of appending without an allocation and copy for each append.
svn_error_t * svn_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_t * svn_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_fs_id_t * svn_fs_parse_id(const char *data, apr_size_t len, apr_pool_t *pool)
mergeinfo handling and processing
svn_boolean_t text_mod
was the text touched? For node_kind=dir: always false.
svn_error_t * svn_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_fs_pack_notify_start
packing of the shard has commenced
svn_error_t * svn_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 ...
svn_error_t * svn_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.
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.
@ svn_fs_upgrade_format_bumped
DB format has been set to the new value.
apr_hash_t * svn_mergeinfo_t
A hash mapping merge source paths to non-empty rangelist arrays.
svn_error_t * svn_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_fs_path_change_kind_t change_kind
kind of change
svn_error_t * svn_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.