GME
13
|
00001 00027 #ifndef SVN_FS_H 00028 #define SVN_FS_H 00029 00030 #include <apr.h> 00031 #include <apr_pools.h> 00032 #include <apr_hash.h> 00033 #include <apr_tables.h> 00034 #include <apr_time.h> /* for apr_time_t */ 00035 00036 #include "svn_types.h" 00037 #include "svn_string.h" 00038 #include "svn_delta.h" 00039 #include "svn_io.h" 00040 #include "svn_mergeinfo.h" 00041 #include "svn_checksum.h" 00042 00043 00044 #ifdef __cplusplus 00045 extern "C" { 00046 #endif /* __cplusplus */ 00047 00048 00054 const svn_version_t * 00055 svn_fs_version(void); 00056 00062 /* Opening and creating filesystems. */ 00063 00064 00066 typedef struct svn_fs_t svn_fs_t; 00067 00068 00073 #define SVN_FS_CONFIG_BDB_TXN_NOSYNC "bdb-txn-nosync" 00074 #define SVN_FS_CONFIG_BDB_LOG_AUTOREMOVE "bdb-log-autoremove" 00075 00080 #define SVN_FS_CONFIG_FSFS_CACHE_DELTAS "fsfs-cache-deltas" 00081 00086 #define SVN_FS_CONFIG_FSFS_CACHE_FULLTEXTS "fsfs-cache-fulltexts" 00087 00096 #define SVN_FS_CONFIG_FSFS_CACHE_REVPROPS "fsfs-cache-revprops" 00097 00111 #define SVN_FS_CONFIG_FSFS_CACHE_NS "fsfs-cache-namespace" 00112 00113 /* Note to maintainers: if you add further SVN_FS_CONFIG_FSFS_CACHE_* knobs, 00114 update fs_fs.c:verify_as_revision_before_current_plus_plus(). */ 00115 00116 /* See also svn_fs_type(). */ 00118 #define SVN_FS_CONFIG_FS_TYPE "fs-type" 00119 00120 #define SVN_FS_TYPE_BDB "bdb" 00121 00122 #define SVN_FS_TYPE_FSFS "fsfs" 00123 00129 #define SVN_FS_CONFIG_PRE_1_4_COMPATIBLE "pre-1.4-compatible" 00130 00136 #define SVN_FS_CONFIG_PRE_1_5_COMPATIBLE "pre-1.5-compatible" 00137 00143 #define SVN_FS_CONFIG_PRE_1_6_COMPATIBLE "pre-1.6-compatible" 00144 00150 #define SVN_FS_CONFIG_PRE_1_8_COMPATIBLE "pre-1.8-compatible" 00151 00176 svn_error_t * 00177 svn_fs_initialize(apr_pool_t *pool); 00178 00179 00187 typedef void (*svn_fs_warning_callback_t)(void *baton, svn_error_t *err); 00188 00189 00199 void 00200 svn_fs_set_warning_func(svn_fs_t *fs, 00201 svn_fs_warning_callback_t warning, 00202 void *warning_baton); 00203 00204 00205 00234 svn_error_t * 00235 svn_fs_create(svn_fs_t **fs_p, 00236 const char *path, 00237 apr_hash_t *fs_config, 00238 apr_pool_t *pool); 00239 00261 svn_error_t * 00262 svn_fs_open(svn_fs_t **fs_p, 00263 const char *path, 00264 apr_hash_t *fs_config, 00265 apr_pool_t *pool); 00266 00279 svn_error_t * 00280 svn_fs_upgrade(const char *path, 00281 apr_pool_t *pool); 00282 00292 typedef void (*svn_fs_progress_notify_func_t)(svn_revnum_t revision, 00293 void *baton, 00294 apr_pool_t *pool); 00295 00311 svn_error_t * 00312 svn_fs_type(const char **fs_type, 00313 const char *path, 00314 apr_pool_t *pool); 00315 00323 const char * 00324 svn_fs_path(svn_fs_t *fs, 00325 apr_pool_t *pool); 00326 00337 apr_hash_t * 00338 svn_fs_config(svn_fs_t *fs, 00339 apr_pool_t *pool); 00340 00350 svn_error_t * 00351 svn_fs_delete_fs(const char *path, 00352 apr_pool_t *pool); 00353 00370 svn_error_t * 00371 svn_fs_hotcopy2(const char *src_path, 00372 const char *dest_path, 00373 svn_boolean_t clean, 00374 svn_boolean_t incremental, 00375 svn_cancel_func_t cancel_func, 00376 void *cancel_baton, 00377 apr_pool_t *scratch_pool); 00378 00386 SVN_DEPRECATED 00387 svn_error_t * 00388 svn_fs_hotcopy(const char *src_path, 00389 const char *dest_path, 00390 svn_boolean_t clean, 00391 apr_pool_t *pool); 00392 00428 svn_error_t * 00429 svn_fs_recover(const char *path, 00430 svn_cancel_func_t cancel_func, 00431 void *cancel_baton, 00432 apr_pool_t *pool); 00433 00434 00440 typedef svn_error_t *(*svn_fs_freeze_func_t)(void *baton, apr_pool_t *pool); 00441 00454 svn_error_t * 00455 svn_fs_freeze(svn_fs_t *fs, 00456 svn_fs_freeze_func_t freeze_func, 00457 void *freeze_baton, 00458 apr_pool_t *pool); 00459 00460 00495 SVN_DEPRECATED 00496 svn_error_t * 00497 svn_fs_set_berkeley_errcall(svn_fs_t *fs, 00498 void (*handler)(const char *errpfx, 00499 char *msg)); 00500 00514 svn_error_t * 00515 svn_fs_berkeley_logfiles(apr_array_header_t **logfiles, 00516 const char *path, 00517 svn_boolean_t only_unused, 00518 apr_pool_t *pool); 00519 00520 00534 SVN_DEPRECATED 00535 svn_fs_t * 00536 svn_fs_new(apr_hash_t *fs_config, 00537 apr_pool_t *pool); 00538 00540 SVN_DEPRECATED 00541 svn_error_t * 00542 svn_fs_create_berkeley(svn_fs_t *fs, 00543 const char *path); 00544 00546 SVN_DEPRECATED 00547 svn_error_t * 00548 svn_fs_open_berkeley(svn_fs_t *fs, 00549 const char *path); 00550 00552 SVN_DEPRECATED 00553 const char * 00554 svn_fs_berkeley_path(svn_fs_t *fs, 00555 apr_pool_t *pool); 00556 00558 SVN_DEPRECATED 00559 svn_error_t * 00560 svn_fs_delete_berkeley(const char *path, 00561 apr_pool_t *pool); 00562 00564 SVN_DEPRECATED 00565 svn_error_t * 00566 svn_fs_hotcopy_berkeley(const char *src_path, 00567 const char *dest_path, 00568 svn_boolean_t clean_logs, 00569 apr_pool_t *pool); 00570 00572 SVN_DEPRECATED 00573 svn_error_t * 00574 svn_fs_berkeley_recover(const char *path, 00575 apr_pool_t *pool); 00580 00599 typedef struct svn_fs_access_t svn_fs_access_t; 00600 00601 00608 svn_error_t * 00609 svn_fs_create_access(svn_fs_access_t **access_ctx, 00610 const char *username, 00611 apr_pool_t *pool); 00612 00613 00622 svn_error_t * 00623 svn_fs_set_access(svn_fs_t *fs, 00624 svn_fs_access_t *access_ctx); 00625 00626 00630 svn_error_t * 00631 svn_fs_get_access(svn_fs_access_t **access_ctx, 00632 svn_fs_t *fs); 00633 00634 00638 svn_error_t * 00639 svn_fs_access_get_username(const char **username, 00640 svn_fs_access_t *access_ctx); 00641 00642 00650 svn_error_t * 00651 svn_fs_access_add_lock_token2(svn_fs_access_t *access_ctx, 00652 const char *path, 00653 const char *token); 00654 00660 SVN_DEPRECATED 00661 svn_error_t * 00662 svn_fs_access_add_lock_token(svn_fs_access_t *access_ctx, 00663 const char *token); 00664 00667 00714 typedef struct svn_fs_id_t svn_fs_id_t; 00715 00716 00720 int 00721 svn_fs_compare_ids(const svn_fs_id_t *a, 00722 const svn_fs_id_t *b); 00723 00724 00725 00729 svn_boolean_t 00730 svn_fs_check_related(const svn_fs_id_t *id1, 00731 const svn_fs_id_t *id2); 00732 00733 00741 SVN_DEPRECATED 00742 svn_fs_id_t * 00743 svn_fs_parse_id(const char *data, 00744 apr_size_t len, 00745 apr_pool_t *pool); 00746 00747 00752 svn_string_t * 00753 svn_fs_unparse_id(const svn_fs_id_t *id, 00754 apr_pool_t *pool); 00755 00758 00855 typedef struct svn_fs_txn_t svn_fs_txn_t; 00856 00857 00868 #define SVN_FS_TXN_CHECK_OOD 0x00001 00869 00873 #define SVN_FS_TXN_CHECK_LOCKS 0x00002 00874 00895 svn_error_t * 00896 svn_fs_begin_txn2(svn_fs_txn_t **txn_p, 00897 svn_fs_t *fs, 00898 svn_revnum_t rev, 00899 apr_uint32_t flags, 00900 apr_pool_t *pool); 00901 00902 00908 SVN_DEPRECATED 00909 svn_error_t * 00910 svn_fs_begin_txn(svn_fs_txn_t **txn_p, 00911 svn_fs_t *fs, 00912 svn_revnum_t rev, 00913 apr_pool_t *pool); 00914 00915 00916 00966 svn_error_t * 00967 svn_fs_commit_txn(const char **conflict_p, 00968 svn_revnum_t *new_rev, 00969 svn_fs_txn_t *txn, 00970 apr_pool_t *pool); 00971 00972 00983 svn_error_t * 00984 svn_fs_abort_txn(svn_fs_txn_t *txn, 00985 apr_pool_t *pool); 00986 00987 00994 svn_error_t * 00995 svn_fs_purge_txn(svn_fs_t *fs, 00996 const char *txn_id, 00997 apr_pool_t *pool); 00998 00999 01003 svn_error_t * 01004 svn_fs_txn_name(const char **name_p, 01005 svn_fs_txn_t *txn, 01006 apr_pool_t *pool); 01007 01009 svn_revnum_t 01010 svn_fs_txn_base_revision(svn_fs_txn_t *txn); 01011 01012 01013 01023 svn_error_t * 01024 svn_fs_open_txn(svn_fs_txn_t **txn, 01025 svn_fs_t *fs, 01026 const char *name, 01027 apr_pool_t *pool); 01028 01029 01034 svn_error_t * 01035 svn_fs_list_transactions(apr_array_header_t **names_p, 01036 svn_fs_t *fs, 01037 apr_pool_t *pool); 01038 01039 /* Transaction properties */ 01040 01045 svn_error_t * 01046 svn_fs_txn_prop(svn_string_t **value_p, 01047 svn_fs_txn_t *txn, 01048 const char *propname, 01049 apr_pool_t *pool); 01050 01051 01056 svn_error_t * 01057 svn_fs_txn_proplist(apr_hash_t **table_p, 01058 svn_fs_txn_t *txn, 01059 apr_pool_t *pool); 01060 01061 01067 svn_error_t * 01068 svn_fs_change_txn_prop(svn_fs_txn_t *txn, 01069 const char *name, 01070 const svn_string_t *value, 01071 apr_pool_t *pool); 01072 01073 01084 svn_error_t * 01085 svn_fs_change_txn_props(svn_fs_txn_t *txn, 01086 const apr_array_header_t *props, 01087 apr_pool_t *pool); 01088 01091 01104 typedef struct svn_fs_root_t svn_fs_root_t; 01105 01106 01111 svn_error_t * 01112 svn_fs_revision_root(svn_fs_root_t **root_p, 01113 svn_fs_t *fs, 01114 svn_revnum_t rev, 01115 apr_pool_t *pool); 01116 01117 01122 svn_error_t * 01123 svn_fs_txn_root(svn_fs_root_t **root_p, 01124 svn_fs_txn_t *txn, 01125 apr_pool_t *pool); 01126 01127 01133 void 01134 svn_fs_close_root(svn_fs_root_t *root); 01135 01136 01138 svn_fs_t * 01139 svn_fs_root_fs(svn_fs_root_t *root); 01140 01141 01143 svn_boolean_t 01144 svn_fs_is_txn_root(svn_fs_root_t *root); 01145 01147 svn_boolean_t 01148 svn_fs_is_revision_root(svn_fs_root_t *root); 01149 01150 01154 const char * 01155 svn_fs_txn_root_name(svn_fs_root_t *root, 01156 apr_pool_t *pool); 01157 01164 svn_revnum_t 01165 svn_fs_txn_root_base_revision(svn_fs_root_t *root); 01166 01170 svn_revnum_t 01171 svn_fs_revision_root_revision(svn_fs_root_t *root); 01172 01175 01203 01205 typedef enum svn_fs_path_change_kind_t 01206 { 01208 svn_fs_path_change_modify = 0, 01209 01211 svn_fs_path_change_add, 01212 01214 svn_fs_path_change_delete, 01215 01217 svn_fs_path_change_replace, 01218 01220 svn_fs_path_change_reset 01221 01222 } svn_fs_path_change_kind_t; 01223 01231 typedef struct svn_fs_path_change2_t 01232 { 01234 const svn_fs_id_t *node_rev_id; 01235 01237 svn_fs_path_change_kind_t change_kind; 01238 01240 svn_boolean_t text_mod; 01241 01243 svn_boolean_t prop_mod; 01244 01247 svn_node_kind_t node_kind; 01248 01251 svn_boolean_t copyfrom_known; 01252 svn_revnum_t copyfrom_rev; 01253 const char *copyfrom_path; 01254 01255 /* NOTE! Please update svn_fs_path_change2_create() when adding new 01256 fields here. */ 01257 } svn_fs_path_change2_t; 01258 01259 01266 typedef struct svn_fs_path_change_t 01267 { 01269 const svn_fs_id_t *node_rev_id; 01270 01272 svn_fs_path_change_kind_t change_kind; 01273 01275 svn_boolean_t text_mod; 01276 01278 svn_boolean_t prop_mod; 01279 01280 } svn_fs_path_change_t; 01281 01292 svn_fs_path_change2_t * 01293 svn_fs_path_change2_create(const svn_fs_id_t *node_rev_id, 01294 svn_fs_path_change_kind_t change_kind, 01295 apr_pool_t *pool); 01296 01313 svn_error_t * 01314 svn_fs_paths_changed2(apr_hash_t **changed_paths2_p, 01315 svn_fs_root_t *root, 01316 apr_pool_t *pool); 01317 01318 01324 SVN_DEPRECATED 01325 svn_error_t * 01326 svn_fs_paths_changed(apr_hash_t **changed_paths_p, 01327 svn_fs_root_t *root, 01328 apr_pool_t *pool); 01329 01332 01333 /* Operations appropriate to all kinds of nodes. */ 01334 01339 svn_error_t * 01340 svn_fs_check_path(svn_node_kind_t *kind_p, 01341 svn_fs_root_t *root, 01342 const char *path, 01343 apr_pool_t *pool); 01344 01345 01347 typedef struct svn_fs_history_t svn_fs_history_t; 01348 01349 01354 svn_error_t * 01355 svn_fs_node_history(svn_fs_history_t **history_p, 01356 svn_fs_root_t *root, 01357 const char *path, 01358 apr_pool_t *pool); 01359 01360 01387 svn_error_t * 01388 svn_fs_history_prev(svn_fs_history_t **prev_history_p, 01389 svn_fs_history_t *history, 01390 svn_boolean_t cross_copies, 01391 apr_pool_t *pool); 01392 01393 01398 svn_error_t * 01399 svn_fs_history_location(const char **path, 01400 svn_revnum_t *revision, 01401 svn_fs_history_t *history, 01402 apr_pool_t *pool); 01403 01404 01408 svn_error_t * 01409 svn_fs_is_dir(svn_boolean_t *is_dir, 01410 svn_fs_root_t *root, 01411 const char *path, 01412 apr_pool_t *pool); 01413 01414 01418 svn_error_t * 01419 svn_fs_is_file(svn_boolean_t *is_file, 01420 svn_fs_root_t *root, 01421 const char *path, 01422 apr_pool_t *pool); 01423 01424 01434 svn_error_t * 01435 svn_fs_node_id(const svn_fs_id_t **id_p, 01436 svn_fs_root_t *root, 01437 const char *path, 01438 apr_pool_t *pool); 01439 01447 svn_error_t * 01448 svn_fs_node_created_rev(svn_revnum_t *revision, 01449 svn_fs_root_t *root, 01450 const char *path, 01451 apr_pool_t *pool); 01452 01462 svn_error_t * 01463 svn_fs_node_origin_rev(svn_revnum_t *revision, 01464 svn_fs_root_t *root, 01465 const char *path, 01466 apr_pool_t *pool); 01467 01474 svn_error_t * 01475 svn_fs_node_created_path(const char **created_path, 01476 svn_fs_root_t *root, 01477 const char *path, 01478 apr_pool_t *pool); 01479 01480 01485 svn_error_t * 01486 svn_fs_node_prop(svn_string_t **value_p, 01487 svn_fs_root_t *root, 01488 const char *path, 01489 const char *propname, 01490 apr_pool_t *pool); 01491 01492 01498 svn_error_t * 01499 svn_fs_node_proplist(apr_hash_t **table_p, 01500 svn_fs_root_t *root, 01501 const char *path, 01502 apr_pool_t *pool); 01503 01504 01514 svn_error_t * 01515 svn_fs_change_node_prop(svn_fs_root_t *root, 01516 const char *path, 01517 const char *name, 01518 const svn_string_t *value, 01519 apr_pool_t *pool); 01520 01521 01529 svn_error_t * 01530 svn_fs_props_changed(svn_boolean_t *changed_p, 01531 svn_fs_root_t *root1, 01532 const char *path1, 01533 svn_fs_root_t *root2, 01534 const char *path2, 01535 apr_pool_t *pool); 01536 01537 01582 svn_error_t * 01583 svn_fs_copied_from(svn_revnum_t *rev_p, 01584 const char **path_p, 01585 svn_fs_root_t *root, 01586 const char *path, 01587 apr_pool_t *pool); 01588 01589 01605 svn_error_t * 01606 svn_fs_closest_copy(svn_fs_root_t **root_p, 01607 const char **path_p, 01608 svn_fs_root_t *root, 01609 const char *path, 01610 apr_pool_t *pool); 01611 01612 01646 svn_error_t * 01647 svn_fs_get_mergeinfo2(svn_mergeinfo_catalog_t *catalog, 01648 svn_fs_root_t *root, 01649 const apr_array_header_t *paths, 01650 svn_mergeinfo_inheritance_t inherit, 01651 svn_boolean_t include_descendants, 01652 svn_boolean_t adjust_inherited_mergeinfo, 01653 apr_pool_t *result_pool, 01654 apr_pool_t *scratch_pool); 01655 01662 SVN_DEPRECATED 01663 svn_error_t * 01664 svn_fs_get_mergeinfo(svn_mergeinfo_catalog_t *catalog, 01665 svn_fs_root_t *root, 01666 const apr_array_header_t *paths, 01667 svn_mergeinfo_inheritance_t inherit, 01668 svn_boolean_t include_descendants, 01669 apr_pool_t *pool); 01670 01698 svn_error_t * 01699 svn_fs_merge(const char **conflict_p, 01700 svn_fs_root_t *source_root, 01701 const char *source_path, 01702 svn_fs_root_t *target_root, 01703 const char *target_path, 01704 svn_fs_root_t *ancestor_root, 01705 const char *ancestor_path, 01706 apr_pool_t *pool); 01707 01708 01709 01710 /* Directories. */ 01711 01712 01714 typedef struct svn_fs_dirent_t 01715 { 01716 01718 const char *name; 01719 01721 const svn_fs_id_t *id; 01722 01724 svn_node_kind_t kind; 01725 01726 } svn_fs_dirent_t; 01727 01728 01735 svn_error_t * 01736 svn_fs_dir_entries(apr_hash_t **entries_p, 01737 svn_fs_root_t *root, 01738 const char *path, 01739 apr_pool_t *pool); 01740 01741 01748 svn_error_t * 01749 svn_fs_make_dir(svn_fs_root_t *root, 01750 const char *path, 01751 apr_pool_t *pool); 01752 01753 01766 svn_error_t * 01767 svn_fs_delete(svn_fs_root_t *root, 01768 const char *path, 01769 apr_pool_t *pool); 01770 01771 01793 svn_error_t * 01794 svn_fs_copy(svn_fs_root_t *from_root, 01795 const char *from_path, 01796 svn_fs_root_t *to_root, 01797 const char *to_path, 01798 apr_pool_t *pool); 01799 01800 01809 svn_error_t * 01810 svn_fs_revision_link(svn_fs_root_t *from_root, 01811 svn_fs_root_t *to_root, 01812 const char *path, 01813 apr_pool_t *pool); 01814 01815 /* Files. */ 01816 01820 svn_error_t * 01821 svn_fs_file_length(svn_filesize_t *length_p, 01822 svn_fs_root_t *root, 01823 const char *path, 01824 apr_pool_t *pool); 01825 01826 01860 svn_error_t * 01861 svn_fs_file_checksum(svn_checksum_t **checksum, 01862 svn_checksum_kind_t kind, 01863 svn_fs_root_t *root, 01864 const char *path, 01865 svn_boolean_t force, 01866 apr_pool_t *pool); 01867 01875 SVN_DEPRECATED 01876 svn_error_t * 01877 svn_fs_file_md5_checksum(unsigned char digest[], 01878 svn_fs_root_t *root, 01879 const char *path, 01880 apr_pool_t *pool); 01881 01882 01898 svn_error_t * 01899 svn_fs_file_contents(svn_stream_t **contents, 01900 svn_fs_root_t *root, 01901 const char *path, 01902 apr_pool_t *pool); 01903 01913 typedef svn_error_t * 01914 (*svn_fs_process_contents_func_t)(const unsigned char *contents, 01915 apr_size_t len, 01916 void *baton, 01917 apr_pool_t *scratch_pool); 01918 01934 svn_error_t * 01935 svn_fs_try_process_file_contents(svn_boolean_t *success, 01936 svn_fs_root_t *root, 01937 const char *path, 01938 svn_fs_process_contents_func_t processor, 01939 void* baton, 01940 apr_pool_t *pool); 01941 01948 svn_error_t * 01949 svn_fs_make_file(svn_fs_root_t *root, 01950 const char *path, 01951 apr_pool_t *pool); 01952 01953 01988 svn_error_t * 01989 svn_fs_apply_textdelta(svn_txdelta_window_handler_t *contents_p, 01990 void **contents_baton_p, 01991 svn_fs_root_t *root, 01992 const char *path, 01993 const char *base_checksum, 01994 const char *result_checksum, 01995 apr_pool_t *pool); 01996 01997 02024 svn_error_t * 02025 svn_fs_apply_text(svn_stream_t **contents_p, 02026 svn_fs_root_t *root, 02027 const char *path, 02028 const char *result_checksum, 02029 apr_pool_t *pool); 02030 02031 02039 svn_error_t * 02040 svn_fs_contents_changed(svn_boolean_t *changed_p, 02041 svn_fs_root_t *root1, 02042 const char *path1, 02043 svn_fs_root_t *root2, 02044 const char *path2, 02045 apr_pool_t *pool); 02046 02047 02048 02049 /* Filesystem revisions. */ 02050 02051 02057 svn_error_t * 02058 svn_fs_youngest_rev(svn_revnum_t *youngest_p, 02059 svn_fs_t *fs, 02060 apr_pool_t *pool); 02061 02062 02071 svn_error_t * 02072 svn_fs_deltify_revision(svn_fs_t *fs, 02073 svn_revnum_t revision, 02074 apr_pool_t *pool); 02075 02076 02081 svn_error_t * 02082 svn_fs_revision_prop(svn_string_t **value_p, 02083 svn_fs_t *fs, 02084 svn_revnum_t rev, 02085 const char *propname, 02086 apr_pool_t *pool); 02087 02088 02094 svn_error_t * 02095 svn_fs_revision_proplist(apr_hash_t **table_p, 02096 svn_fs_t *fs, 02097 svn_revnum_t rev, 02098 apr_pool_t *pool); 02099 02100 02122 svn_error_t * 02123 svn_fs_change_rev_prop2(svn_fs_t *fs, 02124 svn_revnum_t rev, 02125 const char *name, 02126 const svn_string_t *const *old_value_p, 02127 const svn_string_t *value, 02128 apr_pool_t *pool); 02129 02130 02137 SVN_DEPRECATED 02138 svn_error_t * 02139 svn_fs_change_rev_prop(svn_fs_t *fs, 02140 svn_revnum_t rev, 02141 const char *name, 02142 const svn_string_t *value, 02143 apr_pool_t *pool); 02144 02145 02146 02147 /* Computing deltas. */ 02148 02149 02159 svn_error_t * 02160 svn_fs_get_file_delta_stream(svn_txdelta_stream_t **stream_p, 02161 svn_fs_root_t *source_root, 02162 const char *source_path, 02163 svn_fs_root_t *target_root, 02164 const char *target_path, 02165 apr_pool_t *pool); 02166 02167 02168 02169 /* UUID manipulation. */ 02170 02173 svn_error_t * 02174 svn_fs_get_uuid(svn_fs_t *fs, 02175 const char **uuid, 02176 apr_pool_t *pool); 02177 02178 02183 svn_error_t * 02184 svn_fs_set_uuid(svn_fs_t *fs, 02185 const char *uuid, 02186 apr_pool_t *pool); 02187 02188 02189 /* Non-historical properties. */ 02190 02191 /* [[Yes, do tell.]] */ 02192 02193 02194 02264 svn_error_t * 02265 svn_fs_lock(svn_lock_t **lock, 02266 svn_fs_t *fs, 02267 const char *path, 02268 const char *token, 02269 const char *comment, 02270 svn_boolean_t is_dav_comment, 02271 apr_time_t expiration_date, 02272 svn_revnum_t current_rev, 02273 svn_boolean_t steal_lock, 02274 apr_pool_t *pool); 02275 02276 02283 svn_error_t * 02284 svn_fs_generate_lock_token(const char **token, 02285 svn_fs_t *fs, 02286 apr_pool_t *pool); 02287 02288 02304 svn_error_t * 02305 svn_fs_unlock(svn_fs_t *fs, 02306 const char *path, 02307 const char *token, 02308 svn_boolean_t break_lock, 02309 apr_pool_t *pool); 02310 02311 02317 svn_error_t * 02318 svn_fs_get_lock(svn_lock_t **lock, 02319 svn_fs_t *fs, 02320 const char *path, 02321 apr_pool_t *pool); 02322 02323 02330 typedef svn_error_t *(*svn_fs_get_locks_callback_t)(void *baton, 02331 svn_lock_t *lock, 02332 apr_pool_t *pool); 02333 02334 02355 svn_error_t * 02356 svn_fs_get_locks2(svn_fs_t *fs, 02357 const char *path, 02358 svn_depth_t depth, 02359 svn_fs_get_locks_callback_t get_locks_func, 02360 void *get_locks_baton, 02361 apr_pool_t *pool); 02362 02377 SVN_DEPRECATED 02378 svn_error_t * 02379 svn_fs_get_locks(svn_fs_t *fs, 02380 const char *path, 02381 svn_fs_get_locks_callback_t get_locks_func, 02382 void *get_locks_baton, 02383 apr_pool_t *pool); 02384 02394 svn_error_t * 02395 svn_fs_print_modules(svn_stringbuf_t *output, 02396 apr_pool_t *pool); 02397 02398 02400 typedef enum svn_fs_pack_notify_action_t 02401 { 02403 svn_fs_pack_notify_start = 0, 02404 02406 svn_fs_pack_notify_end, 02407 02410 svn_fs_pack_notify_start_revprop, 02411 02414 svn_fs_pack_notify_end_revprop 02415 02416 } svn_fs_pack_notify_action_t; 02417 02423 typedef svn_error_t *(*svn_fs_pack_notify_t)(void *baton, 02424 apr_int64_t shard, 02425 svn_fs_pack_notify_action_t action, 02426 apr_pool_t *pool); 02427 02434 svn_error_t * 02435 svn_fs_pack(const char *db_path, 02436 svn_fs_pack_notify_t notify_func, 02437 void *notify_baton, 02438 svn_cancel_func_t cancel_func, 02439 void *cancel_baton, 02440 apr_pool_t *pool); 02441 02442 02485 svn_error_t * 02486 svn_fs_verify(const char *path, 02487 apr_hash_t *fs_config, 02488 svn_revnum_t start, 02489 svn_revnum_t end, 02490 svn_fs_progress_notify_func_t notify_func, 02491 void *notify_baton, 02492 svn_cancel_func_t cancel_func, 02493 void *cancel_baton, 02494 apr_pool_t *scratch_pool); 02495 02520 svn_error_t * 02521 svn_fs_verify_root(svn_fs_root_t *root, 02522 apr_pool_t *scratch_pool); 02523 02526 #ifdef __cplusplus 02527 } 02528 #endif /* __cplusplus */ 02529 02530 #endif /* SVN_FS_H */