subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache subversion Wiki <>
Subject [Subversion Wiki] Update of "SvnMergeTheory" by JulianFoad
Date Tue, 31 Jan 2012 15:12:07 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Subversion Wiki" for change notification.

The "SvnMergeTheory" page has been changed by JulianFoad:

  == 3-way merge ==
  Subversion currently performs any requested merge as a sequence of 3-way merges.  For simple
''sync'' and ''reintegrate'' merges, that's exactly what's needed.  Usually there is just
one 3-way merge, but if cherry-picks are being skipped then Subversion breaks down the merge
source range into sub-ranges and performs one 3-way merge per sub-range.
- For a ''cherry-pick'' merge, a 3-way merge is not quite right, and a [[|4-way
merge]] would be more correct.
+ For a ''cherry-pick'' merge, a 3-way merge is not quite right:
+ {{attachment:merge-cherry-3way.png|Cherry-Pick as 3-way Merge}}
+ ... which tries to merge the change from ''old'' to ''theirs'' (so far, so good) with the
change from ''old'' to ''mine''.  The trouble is that the latter diff includes not only changes
that were made deliberately in B, such as B3, but also the ''reverse'' of some changes that
were made earlier in A, such as (minus)A2 and (minus)A1.  In simple cases that's fine, but
we could do better.  [TODO: Describe what goes wrong with it. Is it more chance of conflicts?]
+ A [[|4-way
merge]] would be more correct:
- {{attachment:merge-cherry-1.png|Cherry-Pick as 4-way Merge}}
+ {{attachment:merge-cherry-4way.png|Cherry-Pick as 4-way Merge}}
  == Drawing Merge Graphs ==
  The graphs in this page are constructed with the program [[|]]
from configuration files such as [[attachment:merge-reint-1.txt]].

View raw message