> Index: subversion/libsvn_repos/dump.c
> ===================================================================
> --- subversion/libsvn_repos/dump.c    (revision 1420101)
> +++ subversion/libsvn_repos/dump.c    (working copy)
> @@ -1413,19 +1452,31 @@
>        void *cancel_edit_baton;
>        svn_fs_root_t *to_root;
>        apr_hash_t *props;
> +      svn_error_t *err;

Pretty sure you'll get a -Wshadow compiler warning here.  You should
ensure patches don't add compiler warnings.

> @@ -1433,9 +1484,20 @@
>                                                  iterpool));
>  
>        SVN_ERR(svn_fs_revision_root(&to_root, fs, rev, iterpool));
> -      SVN_ERR(svn_repos_replay2(to_root, "", SVN_INVALID_REVNUM, FALSE,
> -                                cancel_editor, cancel_edit_baton,
> -                                NULL, NULL, iterpool));
> +      err = svn_repos_replay2(to_root, "", SVN_INVALID_REVNUM, FALSE,
> +                              cancel_editor, cancel_edit_baton,
> +                              NULL, NULL, iterpool);
> +
> +      if (err && keep_going)
> +        {
> +          notify_verification_error(rev, err, notify_func, notify_baton,
> +                                    iterpool);
> +          svn_error_clear(err);

Hmm.  What if this is a malfunction error?  (Compare get_shared_rep() in
fs_fs.c)

Maybe we should introduce:

#define svn_error_clear2(err) \
  do { \
    svn_error_t *__svn_error = (err); \
    if (__svn_error && SVN_ERROR_IN_CATEGORY(__svn_error->apr_err, \
                                             SVN_ERR_MALFUNC_CATEGORY_START)) \
      return svn_error_trace (__svn_error); \
    else \
      svn_error_clear(err); \
  }

(this is orthogonal to your patch)

> +++ subversion/tests/cmdline/svnadmin_tests.py        (working copy)
> @@ -1835,6 +1835,107 @@
>    svntest.main.run_svnadmin("recover", sbox.repo_dir)
>  
>  
> +def verify_keep_going(sbox):
> +  "svnadmin verify --keep-going test"
> +  test_create(sbox)
> +  dumpfile_skeleton = open(os.path.join(os.path.dirname(sys.argv[0]),
> +                                                        
> 'svnadmin_tests_data',
> +                                                        
> 'skeleton_repos.dump')).read()

Wrap to 80 columns

> 

Thanks.

Daniel

Reply via email to