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_BLOCK_READ "fsfs-block-read"
151 #define SVN_FS_CONFIG_FSFS_SHARD_SIZE "fsfs-shard-size"
161 #define SVN_FS_CONFIG_FSFS_LOG_ADDRESSING "fsfs-log-addressing"
169 #define SVN_FS_CONFIG_FS_TYPE "fs-type"
176 #define SVN_FS_CONFIG_PRE_1_4_COMPATIBLE "pre-1.4-compatible"
183 #define SVN_FS_CONFIG_PRE_1_5_COMPATIBLE "pre-1.5-compatible"
190 #define SVN_FS_CONFIG_PRE_1_6_COMPATIBLE "pre-1.6-compatible"
197 #define SVN_FS_CONFIG_PRE_1_8_COMPATIBLE "pre-1.8-compatible"
209 #define SVN_FS_CONFIG_COMPATIBLE_VERSION "compatible-version"
261 void *warning_baton);
297 apr_hash_t *fs_config,
325 apr_hash_t *fs_config,
326 apr_pool_t *result_pool,
327 apr_pool_t *scratch_pool);
339 apr_hash_t *fs_config,
372 apr_pool_t *scratch_pool);
402 apr_pool_t *scratch_pool);
496 apr_pool_t *scratch_pool);
526 const char *dest_path,
533 apr_pool_t *scratch_pool);
545 const char *dest_path,
550 apr_pool_t *scratch_pool);
562 const char *dest_path,
613 typedef svn_error_t *(*svn_fs_freeze_func_t)(
void *baton, apr_pool_t *pool);
676 void (*handler)(
const char *errpfx,
745 const char *dest_path,
788 const char *username,
1091 #define SVN_FS_TXN_CHECK_OOD 0x00001
1096 #define SVN_FS_TXN_CHECK_LOCKS 0x00002
1104 #define SVN_FS_TXN_CLIENT_DATE 0x00004
1291 const char *propname,
1329 const apr_array_header_t *props,
1513 const char *copyfrom_path;
1630 apr_pool_t *result_pool,
1631 apr_pool_t *scratch_pool);
1681 apr_pool_t *result_pool,
1682 apr_pool_t *scratch_pool);
1760 apr_pool_t *scratch_pool);
1811 const char *propname,
1836 apr_pool_t *scratch_pool);
1872 apr_pool_t *scratch_pool);
1950 const char **path_p,
1973 const char **path_p,
2017 const apr_array_header_t *paths,
2021 apr_pool_t *result_pool,
2022 apr_pool_t *scratch_pool);
2034 const apr_array_header_t *paths,
2069 const char *source_path,
2071 const char *target_path,
2073 const char *ancestor_path,
2121 apr_hash_t *entries,
2122 apr_pool_t *result_pool,
2123 apr_pool_t *scratch_pool);
2178 const char *from_path,
2180 const char *to_path,
2298 (*svn_fs_process_contents_func_t)(
const unsigned char *contents,
2301 apr_pool_t *scratch_pool);
2374 void **contents_baton_p,
2377 const char *base_checksum,
2378 const char *result_checksum,
2409 const char *result_checksum,
2429 apr_pool_t *scratch_pool);
2488 apr_pool_t *result_pool,
2489 apr_pool_t *scratch_pool);
2500 apr_pool_t *result_pool,
2501 apr_pool_t *scratch_pool);
2527 const char *propname,
2604 const char *source_path,
2606 const char *target_path,
2677 apr_pool_t *result_pool);
2710 apr_pool_t *scratch_pool);
2768 apr_hash_t *lock_targets,
2769 const char *comment,
2771 apr_time_t expiration_date,
2775 apr_pool_t *result_pool,
2776 apr_pool_t *scratch_pool);
2788 const char *comment,
2790 apr_time_t expiration_date,
2844 apr_hash_t *unlock_targets,
2848 apr_pool_t *result_pool,
2849 apr_pool_t *scratch_pool);
2911 void *get_locks_baton,
2933 void *get_locks_baton,
3038 apr_hash_t *fs_config,
3045 apr_pool_t *scratch_pool);
3073 apr_pool_t *scratch_pool);
3163 apr_pool_t *result_pool,
3164 apr_pool_t *scratch_pool);
3179 apr_pool_t *result_pool,
3180 apr_pool_t *scratch_pool);
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 ...
ignore all previous change items for path (internal-use only)
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_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.
Counted-length strings for Subversion, plus some C string goodies.
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_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_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_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.
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_fs_upgrade_notify_action_t
The kind of action being taken by 'upgrade'.
svn_error_t * svn_fs_delete_fs(const char *path, apr_pool_t *pool)
Delete the filesystem at path.
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_set_access(svn_fs_t *fs, svn_fs_access_t *access_ctx)
Associate access_ctx with an open fs.
svn_depth_t
The concept of depth for directories.
A structure that provides some information about a filesystem.
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_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_revnum_t min_unpacked_rev
The smallest revision which is not in a pack file.
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_error_t * svn_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_checksum_kind_t
Various types of checksums.
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_tristate_t
Generic three-state property to represent an unknown value for values that are just like booleans...
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_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.
A structure that provides some information about a filesystem.
The type of a Subversion directory entry.
The (root, path)-pairs are not related, i.e.
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_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_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_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_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_fs_path_change_kind_t change_kind
kind of change
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)
Retrieve mergeinfo for multiple nodes.
svn_error_t * svn_fs_open_berkeley(svn_fs_t *fs, const char *path)
struct svn_fs_info_placeholder_t svn_fs_info_placeholder_t
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_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...
General file I/O for Subversion.
Subversion checksum routines.
int shard_size
Shard size, always > 0.
svn_boolean_t svn_fs_is_revision_root(svn_fs_root_t *root)
Return TRUE iff root is a revision root.
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 svn_fs_id_t * id
The node revision ID it names.
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_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_revnum_t svn_fs_revision_root_revision(svn_fs_root_t *root)
If root is the root of a revision, return the revision number.
DB format has been set to the new value.
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 have changed.
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.
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...
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.
svn_boolean_t text_mod
was the text touched? For node_kind=dir: always false.
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.
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_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_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_boolean_t log_addressing
TRUE if logical addressing is enabled for this repository.
svn_boolean_t prop_mod
were there property mods?
svn_mergeinfo_inheritance_t
The three ways to request mergeinfo affecting a given path.
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_error_t * svn_fs_berkeley_recover(const char *path, apr_pool_t *pool)
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_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_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_fs_t * svn_fs_new(apr_hash_t *fs_config, apr_pool_t *pool)
A lock object, for client & server to share.
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.
Removal of the non-packed revprop shard is completed.
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_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.
const char * fs_type
Filesystem backend (fs_type), i.e., the string SVN_FS_TYPE_FSFS.
svn_node_kind_t
The various types of nodes in the Subversion filesystem.
svn_boolean_t prop_mod
were the properties touched? modify: true iff props touched.
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_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_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_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.
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_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_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.
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_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_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.
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_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_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_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_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_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_boolean_t copyfrom_known
Copyfrom revision and path; this is only valid if copyfrom_known is true.
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...
apr_int64_t svn_filesize_t
The size of a file in the Subversion FS.
struct svn_fs_dirent_t svn_fs_dirent_t
The type of a Subversion directory entry.
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.
struct svn_fs_access_t svn_fs_access_t
An opaque object representing temporary user data.
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_commit_txn(const char **conflict_p, svn_revnum_t *new_rev, svn_fs_txn_t *txn, apr_pool_t *pool)
Commit txn.
packing of the shard revprops has completed
svn_fs_path_change_kind_t change_kind
kind of change
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.
const svn_version_t * svn_fs_version(void)
Get libsvn_fs version information.
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...
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.
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).
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_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.
svn_error_t *(* svn_fs_freeze_func_t)(void *baton, apr_pool_t *pool)
Callback for svn_fs_freeze().
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_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_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_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_pack_notify_action_t
The kind of action being taken by 'pack'.
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...
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.
svn_revnum_t svn_fs_txn_base_revision(svn_fs_txn_t *txn)
Return txn's base revision.
svn_error_t * svn_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 i...
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_fs_path_change_kind_t
The kind of change that occurred on the 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_fs_id_t * svn_fs_parse_id(const char *data, apr_size_t len, apr_pool_t *pool)
path removed and re-added in txn
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_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_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_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.
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_access_get_username(const char **username, svn_fs_access_t *access_ctx)
Accessors for the access context:
struct svn_fs_fsfs_info_t svn_fs_fsfs_info_t
A structure that provides some information about a filesystem.
packing of the shard revprops has commenced
struct svn_stream_t svn_stream_t
An abstract stream of bytes–either incoming or outgoing or both.
struct svn_fs_history_t svn_fs_history_t
An opaque node history object.
packing of the shard is completed
Subversion's data types.
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_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_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_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...
A generic checksum representation.
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.
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...
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_create_berkeley(svn_fs_t *fs, const char *path)
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...
#define SVN_DEPRECATED
Macro used to mark deprecated functions.
svn_error_t * svn_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 alloc...
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_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_boolean_t svn_fs_is_txn_root(svn_fs_root_t *root)
Return TRUE iff root is a transaction root.
const char * name
The name of this directory entry.
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...
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.
Packing of the revprop shard has completed.
svn_error_t * svn_fs_delete_berkeley(const char *path, apr_pool_t *pool)
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_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_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_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_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...
long int svn_revnum_t
About Special Files in Subversion.
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, and with the following known problem (which is not present in svn_fs_get_locks2()):
struct svn_fs_txn_t svn_fs_txn_t
The type of a Subversion transaction object.
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.
apr_hash_t * svn_mergeinfo_catalog_t
A hash mapping paths (const char *) to svn_mergeinfo_t.
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...
struct svn_fs_root_t svn_fs_root_t
The Filesystem Root object.
struct svn_fs_path_change_t svn_fs_path_change_t
Similar to svn_fs_path_change2_t, but without kind and copyfrom information.
const char * fs_type
Filesystem backend (fs_type), i.e., the string SVN_FS_TYPE_FSX.
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.
svn_boolean_t text_mod
were there text mods?
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...
svn_node_kind_t node_kind
what node kind is the path? (Note: it is legal for this to be svn_node_unknown.)
packing of the shard has commenced
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_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.
const svn_fs_id_t * node_rev_id
node revision id of changed path
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_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_path_change2_t svn_fs_path_change2_t
Change descriptor.
int svn_boolean_t
YABT: Yet Another Boolean Type.
const svn_fs_id_t * node_rev_id
node revision id of changed path
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.
svn_fs_node_relation_t
Defines the possible ways two arbitrary (root, path)-pairs may be related.
const char * svn_fs_berkeley_path(svn_fs_t *fs, apr_pool_t *pool)
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_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...
mergeinfo handling and processing
svn_error_t * svn_fs_abort_txn(svn_fs_txn_t *txn, apr_pool_t *pool)
Abort the transaction txn.
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 ...
struct svn_fs_id_t svn_fs_id_t
An object representing a node-revision id.
No changes have been made between the (root, path)-pairs, i.e.
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...
svn_node_kind_t kind
The node kind.
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_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.
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...
A buffered string, capable of appending without an allocation and copy for each append.
Similar to svn_fs_path_change2_t, but without kind and copyfrom information.
svn_fs_t * svn_fs_root_fs(svn_fs_root_t *root)
Return the filesystem to which root belongs.
void(* svn_fs_warning_callback_t)(void *baton, svn_error_t *err)
The type of a warning callback function.
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_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...
int shard_size
Shard size, or 0 if the filesystem is not currently sharded.
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.
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_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")...
struct svn_fs_fsx_info_t svn_fs_fsx_info_t
A structure that provides some information about a filesystem.
The (root, path)-pairs have a common ancestor (which may be one of them) but there are changes betwee...