Dear Wiki user, You have subscribed to a wiki page or wiki category on "Subversion Wiki" for change notification.
The "SimpleAndSafeMerges" page has been changed by JulianFoad: http://wiki.apache.org/subversion/SimpleAndSafeMerges?action=diff&rev1=11&rev2=12 Comment: Move Terminology section to its own page == Pitfalls & Quick Fixes == The aim here is to list things that users might do in Subversion that are not Right — that is, things that will not lead to consistent and useful results in merging later on — that could be avoided by some high-level checks or by better informing the user. - Using branch naming terminology from the ‘Terminology’ section below. + Using branch naming terminology defined in BranchingMergingTerminology. * On a ''feature branch'', attempting to merge to ''parent'' without “--reintegrate” is wrong, (except perhaps for a cherry-pick, and that would be unusual). Catch this case. Possibly with hook script? Need awareness of what kind of branch ‘this’ is. @@ -116, +116 @@ Discussed in [[http://svn.haxx.se/dev/archive-2011-09/0201.shtml|this email thread]]. - == Terminology - A Typical Branching and Merging Policy == - A simple and useful branching policy. This is presented here just in order to give a framework of terminology for describing guidance measures for merging, not as a restriction on what is to be supported. Types of merge: - - * ''sync'' or ''catch-up'': a merge that pulls into the target branch all source-branch changes that we “don’t yet have” in the target branch. - - * ''cherry-pick'': a merge that pulls in one or more specified changes from the source branch. - - * ''reintegrate'': similar to a ''sync'' merge, but intended to be used in the other direction - - Assume a partial ordering among branches, such that any given branch has (0 or more) ''Feature Branches'' that are less stable than it, and ''Release Branches'' that are more stable than it, and it is considered the ''parent'' of each of those. A merge may be performed between a ''parent'' branch and one of its immediate ''Feature'' or ''Release'' branches, and nowhere else. - - * A merge to a ''Feature Branch'' from its ''parent'' is normally a ''catch-up''. - - * A merge from a ''Feature Branch'' to its ''parent'' is normally a ''reintegrate''. - - * A merge to a ''Release Branch'' from its ''parent'' is normally a ''cherry-pick''. - - * A merge from a ''Release Branch'' to its parent could be a ''catch-up'' or a ''cherry-pick''. (### Does a catch-up work properly if you’ve done cherry-picks in the other direction? Might not.) - - A merge to or from a ''Release Branch'' may be forbidden in one direction, according to local policy. -
