pub unsafe extern "C" fn svn_client_commit6(
targets: *const apr_array_header_t,
depth: svn_depth_t,
keep_locks: svn_boolean_t,
keep_changelists: svn_boolean_t,
commit_as_operations: svn_boolean_t,
include_file_externals: svn_boolean_t,
include_dir_externals: svn_boolean_t,
changelists: *const apr_array_header_t,
revprop_table: *const apr_hash_t,
commit_callback: svn_commit_callback2_t,
commit_baton: *mut c_void,
ctx: *mut svn_client_ctx_t,
pool: *mut apr_pool_t,
) -> *mut svn_error_t
Expand description
Commit files or directories into repository, authenticating with the authentication baton cached in @a ctx, and using @a ctx->log_msg_func3/@a ctx->log_msg_baton3 to obtain the log message. Set @a *commit_info_p to the results of the commit, allocated in @a pool.
@a targets is an array of const char * paths to commit. They need not be canonicalized nor condensed; this function will take care of that. If @a targets has zero elements, then do nothing and return immediately without error.
If non-NULL, @a revprop_table is a hash table holding additional, custom revision properties (const char * names mapped to svn_string_t * values) to be set on the new revision. This table cannot contain any standard Subversion properties.
If @a ctx->notify_func2 is non-NULL, then call @a ctx->notify_func2 with @a ctx->notify_baton2 as the commit progresses, with any of the following actions: #svn_wc_notify_commit_modified, #svn_wc_notify_commit_added, #svn_wc_notify_commit_deleted, #svn_wc_notify_commit_replaced, #svn_wc_notify_commit_copied, #svn_wc_notify_commit_copied_replaced, #svn_wc_notify_commit_postfix_txdelta.
If @a depth is #svn_depth_infinity, commit all changes to and below named targets. If @a depth is #svn_depth_empty, commit only named targets (that is, only property changes on named directory targets, and property and content changes for named file targets). If @a depth is #svn_depth_files, behave as above for named file targets, and for named directory targets, commit property changes on a named directory and all changes to files directly inside that directory. If #svn_depth_immediates, behave as for #svn_depth_files, and for subdirectories of any named directory target commit as though for #svn_depth_empty.
Unlock paths in the repository, unless @a keep_locks is TRUE.
@a changelists is an array of const char * changelist names, used as a restrictive filter on items that are committed; that is, don’t commit anything unless it’s a member of one of those changelists. After the commit completes successfully, remove changelist associations from the targets, unless @a keep_changelists is set. If @a changelists is empty (or altogether @c NULL), no changelist filtering occurs.
If @a commit_as_operations is set to FALSE, when a copy is committed all changes below the copy are always committed at the same time (independent of the value of @a depth). If @a commit_as_operations is #TRUE, changes to descendants are only committed if they are itself included via @a depth and targets.
If @a include_file_externals and/or @a include_dir_externals are #TRUE, also commit all file and/or dir externals (respectively) that are reached by recursion, except for those externals which: - have a fixed revision, or - come from a different repository root URL (dir externals). These flags affect only recursion; externals that directly appear in @a targets are always included in the commit.
§TODO: currently, file externals hidden inside an unversioned dir are
skipped deliberately, because we can't commit those yet.
See STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW.
§TODO: With @c depth_immediates, this function acts as if
@a include_dir_externals was passed #FALSE, but caller expects
immediate child dir externals to be included @c depth_empty.
When @a commit_as_operations is #TRUE it is possible to delete a node and all its descendants by selecting just the root of the deletion. If it is set to #FALSE this will raise an error.
If @a commit_callback is non-NULL, then for each successful commit, call @a commit_callback with @a commit_baton and a #svn_commit_info_t for the commit.
@note #svn_depth_unknown and #svn_depth_exclude must not be passed for @a depth.
Use @a pool for any temporary allocations.
@since New in 1.8.