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.