This is an old revision of the document! Table of ContentsWorking with branchesIf you would like to play in developing something new, which may potentially break the software, create a new branch to play with. 1 Creating a new branchCreate a new branch by copying the trunk. For example, for a branch called my_branch, do the following (as a single one-line command): svn copy https://<user>@rosegarden.svn.sourceforge.net/svnroot/rosegarden/trunk/rosegarden \ https://<user>@rosegarden.svn.sourceforge.net/svnroot/rosegarden/branches/my_branch You can see what branches already exist (so as to get ideas for a new name, perhaps) using svn ls https://<user>@rosegarden.svn.sourceforge.net/svnroot/rosegarden/branches/ 2 Checking out a branchReplace <user> with your sforge username and lilypond_everywhere with the branch you are working. svn co my_branch The full command to checkout my_branch using username is svn checkout https://username@rosegarden.svn.sourceforge.net/svnroot/rosegarden/branches/my_branch my_branch 3 Committing changes to the branchWorking with branches is as easy as working with the trunk. Commit the changes from the root directory of the branch. cd my_branch svn commit -m "Text which describes the updates." 4 Merging changes from trunk to the branchIf you would like to merge changes since svn version 8115, do svn merge -r 8115:HEAD https://rosegarden.svn.sourceforge.net/svnroot/rosegarden/trunk/rosegarden If there are no conflicts, you may continue by committing the changes to the branch. svn commit -m "merge from trunk" Note that such a committing does not work if you had conflicts, therefore, resolve conflicts before committing changes. 5 Resolving conflictsIn the case of a conflict, there will be 'C' in the place of the file which contained conflicts. C foo.c Such a file will be splitted to several parts. foo.c foo.c.r8115 foo.c.r8119 foo.c.working After you have resolved conflicts, remove the extra files and commit the changes. rm foo.c.* svn commit -m "merge from trunk" 6 Merging changes from a branch to trunkMerging from branch to trunk is similar to merging trunk to branch, see 4 Merging changes from trunk to the branch. However, when committing the merge from the branch, make a verbose changelog on the changes. 7 Closing a branchWhen a branch is finished with, we usually either delete it if it was very short-lived and uninteresting, svn rm https://<user>@rosegarden.svn.sourceforge.net/svnroot/rosegarden/branches/uninteresting or else move it to the branches/obsolete directory on the Subversion server. If in doubt, do the latter: svn mv https://<user>@rosegarden.svn.sourceforge.net/svnroot/rosegarden/branches/my_branch \ https://<user>@rosegarden.svn.sourceforge.net/svnroot/rosegarden/branches/obsolete/ |