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 branchYou may check the Last Changed revision of the branch with command svn info Let us suppose that the last changed svn version was 8114. Then you would like to merge all changes since svn version 8115. You may do it with command 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/ |