[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Possible incompatibility of svn_repos_verify_fs2() in 1.9.0-rc1

From: Branko Čibej <brane_at_wandisco.com>
Date: Thu, 11 Jun 2015 15:54:34 +0200

On 11.06.2015 15:29, Branko Čibej wrote:
> I think we're at the point where we're trying to polish the UI. It is
> rather late in the day for that. The minor tweak required in svnadmin to
> emit errors in --quiet mode can be pushed into RC3

Perhaps something along the lines of the patch below. Note that this
patch makes subcommand_verify behave differently wrt --quiet than all
the other commends; on the other hand, this is the only command that
accepts a --keep-going flag, so I guess that's fine.

-- Brane

Index: subversion/svnadmin/svnadmin.c
===================================================================
--- subversion/svnadmin/svnadmin.c (revision 1684887)
+++ subversion/svnadmin/svnadmin.c (working copy)
@@ -868,6 +868,9 @@ struct repos_notify_handler_baton {
   /* Stream to write progress and other non-error output to. */
   svn_stream_t *feedback_stream;
 
+ /* Suppress notifications that are neither errors nor warnings. */
+ svn_boolean_t silent_running;
+
   /* Whether errors contained in notifications should be printed along
      with the notification. If FALSE, any errors will only be
      summarized. */
@@ -891,6 +894,14 @@ repos_notify_handler(void *baton,
   struct repos_notify_handler_baton *b = baton;
   svn_stream_t *feedback_stream = b->feedback_stream;
 
+ /* Don't print anything if the feedback stream isn't provided.
+ Only print errors and warnings in silent mode. */
+ if (!feedback_stream
+ || (b->silent_running
+ && notify->action != svn_repos_notify_warning
+ && notify->action != svn_repos_notify_failure))
+ return;
+
   switch (notify->action)
   {
     case svn_repos_notify_warning:
@@ -1838,9 +1849,11 @@ subcommand_verify(apr_getopt_t *os, void *baton, a
       upper = lower;
     }
 
- if (! opt_state->quiet)
- notify_baton.feedback_stream = recode_stream_create(stdout, pool);
+ notify_baton.feedback_stream = recode_stream_create(stdout, pool);
 
+ if (opt_state->quiet)
+ notify_baton.silent_running = TRUE;
+
   if (opt_state->keep_going)
     notify_baton.error_summary =
       apr_array_make(pool, 0, sizeof(struct verification_error *));
@@ -1853,10 +1866,8 @@ subcommand_verify(apr_getopt_t *os, void *baton, a
                                     opt_state->keep_going,
                                     opt_state->check_normalization,
                                     opt_state->metadata_only,
- !opt_state->quiet
- ? repos_notify_handler : NULL,
- &notify_baton, check_cancel,
- NULL, pool);
+ repos_notify_handler, &notify_baton,
+ check_cancel, NULL, pool);
 
   /* Show the --keep-going error summary. */
   if (opt_state->keep_going && notify_baton.error_summary->nelts > 0)
Received on 2015-06-11 15:55:11 CEST

This is an archived mail posted to the Subversion Dev mailing list.