Dear Wiki user,

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

The "SymmetricMerge" page has been changed by JulianFoad:
http://wiki.apache.org/subversion/SymmetricMerge?action=diff&rev1=80&rev2=81

  Next,  we need to account for cherry-picks.  If there are cherry-picks from  
the source [...], we look for the end of the first gap.  [TODO...]
  
  == Symmetric Merge with Criss-Cross Merge ==
+ The following kind of merge history is known as a 'criss-cross' merge.
+ 
+ {{attachment:merge-criss-cross-1.png|criss-cross merge 2}}
+ 
+ The scenario is notorious for being an awkward case for typical DAG-oriented 
merge algorithms to handle.  There are two possible bases, and neither of them 
is clearly the right one to use, and the choice may make a difference to the 
result in the general case.
+ 
+ I don't expect to be able to teach Subversion to resolve criss-cross merges 
automatically, and I don't think this is important.  I think it's on the same 
level as resolving cases where the user cherry-picked some changes from 
branches A and B into a third branch C all at once (in one commit) and then 
wants to automatically sync-merge from C into A.  In this case as in that case, 
Subversion should simply detect that there is no sequence of plain 3-way merges 
possible, and tell the user.
+ 
  === Criss-Cross #1: Minimal ===
- The following kind of merge history is known as a 'criss-cross' merge.
- 
- {{attachment:merge-criss-cross-1.png|criss-cross merge 2}}
- 
- The scenario is notorious for being an awkward case for typical DAG-oriented 
merge algorithms to handle.  There are two possible bases, and neither of them 
is clearly the right one to use, and the choice may make a difference to the 
result in the general case.
- 
- This is how Subversion will handle the simple criss-cross merge illustrated 
in the graph.
+ This is how Subversion will handle the simple criss-cross merge illustrated 
in the graph above.
  
- First we pick a base according to whatever rule we decided.  It could be A1 
or B1.
+ First we pick a base according to the rules we decided. (At the time of 
writing this section, I don't know exactly what those rules are.)  If the rules 
take into account the relative ages of A1, B1, A2 and B2, there might be a 
definite answer.  Otherwise there may be no reason to choose one over the 
other.  So, given only the information in the diagram, it could be A1 or B1 
with equal probability.  Let's see if the choice makes a difference.
  
  If we pick base A1:
  

Reply via email to