You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by pb...@apache.org on 2010/05/05 21:29:31 UTC

svn commit: r941438 - /subversion/trunk/subversion/libsvn_repos/load.c

Author: pburba
Date: Wed May  5 19:29:31 2010
New Revision: 941438

URL: http://svn.apache.org/viewvc?rev=941438&view=rev
Log:
A mergeinfo sanity check for svnadmin load: Stop r0 and r1 merge source revs.

* subversion/libsvn_repos/load.c

  (renumber_mergeinfo_revs): More issue #3020 work; just say no to invalid
   merge source revs.

Modified:
    subversion/trunk/subversion/libsvn_repos/load.c

Modified: subversion/trunk/subversion/libsvn_repos/load.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_repos/load.c?rev=941438&r1=941437&r2=941438&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_repos/load.c (original)
+++ subversion/trunk/subversion/libsvn_repos/load.c Wed May  5 19:29:31 2010
@@ -316,8 +316,17 @@ renumber_mergeinfo_revs(svn_string_t **f
       apr_hash_set(final_mergeinfo, merge_source,
                    APR_HASH_KEY_STRING, rangelist);
     }
-
   SVN_ERR(svn_mergeinfo_sort(final_mergeinfo, subpool));
+
+  /* Mergeinfo revision sources for r0 and r1 are invalid; you can't merge r0
+     or r1.  However, svndumpfilter can be abused to produce r1 merge source
+     revs.  So if we encounter any, then strip them out, no need to put them
+     into the load target. */
+  SVN_ERR(svn_mergeinfo__filter_mergeinfo_by_ranges(&final_mergeinfo,
+                                                    final_mergeinfo,
+                                                    1, 0, FALSE,
+                                                    subpool, subpool));
+
   SVN_ERR(svn_mergeinfo_to_string(final_val, final_mergeinfo, pool));
   svn_pool_destroy(subpool);