You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2011/07/16 13:52:12 UTC
svn commit: r1147408 - in /subversion/branches/1.7.x: ./ STATUS
subversion/libsvn_client/merge.c
Author: hwright
Date: Sat Jul 16 11:52:11 2011
New Revision: 1147408
URL: http://svn.apache.org/viewvc?rev=1147408&view=rev
Log:
Merge r1146781 from trunk:
* r1146781
Fix a bug in subtree merging. See email thread by Barry Scott, 2011-07-02,
"Assert in svn-1.7-alpha2 svn_client_merge3",
<http://svn.haxx.se/dev/archive-2011-07/0052.shtml>.
Justification:
Notes:
Not applicable to 1.6.x.
Votes:
+1: julianfoad, rhuijben, philip
Modified:
subversion/branches/1.7.x/ (props changed)
subversion/branches/1.7.x/STATUS
subversion/branches/1.7.x/subversion/libsvn_client/merge.c
Propchange: subversion/branches/1.7.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Jul 16 11:52:11 2011
@@ -53,4 +53,4 @@
/subversion/branches/tree-conflicts:868291-873154
/subversion/branches/tree-conflicts-notify:873926-874008
/subversion/branches/uris-as-urls:1060426-1064427
-/subversion/trunk:1146013,1146219,1146222,1146274,1146492,1146555,1146620,1146684,1146832,1146834,1146899,1146904
+/subversion/trunk:1146013,1146219,1146222,1146274,1146492,1146555,1146620,1146684,1146781,1146832,1146834,1146899,1146904
Modified: subversion/branches/1.7.x/STATUS
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1147408&r1=1147407&r2=1147408&view=diff
==============================================================================
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Sat Jul 16 11:52:11 2011
@@ -45,16 +45,6 @@ Candidate changes:
Approved changes:
=================
- * r1146781
- Fix a bug in subtree merging. See email thread by Barry Scott, 2011-07-02,
- "Assert in svn-1.7-alpha2 svn_client_merge3",
- <http://svn.haxx.se/dev/archive-2011-07/0052.shtml>.
- Justification:
- Notes:
- Not applicable to 1.6.x.
- Votes:
- +1: julianfoad, rhuijben, philip
-
* r1147293, r1147309
Fix issue #3960 'URL-to-WC copy with --quiet segfaults'.
Justification:
Modified: subversion/branches/1.7.x/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x/subversion/libsvn_client/merge.c?rev=1147408&r1=1147407&r2=1147408&view=diff
==============================================================================
--- subversion/branches/1.7.x/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/1.7.x/subversion/libsvn_client/merge.c Sat Jul 16 11:52:11 2011
@@ -2903,21 +2903,34 @@ adjust_deleted_subtree_ranges(svn_client
scratch_pool));
}
- /* Create a rangelist describing the range PRIMARY_URL@older_rev
- exists and find the intersection of that and
- CHILD->REMAINING_RANGES. */
- exists_rangelist =
- svn_rangelist__initialize(older_rev,
- revision_primary_url_deleted - 1,
- TRUE, scratch_pool);
- SVN_ERR(svn_rangelist_intersect(&(child->remaining_ranges),
- exists_rangelist,
- child->remaining_ranges,
- FALSE, scratch_pool));
+ /* Find the intersection of CHILD->REMAINING_RANGES with the
+ range over which PRIMARY_URL@older_rev exists (ending at
+ the youngest revision at which it still exists). */
+ if (revision_primary_url_deleted - 1 > older_rev)
+ {
+ /* It was not deleted immediately after OLDER_REV, so
+ it has some relevant changes. */
+ exists_rangelist =
+ svn_rangelist__initialize(older_rev,
+ revision_primary_url_deleted - 1,
+ TRUE, scratch_pool);
+ SVN_ERR(svn_rangelist_intersect(&(child->remaining_ranges),
+ exists_rangelist,
+ child->remaining_ranges,
+ FALSE, scratch_pool));
+ }
+ else
+ {
+ /* It was deleted immediately after the OLDER rev, so
+ it has no relevant changes. */
+ child->remaining_ranges
+ = apr_array_make(scratch_pool, 0,
+ sizeof(svn_merge_range_t *));
+ }
- /* Create a second rangelist describing the range beginning when
- PRIMARY_URL@older_rev was deleted until younger_rev. Then
- find the intersection of that and PARENT->REMAINING_RANGES.
+ /* Find the intersection of PARENT->REMAINING_RANGES with the
+ range beginning when PRIMARY_URL@older_rev was deleted
+ until younger_rev.
Finally merge this rangelist with the rangelist above and
store the result in CHILD->REMANING_RANGES. */
deleted_rangelist =