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
 
 
 ########################################################################


Reply via email to