📄 svn_repos.h
字号:
* If @a start or @a end is a non-existent revision, return the error * @c SVN_ERR_FS_NO_SUCH_REVISION, without ever invoking @a receiver. * * If optional @a authz_read_func is non-NULL, then use this function * (along with optional @a authz_read_baton) to check the readability * of each changed-path in each revision about to be "pushed" at * @a receiver. If a revision has all unreadable changed-paths, then * don't push the revision at all. If a revision has a mixture of * readable and unreadable changed-paths, then silently omit the * unreadable changed-paths when pushing the revision. * * See also the documentation for @c svn_log_message_receiver_t. * * Use @a pool for temporary allocations. * * @since New in 1.2. */svn_error_t *svn_repos_get_logs3(svn_repos_t *repos, const apr_array_header_t *paths, svn_revnum_t start, svn_revnum_t end, int limit, svn_boolean_t discover_changed_paths, svn_boolean_t strict_node_history, svn_repos_authz_func_t authz_read_func, void *authz_read_baton, svn_log_message_receiver_t receiver, void *receiver_baton, apr_pool_t *pool);/** * Same as svn_repos_get_logs3(), but with @a limit always set to 0. * * @deprecated Provided for backward compatibility with the 1.1 API. */svn_error_t *svn_repos_get_logs2(svn_repos_t *repos, const apr_array_header_t *paths, svn_revnum_t start, svn_revnum_t end, svn_boolean_t discover_changed_paths, svn_boolean_t strict_node_history, svn_repos_authz_func_t authz_read_func, void *authz_read_baton, svn_log_message_receiver_t receiver, void *receiver_baton, apr_pool_t *pool);/** * Same as svn_repos_get_logs2(), but with @a authz_read_func and * @a authz_read_baton always set to NULL. * * @deprecated Provided for backward compatibility with the 1.0 API. */svn_error_t *svn_repos_get_logs(svn_repos_t *repos, const apr_array_header_t *paths, svn_revnum_t start, svn_revnum_t end, svn_boolean_t discover_changed_paths, svn_boolean_t strict_node_history, svn_log_message_receiver_t receiver, void *receiver_baton, apr_pool_t *pool);/* ---------------------------------------------------------------*//* Retreiving multiple revisions of a file. *//** * Retrieve a subset of the interesting revisions of a file @a path in * @a repos as seen in revision @a end. Invoke @a handler with * @a handler_baton as its first argument for each such revision. * @a pool is used for all allocations. See svn_fs_history_prev() for * a discussion of interesting revisions. * * If optional @a authz_read_func is non-NULL, then use this function * (along with optional @a authz_read_baton) to check the readability * of the rev-path in each interesting revision encountered. * * Revision discovery happens from @a end to @a start, and if an * unreadable revision is encountered before @a start is reached, then * revision discovery stops and only the revisions from @a end to the * oldest readable revision are returned (So it will appear that @a * path was added without history in the latter revision). * * If there is an interesting revision of the file that is less than or * equal to start, the iteration will start at that revision. Else, the * iteration will start at the first revision of the file in the repository, * which has to be less than or equal to end. Note that if the function * succeeds, @a handler will have been called at least once. * * In a series of calls, the file contents for the first interesting revision * will be provided as a text delta against the empty file. In the following * calls, the delta will be against the contents for the previous call. * * @since New in 1.1. */svn_error_t *svn_repos_get_file_revs(svn_repos_t *repos, const char *path, svn_revnum_t start, svn_revnum_t end, svn_repos_authz_func_t authz_read_func, void *authz_read_baton, svn_repos_file_rev_handler_t handler, void *handler_baton, apr_pool_t *pool);/* ---------------------------------------------------------------*//** * @defgroup svn_repos_hook_wrappers Hook-sensitive wrappers for libsvn_fs * routines. * @{ *//** Like svn_fs_commit_txn(), but invoke the @a repos's pre- and * post-commit hooks around the commit. Use @a pool for any necessary * allocations. * * If the pre-commit hook or svn_fs_commit_txn() fails, throw the * original error to caller. If an error occurs when running the * post-commit hook, return the original error wrapped with * SVN_ERR_REPOS_POST_COMMIT_HOOK_FAILED. If the caller sees this * error, it knows that the commit succeeded anyway. * * @a conflict_p, @a new_rev, and @a txn are as in svn_fs_commit_txn(). */svn_error_t *svn_repos_fs_commit_txn(const char **conflict_p, svn_repos_t *repos, svn_revnum_t *new_rev, svn_fs_txn_t *txn, apr_pool_t *pool);/** Like svn_fs_begin_txn(), but use @a author and @a log_msg to set the * corresponding properties on transaction @a *txn_p. @a repos is the * repository object which contains the filesystem. @a rev, @a *txn_p, and * @a pool are as in svn_fs_begin_txn(). * * Before a txn is created, the repository's start-commit hooks are * run; if any of them fail, no txn is created, @a *txn_p is unaffected, * and @c SVN_ERR_REPOS_HOOK_FAILURE is returned. * * @a log_msg may be @c NULL to indicate the message is not (yet) available. * The caller will need to attach it to the transaction at a later time. */svn_error_t *svn_repos_fs_begin_txn_for_commit(svn_fs_txn_t **txn_p, svn_repos_t *repos, svn_revnum_t rev, const char *author, const char *log_msg, apr_pool_t *pool);/** Like svn_fs_begin_txn(), but use @a author to set the corresponding * property on transaction @a *txn_p. @a repos is the repository object * which contains the filesystem. @a rev, @a *txn_p, and @a pool are as in * svn_fs_begin_txn(). * * ### Someday: before a txn is created, some kind of read-hook could * be called here. */svn_error_t *svn_repos_fs_begin_txn_for_update(svn_fs_txn_t **txn_p, svn_repos_t *repos, svn_revnum_t rev, const char *author, apr_pool_t *pool);/** @defgroup svn_repos_fs_locks repository lock wrappers * @{ * @since New in 1.2. *//** Like svn_fs_lock(), but invoke the @a repos's pre- and * post-lock hooks before and after the locking action. Use @a pool * for any necessary allocations. * * If the pre-lock hook or svn_fs_lock() fails, throw the original * error to caller. If an error occurs when running the post-lock * hook, return the original error wrapped with * SVN_ERR_REPOS_POST_LOCK_HOOK_FAILED. If the caller sees this * error, it knows that the lock succeeded anyway. */svn_error_t *svn_repos_fs_lock(svn_lock_t **lock, svn_repos_t *repos, 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);/** Like svn_fs_unlock(), but invoke the @a repos's pre- and * post-unlock hooks before and after the unlocking action. Use @a * pool for any necessary allocations. * * If the pre-unlock hook or svn_fs_unlock() fails, throw the original * error to caller. If an error occurs when running the post-unlock * hook, return the original error wrapped with * SVN_ERR_REPOS_POST_UNLOCK_HOOK_FAILED. If the caller sees this * error, it knows that the unlock succeeded anyway. */svn_error_t *svn_repos_fs_unlock(svn_repos_t *repos, const char *path, const char *token, svn_boolean_t break_lock, apr_pool_t *pool);/** Look up all the locks in and under @a path in @a repos, setting @a * *locks to a hash which maps <tt>const char *</tt> paths to the @c * svn_lock_t locks associated with those paths. Use @a * authz_read_func and @a authz_read_baton to "screen" all returned * locks. That is: do not return any locks on any paths that are * unreadable in HEAD, just silently omit them. */svn_error_t *svn_repos_fs_get_locks(apr_hash_t **locks, svn_repos_t *repos, const char *path, svn_repos_authz_func_t authz_read_func, void *authz_read_baton, apr_pool_t *pool);/** @} *//** * Like svn_fs_change_rev_prop(), but invoke the @a repos's pre- and * post-revprop-change hooks around the change. Use @a pool for * temporary allocations. * * @a rev is the revision whose property to change, @a name is the * name of the property, and @a new_value is the new value of the * property. @a author is the authenticated username of the person * changing the property value, or null if not available. * * If @a authz_read_func is non-NULL, then use it (with @a * authz_read_baton) to validate the changed-paths associated with @a * rev. If the revision contains any unreadable changed paths, then * return SVN_ERR_AUTHZ_UNREADABLE. * * @since New in 1.1. */svn_error_t *svn_repos_fs_change_rev_prop2(svn_repos_t *repos, svn_revnum_t rev, const char *author, const char *name, const svn_string_t *new_value, svn_repos_authz_func_t authz_read_func, void *authz_read_baton, apr_pool_t *pool);/** * Similar to svn_repos_fs_change_rev_prop2(), but with the * @a authz_read_func parameter always NULL. * * @deprecated Provided for backward compatibility with the 1.0 API. */svn_error_t *svn_repos_fs_change_rev_prop(svn_repos_t *repos, svn_revnum_t rev, const char *author, const char *name, const svn_string_t *new_value, apr_pool_t *pool);/** * Set @a *value_p to the value of the property named @a propname on * revision @a rev in the filesystem opened in @a repos. If @a rev * has no property by that name, set @a *value_p to zero. Allocate * the result in @a pool. * * If @a authz_read_func is non-NULL, then use it (with @a * authz_read_baton) to validate the changed-paths associated with @a * rev. If the changed-paths are all unreadable, then set @a *value_p * to zero unconditionally. If only some of the changed-paths are * unreadable, then allow 'svn:author' and 'svn:date' propvalues to be * fetched, but return 0 for any other property. * * @since New in 1.1. */svn_error_t *svn_repos_fs_revision_prop(svn_string_t **value_p, svn_repos_t *repos, svn_revnum_t rev, const char *propname, svn_repos_authz_func_t authz_read_func, void *authz_read_baton, apr_pool_t *pool);/** * Set @a *table_p to the entire property list of revision @a rev in * filesystem opened in @a repos, as a hash table allocated in @a * pool. The table maps <tt>char *</tt> property names to @c * svn_string_t * values; the names and values are allocated in @a * pool. * * If @a authz_read_func is non-NULL, then use it (with @a * authz_read_baton) to validate the changed-paths associated with @a * rev. If the changed-paths are all unreadable, then return an empty * hash. If only some of the changed-paths are unreadable, then return * an empty hash, except for 'svn:author' and 'svn:date' properties * (assuming those properties exist). * * @since New in 1.1. */svn_error_t *svn_repos_fs_revision_proplist(apr_hash_t **table_p, svn_repos_t *repos, svn_revnum_t rev, svn_repos_authz_func_t
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -