> -----Original Message----- > From: pbu...@apache.org [mailto:pbu...@apache.org] > Sent: donderdag 22 april 2010 21:40 > To: comm...@subversion.apache.org > Subject: svn commit: r937033 - > /subversion/trunk/subversion/libsvn_repos/dump.c > > Author: pburba > Date: Thu Apr 22 19:40:07 2010 > New Revision: 937033 > > URL: http://svn.apache.org/viewvc?rev=937033&view=rev > Log: > Issue an end-of-dump summary warning to supplement any in-line > copy-source warnings so the latter don't get missed in a sea of output. > > See http://svn.haxx.se/dev/archive-2010-04/0475.shtml > > * subversion/libsvn_repos/dump.c > > (edit_baton): Add new member found_old_reference. > > (dump_node): Set new edit baton member if an old reference warning is > issued. > > (svn_repos_dump_fs3): Possibly issue new summary warning. > > 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/d > ump.c?rev=937033&r1=937032&r2=937033&view=diff > ========================================================== > ==================== > --- subversion/trunk/subversion/libsvn_repos/dump.c (original) > +++ subversion/trunk/subversion/libsvn_repos/dump.c Thu Apr 22 19:40:07 > 2010 > @@ -196,6 +196,10 @@ struct edit_baton > /* The first revision dumped in this dumpstream. */ > svn_revnum_t oldest_dumped_rev; > > + /* Set to true if any references to revisions older than > + OLDEST_DUMPED_REV were found in the dumpstream. */ > + svn_boolean_t found_old_reference; > + > /* reusable buffer for writing file contents */ > char buffer[SVN__STREAM_CHUNK_SIZE]; > apr_size_t bufsize; > @@ -428,7 +432,7 @@ dump_node(struct edit_baton *eb, > " into an empty repository\n" > "WARNING: will fail.\n"), > cmp_rev, eb->oldest_dumped_rev); > - > + eb->found_old_reference = TRUE; > SVN_ERR(eb->progress_func(eb->progress_baton, > eb->oldest_dumped_rev, warning, > pool)); > } > @@ -982,6 +986,7 @@ svn_repos_dump_fs3(svn_repos_t *repos, > svn_revnum_t youngest; > const char *uuid; > int version; > + svn_boolean_t found_old_reference = FALSE; > > /* Determine the current youngest revision of the filesystem. */ > SVN_ERR(svn_fs_youngest_rev(&youngest, fs, pool)); > @@ -1109,6 +1114,23 @@ svn_repos_dump_fs3(svn_repos_t *repos, > loop_end: > if (progress_func) > SVN_ERR(progress_func(progress_baton, to_rev, NULL, subpool)); > + > + if (((struct edit_baton *)dump_edit_baton)->found_old_reference) > + found_old_reference = TRUE; > + } > + > + /* Did we issue any warnings about references to revisions older than > + the oldest dumped revision? If so, then issue a final generic > + warning, since the inline warnings already issued might easily be > + missed. */ > + if (found_old_reference) > + { > + const char *warning = apr_psprintf( > + subpool, > + _("WARNING: The range of revisions dumped contained references > to\n" > + "WARNING: copy sources outside that range.\n")); > + SVN_ERR(progress_func(progress_baton, SVN_INVALID_REVNUM, > warning, > + subpool)); > }
This block needs a test for progress_func being NULL. (And doesn't need the apr_psprintf, but Greg already noticed that) Bert