Skip to main content

svn_ra_get_log2

Function svn_ra_get_log2 

Source
pub unsafe extern "C" fn svn_ra_get_log2(
    session: *mut svn_ra_session_t,
    paths: *const apr_array_header_t,
    start: svn_revnum_t,
    end: svn_revnum_t,
    limit: c_int,
    discover_changed_paths: svn_boolean_t,
    strict_node_history: svn_boolean_t,
    include_merged_revisions: svn_boolean_t,
    revprops: *const apr_array_header_t,
    receiver: svn_log_entry_receiver_t,
    receiver_baton: *mut c_void,
    pool: *mut apr_pool_t,
) -> *mut svn_error_t
Expand description

Invoke @a receiver with @a receiver_baton on each log message from @a start to @a end. @a start may be greater or less than @a end; this just controls whether the log messages are processed in descending or ascending revision number order.

If @a start or @a end is @c SVN_INVALID_REVNUM, it defaults to youngest.

If @a paths is non-NULL and has one or more elements, then only show revisions in which at least one of @a paths was changed (i.e., if file, text or props changed; if dir, props changed or an entry was added or deleted). Each path is an const char *, relative to the repository root of @a session.

If @a limit is greater than zero only invoke @a receiver on the first @a limit logs.

If @a discover_changed_paths, then each call to @a receiver passes a const apr_hash_t * for the receiver’s @a changed_paths argument; the hash’s keys are all the paths committed in that revision, the hash’s values are const svn_log_changed_path2_t * for each committed path. Otherwise, each call to receiver passes NULL for @a changed_paths.

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 @a include_merged_revisions is set, log information for revisions which have been merged to @a targets will also be returned.

If @a revprops is NULL, retrieve all revision properties; else, retrieve only the revision properties named by the (const char *) array elements (i.e. retrieve none if the array is empty).

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.

@note If @a paths is NULL or empty, the result depends on the server. Pre-1.5 servers will send nothing; 1.5 servers will effectively perform the log operation on the root of the repository. This behavior may be changed in the future to ensure consistency across all pedigrees of server.

@note Pre-1.5 servers do not support custom revprop retrieval; if @a revprops is NULL or contains a revprop other than svn:author, svn:date, or svn:log, an @c SVN_ERR_RA_NOT_IMPLEMENTED error is returned.

@since New in 1.5.