Blog Entry

SVN branching overview

In Subversion v.1.5.
Create branch.

$ svn copy https://server.com/abjad/trunk \
   https://server.com/abjad/branches/mybranch \
   -m "Creating mybranch."
Check out the branch.
$ svn co https://server.com/abjad/branches/mybranch
Keep in sync with trunk and make sure branch is clean.
$ pwd
/path/to/mybranch
$ svn status
(nothing to commit)
$ svn merge http://server.com/abjad/trunk
[in Subversion 1.6 you can also do: $ svn merge ^/trunk]
$ svn status
(modifications shown due to merging)
$ svn commit -m "Merged latest trunk changes to mybranch."
Work on branch: make changes and commits. When branch is done, do a final commit...
   
(more modifications to branch...)
$ svn commit -m "Final merge of trunk changes to mybranch."
...and merge branch to trunk. Go to trunk.
$ pwd
/path/to/trunk
Make sure we are clean.
$ svn update
(At revision XXX)
Merge.
$ svn merge --reintegrate http://server.com/abjad/branches/mybranch
[In Subversion 1.6: $ svn merge --reintegrate ^/branches/mybranch]
Test and verify that the merge works (run tests). Do final commit.
$ svn commit -m "Merged mybranch into the trunk"
Remove branch.
$ svn delete http://server.com/abjad/branches/mybranch -m "Removed mybranch."

Posted on:
2009.08.03 -0500

Tags:
code