This is an old revision of the document!


Working with branches

If 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 branch

Create 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 branch

Replace <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 branch

Working 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 branch

You 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 conflicts

In 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 trunk

Merging 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 branch

When 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/
 
 
dev/branching.1220259146.txt.gz ยท Last modified: 2022/05/06 16:07 (external edit)
Recent changes RSS feed Creative Commons License Valid XHTML 1.0 Valid CSS Driven by DokuWiki