subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pbu...@apache.org
Subject svn commit: r937033 - /subversion/trunk/subversion/libsvn_repos/dump.c
Date Thu, 22 Apr 2010 19:40:07 GMT
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/dump.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));
     }
 
   svn_pool_destroy(subpool);



Mime
View raw message