Introduction
At some point you want to leave the current branch (often called 'Trunk') stable and you want to create new functionality in a new separate branch. As soon as this new functionality is tested and ok you want to merge it back to your current (stable) branch.
Steps
To achieve this you have create a new branch. To be able to do this make sure you registered all changes. If you have done that you should go to 'File' > 'Home'. Click on 'Version management'.
Select the correct repository on the bottom and the correct project on top of the left bar. In the ribbon some options appear. One of them are 'New branch'.
You can enter the following fields:
- Branch Type
- Name
- Functional name
- Description
Only 'Name' is required, so enter the name of the branch. At the top left the new branch is shown.
If there were some unregistered changes in the master branch (Trunk), they will not be available in the new feature branch. Only registered changes are processed to the new branch.
If you open the history of the newly created branch (File > History) you will not see anything that has to do with the newly created branch. This is due to the fact that there are still no changes in the newly created branch. As soon as new changes are registered, you will find an entry in the history log. This entry clearly shows that the change was made in this branch (in the Branch column) and you will also see another color in the branch graph (the first column).
Merge by using Distribute to branch
When there are new changes in the Trunk branch, it is very easy to merge them to the feature branch. This can be done by moving to the Trunk branch, do some changes, register them. Next you have to do a merge. This can be done as follows:
- Go to Home
- Click on Version management
- Select the correct repository and the correct branch (Trunk)
- Click on Distribute to branch
- The From field is prefilled with the current branch (Trunk)
- Select the To branch (FeatureBranch)
- It will show the registered changes that can be selected in bold.
- Select one of them
- In the Details overview you see the elements that have been changed in this commit (which was done in the Trunk).
- Now click on Merge.
- The system performs some checks and present you an overview with:
- Impact report
- Conflicts (0)
- Merged revisions
- As there are no conflicts you can click on Apply and Close.
- Click on FeatureBranch at the left side and click on Open branch on the top.
- Open the project.
- Click on File > Pending changes.
- Here you see the elements that have been changed.
- In the middle of the screen at Merges you also see the register message which was added in Trunk.
- Now you can also register these changes in this branch.
Merge Update from branch
This action is the opposite of Distribute to branch only seen from the other branch. So it is possible to do the previous steps by using this action. Then you have to open the target branch and do your changes by pulling updates.
Discard changes
You may have noticed a tiny checkbox in the Distribute to branch overview with the name 'Discard changes'. By selecting this option you explicitly state that you don't want to merge the selected changes. This could be very helpful in case you have to make some changes which are only relevant for that branch, e.g. some test flow or test page. By selecting Discard changes the changes will only remain in the branch in which they have been defined and they will not processed to another branch e.g. Trunk.
Note that changes that have been set to discard changes in the past will never ever be merged.
In case you accidentally ticked discard changes but you still want to acquire these changes you have to create a temporary branch in which the changes are taken over and merge that one to the destination branch.
...