On Fri, Apr 23, 2010 at 4:14 AM, Bert Huijben <b...@qqmail.nl> wrote: >> -----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)
Thanks gents, fixed both. Also tweaked svn_repos_dump_fs3's doc string to note that progress_func may be null. Paul