The RichFaces project follows the coding guidelines outlined in <link> and part of that process is using development branches for any change to the project trunk that is more than a minor, well understood bug fix or update.
Introduction
This document will walk though an example of using svnmerge.py tool to help manage your development branches. In this example we are going to be working on an update that is represented by the jira RF-0001. It does not matter what the update is for. This example does assume you have svnmerge.py available at the command line.
For complete instructions on using svnmerge.py see: http://www.orcaware.com/svn/wiki/Svnmerge.py . If JBoss SVN server version updates 1.5+, we'll be able to just using SVN's tools for merging, but for now svnmerge.py is doing the job
Create The Development Branch
svn copy https://svn.jboss.org/repos/richfaces/trunk/ https://svn.jboss.org/repos/richfaces/branches/RF-0001 -m "RF-0001 creation of dev branch"
Checkout The Development Branch
svn co https://svn.jboss.org/repos/richfaces/branches/RF-0001 RF-0001
Initialize Your Branch
svnmerge.py init
svn ci -F svnmerge-commit-message.txt rm svnmerge-commit-message.txt
Do You Development Stuff
Use whatever IDE/Tool system etc... you want at this point and make what ever changes are needed in the new development branch.
Merge Out From Trunk
svnmerge.py merge
svn ci -F svnmerge-commit-message.txt rm svnmerge-commit-message.txt
Merge Back To Trunk
- First create a clean checkout of trunk
- This is recommended, but not always needed
- Just make sure your trunk has no location changes, and run "svn update ." first
Now in your trunk run the following commend
svnmerge.py init https://svn.jboss.org/repos/richfaces/branches/RF-0001
svn ci -F svnmerge-commit-message.txt rm svnmerge-commit-message.txt
svnmerge.py merge --bidirectional
svnmerge.py merge --bidirectional -S /RF-0001
svn ci -F svnmerge-commit-message.txt rm svnmerge-commit-message.txt
Cleaning Up Your Branch
svnmerge.py uninit -S RF-0001 svn ci -F svnmerge-commit-message.txt rm svnmerge-commit-message.txt
svn rm https://svn.jboss.org/repos/richfaces/branches/RF-0001 -m "RF-0001 development branch now closed"
And you done, time for the next one, or a beer ;-)
Comments