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);