Index: subversion/include/svn_client.h =================================================================== --- subversion/include/svn_client.h (revision 15659) +++ subversion/include/svn_client.h (working copy) @@ -733,8 +733,23 @@ * If @a ctx->notify_func2 is non-null, when the directory has been created * (successfully) in the working copy, call @a ctx->notify_func2 with * @a ctx->notify_baton2 and the path of the new directory. Note that this is - * only called for items added to the working copy. */ + * only called for items added to the working copy. + * + * @since New in 1.3. + */ svn_error_t * +svn_client_mkdir2 (svn_client_commit_info2_t **commit_info, + const apr_array_header_t *paths, + svn_client_ctx_t *ctx, + apr_pool_t *pool); + + +/** Same as svn_client_mkdir2, but takes the svn_client_commit_info_t + * for @a commit_info. + * + * @deprecated Provided for backward compatibility with the 1.2 API. + */ +svn_error_t * svn_client_mkdir (svn_client_commit_info_t **commit_info, const apr_array_header_t *paths, svn_client_ctx_t *ctx, @@ -768,8 +783,24 @@ * * If @a ctx->notify_func2 is non-null, then for each item deleted, call * @a ctx->notify_func2 with @a ctx->notify_baton2 and the path of the deleted - * item. */ + * item. + * + * @since New in 1.3. + */ svn_error_t * +svn_client_delete2 (svn_client_commit_info2_t **commit_info, + const apr_array_header_t *paths, + svn_boolean_t force, + svn_client_ctx_t *ctx, + apr_pool_t *pool); + + +/** Similar to svn_client_delete2, but takes + * svn_client_commit_info_t for @a commit_info. + * + * @deprecated Provided for backward compatibility with the 1.2 API. + */ +svn_error_t * svn_client_delete (svn_client_commit_info_t **commit_info, const apr_array_header_t *paths, svn_boolean_t force, @@ -777,6 +808,7 @@ apr_pool_t *pool); + /** Import file or directory @a path into repository directory @a url at * head, authenticating with the authentication baton cached in @a ctx, * and using @a ctx->log_msg_func/@a ctx->log_msg_baton to get a log message @@ -818,7 +850,7 @@ * * @since New in 1.3. */ -svn_error_t *svn_client_import2 (svn_client_commit_info_t **commit_info, +svn_error_t *svn_client_import2 (svn_client_commit_info2_t **commit_info, const char *path, const char *url, svn_boolean_t nonrecursive, @@ -828,7 +860,8 @@ /** * Similar to svn_client_import2(), but with the @a no_ignore parameter - * always set to @c FALSE. + * always set to @c FALSE and using svn_client_commit_info_t for + * @a commit_info. * * @deprecated Provided for backward compatibility with the 1.2 API. */ @@ -868,9 +901,22 @@ * @c SVN_INVALID_REVNUM, then the commit was a no-op; nothing needed to * be committed. * - * @since New in 1.2. + * @since New in 1.3. */ svn_error_t * +svn_client_commit3 (svn_client_commit_info2_t **commit_info, + const apr_array_header_t *targets, + svn_boolean_t recurse, + svn_boolean_t keep_locks, + svn_client_ctx_t *ctx, + apr_pool_t *pool); + +/** Similar to svn_client_commit3, but uses svn_client_commit_info_t + * for @a commit_info. + * + * @deprecated Provided for backward compatibility with the 1.2 API. + */ +svn_error_t * svn_client_commit2 (svn_client_commit_info_t **commit_info, const apr_array_header_t *targets, svn_boolean_t recurse, @@ -1421,8 +1467,24 @@ * If @a ctx->notify_func2 is non-null, invoke it with @a ctx->notify_baton2 * for each item added at the new location, passing the new, relative path of * the added item. + * + * @since New in 1.3. */ svn_error_t * +svn_client_copy2 (svn_client_commit_info2_t **commit_info, + const char *src_path, + const svn_opt_revision_t *src_revision, + const char *dst_path, + svn_client_ctx_t *ctx, + apr_pool_t *pool); + + +/** Similar to svn_client_copy2, but uses svn_client_commit_info_t + * for @a commit_info. + * + * @deprecated Provided for backward compatibility with the 1.2 API. + */ +svn_error_t * svn_client_copy (svn_client_commit_info_t **commit_info, const char *src_path, const svn_opt_revision_t *src_revision, @@ -1474,9 +1536,22 @@ * * ### Is this really true? What about svn_wc_notify_commit_replaced()? ### * - * @since New in 1.2. + * @since New in 1.3. */ svn_error_t * +svn_client_move3 (svn_client_commit_info2_t **commit_info, + const char *src_path, + const char *dst_path, + svn_boolean_t force, + svn_client_ctx_t *ctx, + apr_pool_t *pool); + +/** Similar to svn_client_move3, but uses svn_client_commit_info + * for @a commit_info. + * + * @deprecated Provided for backward compatibility with the 1.2 API. + */ +svn_error_t * svn_client_move2 (svn_client_commit_info_t **commit_info, const char *src_path, const char *dst_path, Index: subversion/libsvn_client/delete.c =================================================================== --- subversion/libsvn_client/delete.c (revision 15659) +++ subversion/libsvn_client/delete.c (working copy) @@ -109,7 +109,7 @@ static svn_error_t * -delete_urls (svn_client_commit_info_t **commit_info, +delete_urls (svn_client_commit_info2_t **commit_info, const apr_array_header_t *paths, svn_client_ctx_t *ctx, apr_pool_t *pool) @@ -233,11 +233,11 @@ svn_error_t * -svn_client_delete (svn_client_commit_info_t **commit_info, - const apr_array_header_t *paths, - svn_boolean_t force, - svn_client_ctx_t *ctx, - apr_pool_t *pool) +svn_client_delete2 (svn_client_commit_info2_t **commit_info, + const apr_array_header_t *paths, + svn_boolean_t force, + svn_client_ctx_t *ctx, + apr_pool_t *pool) { if (! paths->nelts) return SVN_NO_ERROR; @@ -280,3 +280,19 @@ return SVN_NO_ERROR; } + + +svn_error_t * +svn_client_delete (svn_client_commit_info_t **commit_info, + const apr_array_header_t *paths, + svn_boolean_t force, + svn_client_ctx_t *ctx, + apr_pool_t *pool) +{ + /* Memory alloc inside function - typecast and pass on */ + return svn_client_delete2 ( (svn_client_commit_info2_t **) commit_info, + paths, + force, + ctx, + pool); +} Index: subversion/libsvn_client/client.h =================================================================== --- subversion/libsvn_client/client.h (revision 15659) +++ subversion/libsvn_client/client.h (working copy) @@ -249,7 +249,7 @@ /* Get the commit_baton to be used in couple with commit_callback. */ svn_error_t *svn_client__commit_get_baton (void **baton, - svn_client_commit_info_t **info, + svn_client_commit_info2_t **info, apr_pool_t *pool); /* The commit_callback function for storing svn_client_commit_info_t Index: subversion/libsvn_client/copy.c =================================================================== --- subversion/libsvn_client/copy.c (revision 15659) +++ subversion/libsvn_client/copy.c (working copy) @@ -271,7 +271,7 @@ static svn_error_t * -repos_to_repos_copy (svn_client_commit_info_t **commit_info, +repos_to_repos_copy (svn_client_commit_info2_t **commit_info, const char *src_url, const svn_opt_revision_t *src_revision, const char *dst_url, @@ -579,7 +579,7 @@ static svn_error_t * -wc_to_repos_copy (svn_client_commit_info_t **commit_info, +wc_to_repos_copy (svn_client_commit_info2_t **commit_info, const char *src_path, const char *dst_url, svn_client_ctx_t *ctx, @@ -1006,7 +1006,7 @@ static svn_error_t * -setup_copy (svn_client_commit_info_t **commit_info, +setup_copy (svn_client_commit_info2_t **commit_info, const char *src_path, const svn_opt_revision_t *src_revision, const char *dst_path, @@ -1118,12 +1118,12 @@ /* Public Interfaces */ svn_error_t * -svn_client_copy (svn_client_commit_info_t **commit_info, - const char *src_path, - const svn_opt_revision_t *src_revision, - const char *dst_path, - svn_client_ctx_t *ctx, - apr_pool_t *pool) +svn_client_copy2 (svn_client_commit_info2_t **commit_info, + const char *src_path, + const svn_opt_revision_t *src_revision, + const char *dst_path, + svn_client_ctx_t *ctx, + apr_pool_t *pool) { return setup_copy (commit_info, src_path, src_revision, dst_path, @@ -1135,7 +1135,24 @@ svn_error_t * -svn_client_move2 (svn_client_commit_info_t **commit_info, +svn_client_copy (svn_client_commit_info_t **commit_info, + const char *src_path, + const svn_opt_revision_t *src_revision, + const char *dst_path, + svn_client_ctx_t *ctx, + apr_pool_t *pool) +{ + /* mem alloced inside function - simply typecast & pass-on */ + return svn_client_copy2 ( (svn_client_commit_info2_t **)commit_info, + src_path, + src_revision, + dst_path, + ctx, + pool); +} + +svn_error_t * +svn_client_move3 (svn_client_commit_info2_t **commit_info, const char *src_path, const char *dst_path, svn_boolean_t force, @@ -1154,6 +1171,24 @@ } svn_error_t * +svn_client_move2 (svn_client_commit_info_t **commit_info, + const char *src_path, + const char *dst_path, + svn_boolean_t force, + svn_client_ctx_t *ctx, + apr_pool_t *pool) +{ + /* mem alloced inside function - simply typecast & pass-on */ + return svn_client_move3 ( (svn_client_commit_info2_t **)commit_info, + src_path, + dst_path, + force, + ctx, + pool); +} + + +svn_error_t * svn_client_move (svn_client_commit_info_t **commit_info, const char *src_path, const svn_opt_revision_t *src_revision, Index: subversion/libsvn_client/commit_util.c =================================================================== --- subversion/libsvn_client/commit_util.c (revision 15659) +++ subversion/libsvn_client/commit_util.c (working copy) @@ -1316,12 +1316,12 @@ /* Commit callback baton */ struct commit_baton { - svn_client_commit_info_t **info; + svn_client_commit_info2_t **info; apr_pool_t *pool; }; svn_error_t *svn_client__commit_get_baton (void **baton, - svn_client_commit_info_t **info, + svn_client_commit_info2_t **info, apr_pool_t *pool) { struct commit_baton *cb = apr_pcalloc (pool, sizeof (*cb)); @@ -1338,9 +1338,9 @@ void *baton) { struct commit_baton *cb = baton; - svn_client_commit_info_t **info = cb->info; + svn_client_commit_info2_t **info = cb->info; - *info = apr_palloc (cb->pool, sizeof (**info)); + *info = svn_client_create_commit_info (cb->pool); (*info)->date = date ? apr_pstrdup (cb->pool, date) : NULL; (*info)->author = author ? apr_pstrdup (cb->pool, author) : NULL; (*info)->revision = revision; Index: subversion/libsvn_client/add.c =================================================================== --- subversion/libsvn_client/add.c (revision 15659) +++ subversion/libsvn_client/add.c (working copy) @@ -495,7 +495,7 @@ static svn_error_t * -mkdir_urls (svn_client_commit_info_t **commit_info, +mkdir_urls (svn_client_commit_info2_t **commit_info, const apr_array_header_t *paths, svn_client_ctx_t *ctx, apr_pool_t *pool) @@ -612,10 +612,10 @@ svn_error_t * -svn_client_mkdir (svn_client_commit_info_t **commit_info, - const apr_array_header_t *paths, - svn_client_ctx_t *ctx, - apr_pool_t *pool) +svn_client_mkdir2 (svn_client_commit_info2_t **commit_info, + const apr_array_header_t *paths, + svn_client_ctx_t *ctx, + apr_pool_t *pool) { if (! paths->nelts) return SVN_NO_ERROR; @@ -660,3 +660,17 @@ return SVN_NO_ERROR; } + + +svn_error_t * +svn_client_mkdir (svn_client_commit_info_t **commit_info, + const apr_array_header_t *paths, + svn_client_ctx_t *ctx, + apr_pool_t *pool) +{ + /* mem alloced inside function, so simply typecast & pass-on */ + return svn_client_mkdir2 ( (svn_client_commit_info2_t **)commit_info, + paths, + ctx, + pool); +} Index: subversion/libsvn_client/commit.c =================================================================== --- subversion/libsvn_client/commit.c (revision 15659) +++ subversion/libsvn_client/commit.c (working copy) @@ -588,7 +588,7 @@ svn_wc_adm_access_t *base_access, const char *log_msg, apr_array_header_t *commit_items, - svn_client_commit_info_t **commit_info, + svn_client_commit_info2_t **commit_info, svn_boolean_t is_commit, apr_hash_t *lock_tokens, svn_boolean_t keep_locks, @@ -633,7 +633,7 @@ /*** Public Interfaces. ***/ svn_error_t * -svn_client_import2 (svn_client_commit_info_t **commit_info, +svn_client_import2 (svn_client_commit_info2_t **commit_info, const char *path, const char *url, svn_boolean_t nonrecursive, @@ -770,9 +770,9 @@ /* Transfer *COMMIT_INFO from the subpool to the callers pool */ if (*commit_info) { - svn_client_commit_info_t *tmp_commit_info; + svn_client_commit_info2_t *tmp_commit_info; - tmp_commit_info = apr_palloc(pool, sizeof(*tmp_commit_info)); + tmp_commit_info = svn_client_create_commit_info(pool); *tmp_commit_info = **commit_info; if (tmp_commit_info->date) tmp_commit_info->date = apr_pstrdup (pool, tmp_commit_info->date); @@ -794,8 +794,10 @@ svn_client_ctx_t *ctx, apr_pool_t *pool) { - return svn_client_import2 (commit_info, path, url, nonrecursive, - FALSE, ctx, pool); + /* mem alloced inside function - simply typecast & pass-on */ + return svn_client_import2 ( (svn_client_commit_info2_t **)commit_info, + path, url, nonrecursive, + FALSE, ctx, pool); } static svn_error_t * @@ -1176,7 +1178,7 @@ } svn_error_t * -svn_client_commit2 (svn_client_commit_info_t **commit_info, +svn_client_commit3 (svn_client_commit_info2_t **commit_info, const apr_array_header_t *targets, svn_boolean_t recurse, svn_boolean_t keep_locks, @@ -1635,6 +1637,23 @@ } svn_error_t * +svn_client_commit2 (svn_client_commit_info_t **commit_info, + const apr_array_header_t *targets, + svn_boolean_t recurse, + svn_boolean_t keep_locks, + svn_client_ctx_t *ctx, + apr_pool_t *pool) +{ + /* mem alloced inside function - simply typecast & pass-on */ + return svn_client_commit3 ( (svn_client_commit_info2_t **)commit_info, + targets, + recurse, + keep_locks, + ctx, + pool); +} + +svn_error_t * svn_client_commit (svn_client_commit_info_t **commit_info, const apr_array_header_t *targets, svn_boolean_t nonrecursive, Index: subversion/clients/cmdline/cl.h =================================================================== --- subversion/clients/cmdline/cl.h (revision 15659) +++ subversion/clients/cmdline/cl.h (working copy) @@ -226,7 +226,7 @@ /* Print out commit information found in COMMIT_INFO to the console. * POOL is used for temporay allocations. */ -svn_error_t *svn_cl__print_commit_info (svn_client_commit_info_t *commit_info, +svn_error_t *svn_cl__print_commit_info (svn_client_commit_info2_t *commit_info, apr_pool_t *pool); Index: subversion/clients/cmdline/move-cmd.c =================================================================== --- subversion/clients/cmdline/move-cmd.c (revision 15659) +++ subversion/clients/cmdline/move-cmd.c (working copy) @@ -42,7 +42,7 @@ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx; apr_array_header_t *targets; const char *src_path, *dst_path; - svn_client_commit_info_t *commit_info = NULL; + svn_client_commit_info2_t *commit_info = NULL; svn_error_t *err; SVN_ERR (svn_opt_args_to_target_array2 (&targets, os, @@ -69,7 +69,7 @@ _("Cannot specify revisions (except HEAD) with move operations")); } - err = svn_client_move2 (&commit_info, src_path, dst_path, + err = svn_client_move3 (&commit_info, src_path, dst_path, opt_state->force, ctx, pool); if (err) Index: subversion/clients/cmdline/mkdir-cmd.c =================================================================== --- subversion/clients/cmdline/mkdir-cmd.c (revision 15659) +++ subversion/clients/cmdline/mkdir-cmd.c (working copy) @@ -43,7 +43,7 @@ svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx; apr_array_header_t *targets; apr_pool_t *subpool = svn_pool_create (pool); - svn_client_commit_info_t *commit_info = NULL; + svn_client_commit_info2_t *commit_info = NULL; svn_error_t *err; SVN_ERR (svn_opt_args_to_target_array2 (&targets, os, @@ -72,7 +72,7 @@ NULL, ctx->config, subpool)); } - err = svn_client_mkdir (&commit_info, targets, ctx, subpool); + err = svn_client_mkdir2 (&commit_info, targets, ctx, subpool); if (ctx->log_msg_func) err = svn_cl__cleanup_log_msg (ctx->log_msg_baton, err); Index: subversion/clients/cmdline/copy-cmd.c =================================================================== --- subversion/clients/cmdline/copy-cmd.c (revision 15659) +++ subversion/clients/cmdline/copy-cmd.c (working copy) @@ -43,7 +43,7 @@ apr_array_header_t *targets; const char *src_path, *dst_path; svn_boolean_t src_is_url, dst_is_url; - svn_client_commit_info_t *commit_info = NULL; + svn_client_commit_info2_t *commit_info = NULL; svn_error_t *err; SVN_ERR (svn_opt_args_to_target_array2 (&targets, os, @@ -110,9 +110,9 @@ SVN_ERR (svn_cl__make_log_msg_baton (&(ctx->log_msg_baton), opt_state, NULL, ctx->config, pool)); - err = svn_client_copy (&commit_info, src_path, - &(opt_state->start_revision), - dst_path, ctx, pool); + err = svn_client_copy2 (&commit_info, src_path, + &(opt_state->start_revision), + dst_path, ctx, pool); if (ctx->log_msg_func) SVN_ERR (svn_cl__cleanup_log_msg (ctx->log_msg_baton, err)); Index: subversion/clients/cmdline/util.c =================================================================== --- subversion/clients/cmdline/util.c (revision 15659) +++ subversion/clients/cmdline/util.c (working copy) @@ -50,7 +50,7 @@ svn_error_t * -svn_cl__print_commit_info (svn_client_commit_info_t *commit_info, +svn_cl__print_commit_info (svn_client_commit_info2_t *commit_info, apr_pool_t *pool) { if ((commit_info) Index: subversion/clients/cmdline/commit-cmd.c =================================================================== --- subversion/clients/cmdline/commit-cmd.c (revision 15659) +++ subversion/clients/cmdline/commit-cmd.c (working copy) @@ -46,7 +46,7 @@ const char *base_dir; svn_config_t *cfg; svn_boolean_t no_unlock = FALSE; - svn_client_commit_info_t *commit_info = NULL; + svn_client_commit_info2_t *commit_info = NULL; SVN_ERR (svn_opt_args_to_target_array2 (&targets, os, opt_state->targets, pool)); @@ -92,7 +92,7 @@ /* Commit. */ SVN_ERR (svn_cl__cleanup_log_msg - (ctx->log_msg_baton, svn_client_commit2 (&commit_info, + (ctx->log_msg_baton, svn_client_commit3 (&commit_info, targets, opt_state->nonrecursive ? FALSE : TRUE, Index: subversion/clients/cmdline/delete-cmd.c =================================================================== --- subversion/clients/cmdline/delete-cmd.c (revision 15659) +++ subversion/clients/cmdline/delete-cmd.c (working copy) @@ -41,7 +41,7 @@ svn_cl__opt_state_t *opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state; svn_client_ctx_t *ctx = ((svn_cl__cmd_baton_t *) baton)->ctx; apr_array_header_t *targets; - svn_client_commit_info_t *commit_info = NULL; + svn_client_commit_info2_t *commit_info = NULL; svn_error_t *err; SVN_ERR (svn_opt_args_to_target_array2 (&targets, os, @@ -70,7 +70,7 @@ NULL, ctx->config, pool)); } - err = svn_client_delete (&commit_info, targets, opt_state->force, ctx, pool); + err = svn_client_delete2 (&commit_info, targets, opt_state->force, ctx, pool); if (err) err = svn_cl__may_need_force (err); Index: subversion/clients/cmdline/import-cmd.c =================================================================== --- subversion/clients/cmdline/import-cmd.c (revision 15659) +++ subversion/clients/cmdline/import-cmd.c (working copy) @@ -43,7 +43,7 @@ apr_array_header_t *targets; const char *path; const char *url; - svn_client_commit_info_t *commit_info = NULL; + svn_client_commit_info2_t *commit_info = NULL; /* Import takes two arguments, for example *