On Fri, Apr 23, 2010 at 4:14 AM, Bert Huijben <bert_at_qqmail.nl> wrote:
>> -----Original Message-----
>> From: pburba_at_apache.org [mailto:pburba_at_apache.org]
>> Sent: donderdag 22 april 2010 21:40
>> To: commits_at_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
Received on 2010-04-23 15:47:08 CEST