> 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
Received on 2012-12-20 13:59:09 CET