svn_ra_get_commit_editor3

Function svn_ra_get_commit_editor3 

Source
pub unsafe extern "C" fn svn_ra_get_commit_editor3(
    session: *mut svn_ra_session_t,
    editor: *mut *const svn_delta_editor_t,
    edit_baton: *mut *mut c_void,
    revprop_table: *mut apr_hash_t,
    commit_callback: svn_commit_callback2_t,
    commit_baton: *mut c_void,
    lock_tokens: *mut apr_hash_t,
    keep_locks: svn_boolean_t,
    pool: *mut apr_pool_t,
) -> *mut svn_error_t
Expand description

Set @a *editor and @a *edit_baton to an editor for committing changes to the repository of @a session, setting the revision properties from @a revprop_table. The revisions being committed against are passed to the editor functions, starting with the rev argument to @c open_root. The path root of the commit is the @a session’s URL.

@a revprop_table is a hash mapping const char * property names to @c svn_string_t property values. The commit log message is expected to be in the @c SVN_PROP_REVISION_LOG element. @a revprop_table can not contain either of @c SVN_PROP_REVISION_DATE or @c SVN_PROP_REVISION_AUTHOR.

Before @c close_edit returns, but after the commit has succeeded, it will invoke @a commit_callback (if non-NULL) with filled-in #svn_commit_info_t *, @a commit_baton, and @a pool or some subpool thereof as arguments. If @a commit_callback returns an error, that error will be returned from @c * close_edit, otherwise @c close_edit will return successfully (unless it encountered an error before invoking @a commit_callback).

The callback will not be called if the commit was a no-op (i.e. nothing was committed);

@a lock_tokens, if non-NULL, is a hash mapping const char * paths (relative to the URL of @a session) to const char * lock tokens. The server checks that the correct token is provided for each committed, locked path. @a lock_tokens must live during the whole commit operation.

If @a keep_locks is @c TRUE, then do not release locks on committed objects. Else, automatically release such locks.

The caller may not perform any RA operations using @a session before finishing the edit.

Use @a pool for memory allocation.

@since New in 1.5.

@note Like most commit editors, the returned editor requires that the @c copyfrom_path parameter passed to its @c add_file and @c add_directory methods is a URL, not a relative path.