Merging commits from trunk to fixes branchPage edited by Bilgin IbryamChanges (1)
Full ContentThe Camel 2.x branches are here: What should be mergedThe idea is to be able to apply bug fixes and backwards compatible improvements and new features to our Camel maintenance branches (for example 2.10.x and 2.9.x) while leaving NONE backwards compatible changes on the trunk. The idea is to give our users the best experience possible on any supported branch as long we have 100% backward compatibility on patch versions. What should be considered as NOT backwards compatible
Changes which SHOULD apply to maintenance branches
Changes which MUST NOT be applied to maintenance branches
Changes which MAY be applied to maintenance branchesFor all the changes in this category we have to be especially carefully to not break backwards compatibly. Again, the goal is to be 100% backward compatibility on patch versions. Take extra time to review and test your change. Even better, send a [HEADS UP] on the dev@ mailing list and ask for assistance/review.
Who should do the mergeIt is preferred that the committer who applied the change to trunk also merge it back to the maintenance branches. He knows best whether this fix should go into the maintenance branche(s) or not and he can also make sure the WIKI pages are up to date. However, other people may also merge fixes back if they require it there. In that case, those people should pay extra attention to make sure the changes meet the above criteria. How to mergeUsing svnmerge.py scriptI've set up svnmerge.py to track commits from the trunk to the 2.x branches. Example workflow: 1. You just committed a fix to the trunk in revision 123456 and think that it would be back ported to Camel 2.8.x users 2. Check out the branch
svn co https://svn.apache.org/repos/asf/camel/branches/camel-2.8.x camel-2.8.x
there is a DoMerges.java file in there that you can compile and run from a fixes branch checkout. It lists all the outstanding commits that haven't been reviewed, allows you to merge commits individually, block commits, show the diffs, etc. To run the file do, from the directory with the branch. java DoMerges You need svnmerge.py to be runnable from the command line. There is a compiled .class of the DoMerges attached to this wiki page you can download. However its easy to compile javac DoMerges.java Using gitIf you already use git-svn, you could consider using the great git merge capabilities. Create a local branch from the remote tracking branch (e.g. camel-2.8.x) git checkout -b camel-2.8.x remotes/camel-2.8.x or switch into the existing branch git checkout camel-2.8.x To merge one revision (e.g. 1176050) into this branch, run git cherry-pick 1176050 This will merge and commit the changes into your local git repository.
Run git svn dcommit to push your local changes into the Apache SVN repository. If you have a JIRA associated with this fix, make sure it says fix for 2.8.x.
Change Notification Preferences
View Online
|
View Changes
|
Add Comment
|
