Author: stefan2
Date: Tue Jan 21 01:15:14 2014
New Revision: 1559872

URL: http://svn.apache.org/r1559872
Log:
In 'svnadmin verify --keep-going', don't treat a user-cancellation
as a normal error that could be ignored.

* subversion/libsvn_repos/dump.c
  (svn_repos_verify_fs3): Leave if the error is actually a cancel request.
                          Also, report errors found during the metadata
                          verification phase.

Modified:
    subversion/trunk/subversion/libsvn_repos/dump.c

Modified: subversion/trunk/subversion/libsvn_repos/dump.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_repos/dump.c?rev=1559872&r1=1559871&r2=1559872&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_repos/dump.c (original)
+++ subversion/trunk/subversion/libsvn_repos/dump.c Tue Jan 21 01:15:14 2014
@@ -2209,23 +2209,22 @@ svn_repos_verify_fs3(svn_repos_t *repos,
                       verify_notify, verify_notify_baton,
                       cancel_func, cancel_baton, pool);
 
-  if (err && !keep_going)
+  if (err)
     {
+      if (err->apr_err == SVN_ERR_CANCELLED)
+        return svn_error_trace(err);
+
       found_corruption = TRUE;
       notify_verification_error(SVN_INVALID_REVNUM, err, notify_func,
                                 notify_baton, iterpool);
       svn_error_clear(err);
-      return svn_error_createf(SVN_ERR_REPOS_CORRUPTED, NULL,
-                               _("Repository '%s' failed to verify"),
-                               svn_dirent_local_style(svn_repos_path(repos,
-                                                                     pool),
-                                                      pool));
-    }
-  else
-    {
-      if (err)
-        found_corruption = TRUE;
-      svn_error_clear(err);
+
+      if (!keep_going)
+        return svn_error_createf(SVN_ERR_REPOS_CORRUPTED, NULL,
+                                _("Repository '%s' failed to verify"),
+                                svn_dirent_local_style(svn_repos_path(repos,
+                                                                      pool),
+                                                        pool));
     }
 
   for (rev = start_rev; rev <= end_rev; rev++)
@@ -2240,6 +2239,9 @@ svn_repos_verify_fs3(svn_repos_t *repos,
 
       if (err)
         {
+          if (err->apr_err == SVN_ERR_CANCELLED)
+            return svn_error_trace(err);
+
           found_corruption = TRUE;
           notify_verification_error(rev, err, notify_func, notify_baton,
                                     iterpool);


Reply via email to