⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svn_ra.h

📁 subversion-1.4.3-1.tar.gz 配置svn的源码
💻 H
📖 第 1 页 / 共 5 页
字号:
 * * If @a strict_node_history is set, copy history will not be traversed * (if any exists) when harvesting the revision logs for each path. * * If any invocation of @a receiver returns error, return that error * immediately and without wrapping it. * * 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. * * See also the documentation for @c svn_log_message_receiver_t. * * The caller may not invoke any RA operations using @a session from * within @a receiver. * * Use @a pool for memory allocation. * * @since New in 1.2. */svn_error_t *svn_ra_get_log(svn_ra_session_t *session,                            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_log_message_receiver_t receiver,                            void *receiver_baton,                            apr_pool_t *pool);/** * Set @a *kind to the node kind associated with @a path at @a revision.   * If @a path does not exist under @a revision, set @a *kind to  * @c svn_node_none.  @a path is relative to the @a session's parent URL. * * Use @a pool for memory allocation. * * @since New in 1.2. */svn_error_t *svn_ra_check_path(svn_ra_session_t *session,                               const char *path,                               svn_revnum_t revision,                               svn_node_kind_t *kind,                               apr_pool_t *pool);/** * Set @a *dirent to an @c svn_dirent_t associated with @a path at @a * revision.  @a path is relative to the @a session's parent's URL. * If @a path does not exist in @a revision, set @a *dirent to NULL. * * Use @a pool for memory allocation. * * @since New in 1.2. */svn_error_t *svn_ra_stat(svn_ra_session_t *session,                         const char *path,                         svn_revnum_t revision,                         svn_dirent_t **dirent,                         apr_pool_t *pool);/** * Set @a *uuid to the repository's UUID. * * @note The UUID has the same lifetime as the @a session. * * Use @a pool for temporary memory allocation. * * @since New in 1.2. */svn_error_t *svn_ra_get_uuid(svn_ra_session_t *session,                             const char **uuid,                             apr_pool_t *pool);/** * Set @a *url to the repository's root URL.  The value will not include * a trailing '/'.  The returned URL is guaranteed to be a prefix of the * @a session's URL. * * @note The URL has the same lifetime as the @a session. * * Use @a pool for temporary memory allocation. * * @since New in 1.2. */svn_error_t *svn_ra_get_repos_root(svn_ra_session_t *session,                                   const char **url,                                   apr_pool_t *pool);/** * Set @a *locations to the locations (at the repository revisions * @a location_revisions) of the file identified by @a path in * @a peg_revision.  @a path is relative to the URL to which * @a session was opened.  @a location_revisions is an array of * @c svn_revnum_t's.  @a *locations will be a mapping from the revisions to * their appropriate absolute paths.  If the file doesn't exist in a * location_revision, that revision will be ignored. * * Use @a pool for all allocations. * * @note This functionality is not available in pre-1.1 servers.  If the * server doesn't implement it, an @c SVN_ERR_RA_NOT_IMPLEMENTED error is * returned. * * @since New in 1.2. */svn_error_t *svn_ra_get_locations(svn_ra_session_t *session,                                  apr_hash_t **locations,                                  const char *path,                                  svn_revnum_t peg_revision,                                  apr_array_header_t *location_revisions,                                  apr_pool_t *pool);/** * Retrieve a subset of the interesting revisions of a file @a path * as seen in revision @a end (see svn_fs_history_prev() for a * definition of "interesting revisions").  Invoke @a handler with * @a handler_baton as its first argument for each such revision. * @a session is an open RA session.  Use @a pool for all allocations. * * If there is an interesting revision of the file that is less than or * equal to @a start, the iteration will begin at that revision. * Else, the iteration will begin at the first revision of the file in * the repository, which has to be less than or equal to @a end.  Note * that if the function succeeds, @a handler will have been called at * least once. * * In a series of calls to @a handler, 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 * fulltext contents for the previous call. * * @note This functionality is not available in pre-1.1 servers.  If the * server doesn't implement it, an @c SVN_ERR_RA_NOT_IMPLEMENTED error is * returned. * * @since New in 1.2. */svn_error_t *svn_ra_get_file_revs(svn_ra_session_t *session,                                  const char *path,                                  svn_revnum_t start,                                  svn_revnum_t end,                                  svn_ra_file_rev_handler_t handler,                                  void *handler_baton,                                  apr_pool_t *pool);/** * Lock each path in @a path_revs, which is a hash whose keys are the * paths to be locked, and whose values are the corresponding bas * revisions for each path. * * Note that locking is never anonymous, so any server implementing * this function will have to "pull" a username from the client, if * it hasn't done so already. * * @a comment is optional: it's either an xml-escapable string * which describes the lock, or it is NULL. * * If any path is already locked by a different user, then call @a * lock_func/@a lock_baton with an error.  If @a steal_lock is true, * then "steal" the existing lock(s) anyway, even if the RA username * does not match the current lock's owner.  Delete any lock on the * path, and unconditionally create a new lock. * * For each path, if its base revision (in @a path_revs) is a valid * revnum, then do an out-of-dateness check.  If the revnum is less * than the last-changed-revision of any path (or if a path doesn't * exist in HEAD), call @a lock_func/@a lock_baton with an * SVN_ERR_RA_OUT_OF_DATE error. * * After successfully locking a file, @a lock_func is called with the * @a lock_baton. * * Use @a pool for temporary allocations. * * @since New in 1.2. */svn_error_t *svn_ra_lock(svn_ra_session_t *session,                         apr_hash_t *path_revs,                         const char *comment,                         svn_boolean_t steal_lock,                         svn_ra_lock_callback_t lock_func,                          void *lock_baton,                         apr_pool_t *pool);/** * Remove the repository lock for each path in @a path_tokens. * @a path_tokens is a hash whose keys are the paths to be locked, and * whose values are the corresponding lock tokens for each path.  If * the path has no corresponding lock token, or if @a break_lock is TRUE, * then the corresponding value shall be "". *  * Note that unlocking is never anonymous, so any server * implementing this function will have to "pull" a username from * the client, if it hasn't done so already. * * If @a token points to a lock, but the RA username doesn't match the * lock's owner, call @a lockfunc/@a lock_baton with an error.  If @a * break_lock is true, however, instead allow the lock to be "broken" * by the RA user. * * After successfully unlocking a path, @a lock_func is called with * the @a lock_baton. * * Use @a pool for temporary allocations. * * @since New in 1.2. */svn_error_t *svn_ra_unlock(svn_ra_session_t *session,                           apr_hash_t *path_tokens,                           svn_boolean_t break_lock,                           svn_ra_lock_callback_t lock_func,                            void *lock_baton,                           apr_pool_t *pool);/**   * If @a path is locked, set @a *lock to an svn_lock_t which * represents the lock, allocated in @a pool.  If @a path is not * locked, set @a *lock to NULL. * * @since New in 1.2. */svn_error_t *svn_ra_get_lock(svn_ra_session_t *session,                             svn_lock_t **lock,                             const char *path,                             apr_pool_t *pool);/** * Set @a *locks to a hashtable which represents all locks on or * below @a path. * * The hashtable maps (const char *) absolute fs paths to (const * svn_lock_t *) structures.  The hashtable -- and all keys and * values -- are allocated in @a pool. * * @note It is not considered an error for @a path to not exist in HEAD. * Such a search will simply return no locks. * * @note This functionality is not available in pre-1.2 servers.  If the * server doesn't implement it, an @c SVN_ERR_RA_NOT_IMPLEMENTED error is * returned. * * @since New in 1.2. */svn_error_t *svn_ra_get_locks(svn_ra_session_t *session,                              apr_hash_t **locks,                              const char *path,                              apr_pool_t *pool);/** * Replay the changes from @a revision through @a editor and @a edit_baton. * * Changes will be limited to those that occur under @a session's URL, and * the server will assume that the client has no knowledge of revisions * prior to @a low_water_mark.  These two limiting factors define the portion * of the tree that the server will assume the client already has knowledge of, * and thus any copies of data from outside that part of the tree will be * sent in their entirety, not as simple copies or deltas against a previous * version. * * If @a send_deltas is @c TRUE, the actual text and property changes in * the revision will be sent, otherwise dummy text deltas and null property * changes will be sent instead. * * @a pool is used for all allocation. * * @since New in 1.4. */svn_error_t *svn_ra_replay(svn_ra_session_t *session,                           svn_revnum_t revision,                           svn_revnum_t low_water_mark,                           svn_boolean_t send_deltas,                           const svn_delta_editor_t *editor,                           void *edit_baton,                           apr_pool_t *pool);/** * Append a textual list of all available RA modules to the stringbuf * @a output. * * @since New in 1.2. */svn_error_t *svn_ra_print_modules(svn_stringbuf_t *output,                                  apr_pool_t *pool);/** * Similar to svn_ra_print_modules(). * @a ra_baton is ignored. * * @deprecated Provided for backward compatibility with the 1.1 API. */svn_error_t *svn_ra_print_ra_libraries(svn_stringbuf_t **descriptions,                                       void *ra_baton,                                       apr_pool_t *pool);/** * Using this callback struct is similar to calling the newer public * interface that is based on @c svn_ra_session_t. * * @deprecated Provided for backward compatibility with the 1.1 API. */typedef struct svn_ra_plugin_t{  /** The proper name of the RA library, (like "ra_dav" or "ra_local") */  const char *name;             /** Short doc string printed out by `svn --version` */  const char *description;  /* The vtable hooks */  /** Call svn_ra_open() and set @a session_baton to an object representing   * the new session.  All other arguments are passed to svn_ra_open().   */  svn_error_t *(*open)(void **session_baton,                       const char *repos_URL,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -