Author: breser
Date: Thu Dec 5 19:55:26 2013
New Revision: 1548257
URL: http://svn.apache.org/r1548257
Log:
Add -v and -q options to mergeinfo for use with --log.
* subversion/svn/svn.c
(svn_cl__cmd_table): Allow -q and -v to be used with mergeinfo.
* subversion/svn/mergeinfo-cmd.c
(svn_cl__mergeinfo): Prevent -q and -v from being used without --log and
pass their state to mergeinfo_log().
(mergeinfo_log): Where the rubber meets the road, do what's needed to
make -q and -v work.
* subversion/tests/cmdline/log_tests.py
(mergeinfo_log): Add tests for -q and -v.
Modified:
subversion/trunk/subversion/svn/mergeinfo-cmd.c
subversion/trunk/subversion/svn/svn.c
subversion/trunk/subversion/tests/cmdline/log_tests.py
Modified: subversion/trunk/subversion/svn/mergeinfo-cmd.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/mergeinfo-cmd.c?rev=1548257&r1=1548256&r2=1548257&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/mergeinfo-cmd.c (original)
+++ subversion/trunk/subversion/svn/mergeinfo-cmd.c Thu Dec 5 19:55:26 2013
@@ -271,6 +271,8 @@ mergeinfo_log(svn_boolean_t finding_merg
const svn_opt_revision_t *src_end_revision,
svn_depth_t depth,
svn_boolean_t include_log_details,
+ svn_boolean_t quiet,
+ svn_boolean_t verbose,
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
@@ -285,15 +287,19 @@ mergeinfo_log(svn_boolean_t finding_merg
revprops = apr_array_make(pool, 3, sizeof(const char *));
APR_ARRAY_PUSH(revprops, const char *) = SVN_PROP_REVISION_AUTHOR;
APR_ARRAY_PUSH(revprops, const char *) = SVN_PROP_REVISION_DATE;
- APR_ARRAY_PUSH(revprops, const char *) = SVN_PROP_REVISION_LOG;
+ if (!quiet)
+ APR_ARRAY_PUSH(revprops, const char *) = SVN_PROP_REVISION_LOG;
- log_receiver = print_log_details;
+ if (verbose)
+ log_receiver = svn_cl__log_entry_receiver;
+ else
+ log_receiver = print_log_details;
baton = apr_palloc(pool, sizeof(svn_cl__log_receiver_baton));
baton->ctx = ctx;
baton->target_path_or_url = target;
baton->target_peg_revision = *tgt_peg_revision;
- baton->omit_log_message = FALSE;
+ baton->omit_log_message = quiet;
baton->show_diff = FALSE;
baton->depth = depth;
baton->diff_extensions = NULL;
@@ -390,6 +396,19 @@ svn_cl__mergeinfo(apr_getopt_t *os,
else
src_end_revision = &(opt_state->end_revision);
+ if (!opt_state->mergeinfo_log)
+ {
+ if (opt_state->quiet)
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("--quiet (-q) option valid only with --log "
+ "option"));
+
+ if (opt_state->verbose)
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("--verbose (-v) option valid only with "
+ "--log option"));
+ }
+
/* Do the real work, depending on the requested data flavor. */
if (opt_state->show_revs == svn_cl__show_revs_merged)
{
@@ -398,6 +417,7 @@ svn_cl__mergeinfo(apr_getopt_t *os,
src_start_revision,
src_end_revision,
depth, opt_state->mergeinfo_log,
+ opt_state->quiet, opt_state->verbose,
ctx, pool));
}
else if (opt_state->show_revs == svn_cl__show_revs_eligible)
@@ -407,6 +427,7 @@ svn_cl__mergeinfo(apr_getopt_t *os,
src_start_revision,
src_end_revision,
depth, opt_state->mergeinfo_log,
+ opt_state->quiet, opt_state->verbose,
ctx, pool));
}
else
Modified: subversion/trunk/subversion/svn/svn.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/svn.c?rev=1548257&r1=1548256&r2=1548257&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/svn.c (original)
+++ subversion/trunk/subversion/svn/svn.c Thu Dec 5 19:55:26 2013
@@ -1142,7 +1142,7 @@ const svn_opt_subcommand_desc2_t svn_cl_
" and the default for TARGET is HEAD for a URL or BASE for a WC path.\n"
"\n"
" The depth can be 'empty' or 'infinity'; the default is 'empty'.\n"),
- {'r', 'R', opt_depth, opt_show_revs, opt_mergeinfo_log} },
+ {'r', 'R', 'q', 'v', opt_depth, opt_show_revs, opt_mergeinfo_log } },
{ "mkdir", svn_cl__mkdir, {0}, N_
("Create a new directory under version control.\n"
Modified: subversion/trunk/subversion/tests/cmdline/log_tests.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/log_tests.py?rev=1548257&r1=1548256&r2=1548257&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/log_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/log_tests.py Thu Dec 5 19:55:26
2013
@@ -2581,6 +2581,22 @@ def mergeinfo_log(sbox):
sbox.ospath('A2'))
check_log_chain(parse_log_output(output), [3])
+ # test --log -v
+ exit_code, output, err = svntest.actions.run_and_verify_svn(None,
+ None, [],
+ 'mergeinfo', '--show-revs=merged',
+ '--log', '-v', sbox.repo_url + '/A',
+ sbox.ospath('A2'))
+ check_log_chain(parse_log_output(output), [3], [1])
+
+ # test --log -q
+ svntest.actions.run_and_verify_svn(None,
+ None, [],
+ 'mergeinfo', '--show-revs=merged',
+ '--log', '-q', sbox.repo_url + '/A',
+ sbox.ospath('A2'))
+ # TODO: Validate the output, the check_log_chain() function assumes it
+ # gets the output of the message
########################################################################