Author: rhuijben
Date: Thu Dec 20 17:34:01 2012
New Revision: 1424601
URL: http://svn.apache.org/viewvc?rev=1424601&view=rev
Log:
* subversion/libsvn_client/merge.c
(find_gaps_in_merge_source_history): Commit some research on issue #4132.
Modified:
subversion/trunk/subversion/libsvn_client/merge.c
Modified: subversion/trunk/subversion/libsvn_client/merge.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/merge.c?rev=1424601&r1=1424600&r2=1424601&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Thu Dec 20 17:34:01 2012
@@ -4429,13 +4429,24 @@ find_gaps_in_merge_source_history(svn_re
if (rangelist->nelts > 1) /* Copy */
{
+ const svn_merge_range_t *gap;
/* As mentioned above, multiple gaps *shouldn't* be possible. */
SVN_ERR_ASSERT(apr_hash_count(implicit_src_mergeinfo) == 1);
+ gap = APR_ARRAY_IDX(rangelist, rangelist->nelts - 1,
+ const svn_merge_range_t *);
+
*gap_start = MIN(source->loc1->rev, source->loc2->rev);
- *gap_end = (APR_ARRAY_IDX(rangelist,
- rangelist->nelts - 1,
- svn_merge_range_t *))->start;
+ *gap_end = gap->start;
+
+ /* ### Issue #4132:
+ ### This assertion triggers in merge_tests.py svnmucc_abuse_1()
+ ### when a node is replaced by an older copy of itself.
+
+ BH: I think we should review this and the 'rename' case to find
+ out which behavior we really want, and if we can really
+ determine what happened this way. */
+ SVN_ERR_ASSERT(*gap_start < *gap_end);
}
else if (apr_hash_count(implicit_src_mergeinfo) > 1) /* Rename */
{