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

If 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 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.1220257350.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