2 * delete-cmd.c -- Delete/undelete commands
4 * ====================================================================
5 * Copyright (c) 2000-2004 CollabNet. All rights reserved.
7 * This software is licensed as described in the file COPYING, which
8 * you should have received as part of this distribution. The terms
9 * are also available at http://subversion.tigris.org/license-1.html.
10 * If newer versions of this license are posted there, you may use a
11 * newer version instead, at your option.
13 * This software consists of voluntary contributions made by many
14 * individuals. For exact contribution history, see the revision
15 * history and logs, available at http://subversion.tigris.org/.
16 * ====================================================================
19 /* ==================================================================== */
25 #include "svn_client.h"
26 #include "svn_error.h"
30 #include "svn_private_config.h"
35 /* This implements the `svn_opt_subcommand_t' interface. */
37 svn_cl__delete(apr_getopt_t
*os
,
41 svn_cl__opt_state_t
*opt_state
= ((svn_cl__cmd_baton_t
*) baton
)->opt_state
;
42 svn_client_ctx_t
*ctx
= ((svn_cl__cmd_baton_t
*) baton
)->ctx
;
43 apr_array_header_t
*targets
;
44 svn_commit_info_t
*commit_info
= NULL
;
47 SVN_ERR(svn_opt_args_to_target_array2(&targets
, os
,
48 opt_state
->targets
, pool
));
51 return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS
, 0, NULL
);
53 if (! opt_state
->quiet
)
54 svn_cl__get_notifier(&ctx
->notify_func2
, &ctx
->notify_baton2
, FALSE
,
57 if (! svn_path_is_url(APR_ARRAY_IDX(targets
, 0, const char *)))
59 ctx
->log_msg_func3
= NULL
;
60 if (opt_state
->message
|| opt_state
->filedata
|| opt_state
->revprop_table
)
62 return svn_error_create
63 (SVN_ERR_CL_UNNECESSARY_LOG_MESSAGE
, NULL
,
64 _("Local, non-commit operations do not take a log message "
65 "or revision properties"));
70 SVN_ERR(svn_cl__make_log_msg_baton(&(ctx
->log_msg_baton3
), opt_state
,
71 NULL
, ctx
->config
, pool
));
74 ctx
->revprop_table
= opt_state
->revprop_table
;
76 err
= svn_client_delete3(&commit_info
, targets
, opt_state
->force
,
77 opt_state
->keep_local
, ctx
, pool
);
79 err
= svn_cl__may_need_force(err
);
81 if (ctx
->log_msg_func3
)
82 SVN_ERR(svn_cl__cleanup_log_msg(ctx
->log_msg_baton3
, err
));
86 if (commit_info
&& ! opt_state
->quiet
)
87 SVN_ERR(svn_cl__print_commit_info(commit_info
, pool
));