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,
   407                                       svn_fs_upgrade_notify_action_t action,
   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,
  3300                                              svn_fs_pack_notify_action_t action,
  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);
 svn_string_t path
path of the node that got changed. 
 
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...
 
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_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_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)
Same as svn_fs_paths_changed3() but returning all changes in a single, large data structure and using...
 
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_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_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. 
 
apr_hash_t * svn_mergeinfo_t
A hash mapping merge source paths to non-empty rangelist arrays. 
 
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_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 the node-revision identified by path under root was created; t...
 
svn_fs_path_change_kind_t change_kind
kind of change 
 
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_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_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...
 
svn_node_kind_t node_kind
what node kind is the path? (Note: it is legal for this to be svn_node_unknown.) 
 
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)
Like svn_fs_revision_prop2 but using pool for scratch_pool as well as result_pool and setting refresh...
 
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 are different. 
 
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. 
 
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_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_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...
 
struct svn_fs_path_change_iterator_t svn_fs_path_change_iterator_t
Opaque iterator object type for a changed paths list. 
 
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_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_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_change_kind_t change_kind
kind of change 
 
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_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_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. 
 
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_boolean_t prop_mod
were the properties touched? modify: true iff props touched. 
 
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_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. 
 
struct svn_fs_path_change3_t svn_fs_path_change3_t
Change descriptor. 
 
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. 
 
svn_error_t *(* svn_fs_freeze_func_t)(void *baton, apr_pool_t *pool)
Callback for svn_fs_freeze(). 
 
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_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_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_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...
 
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. 
 
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. 
 
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. 
 
void(* svn_fs_warning_callback_t)(void *baton, svn_error_t *err)
The type of a warning callback function. 
 
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_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. 
 
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)
Like svn_fs_create2(), but without scratch_pool. 
 
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_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_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. 
 
Similar to svn_fs_path_change3_t, but with node_rev_id and without path information. 
 
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_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. 
 
pack has been a no-op for this repository. 
 
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_berkeley(svn_fs_t *fs, const char *path)
 
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_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)
Like svn_fs_revision_proplist2 but using pool for scratch_pool as well as result_pool and setting ref...
 
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_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...
 
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_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_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_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_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(). 
 
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. 
 
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. 
 
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. 
 
svn_boolean_t copyfrom_known
Copyfrom revision and path; this is only valid if copyfrom_known is true. 
 
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_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
Similar to svn_fs_path_change3_t, but with node_rev_id and without path information. 
 
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_boolean_t text_mod
was the text touched? For node_kind=dir: always false. 
 
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_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...
 
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_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. 
 
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...