Motto:Provide ability to reflect branches in a CVS repository.
Let's suppose you have two branches in a CVS repository (
main-trunkand
stabilization). Normal development takes place in
main-trunkand
stabilizationbranch is for stabilization before some release.
Problematic situations:
Following requirements should be fulfilled to solve problems mentioned above:
Bugs can have different status and comments in different branches. Look at the situations one and two from the case study. For example in the second situation the bug will be marked as FIXED in the stabilization branch and left as ASSIGNED or even NEW in the main-trunk where also comment about necessary changes will be added.
When new branch is created in CVS repository it is sometimes a good idea to branch bugs according to the CVS branch. For example in the case study we are interested not only in bugs that are in stabilization branch (these bugs will be in the upcoming release) but also in the main-trunk (these bugs will be in next releases).
This requirement is connected with the first requirement. The user should have possibility to see and modify attributes in the branch he/she is interested. He/she should be able to switch from one branch of the bug to another easily.
The most common situation in the case study is that the bug is fixed in both branches at once. So, there should be possibility to manipulate with attributes in more branches at once. For example when the bug is fixed in both main-trunk and stabilization branches the developer should be able to select both branches and change their status at once.
When a branch exists some time it is natural that bugs that appear only in this branch are found.
It is impossible to know about all bugs in the current build. New bugs that appear in several branches are found quite often. Therefore it is important to be able to enter new bug into several branches at once. Care should be taken of branches new bug should be entered into. In open-source projects we cannot rely on a good will of the external user to try whether this bug appears in other branches. Some rules have to be established about branches that probably contain the new bug.
Sometimes can happen that bug was entered into more specific branch that it should have been entered. In such situations it should be possible to branch just one bug report.
Ability to list bugs in given branch is very important for almost al groups: users, QA engineers, developers, managers etc. Users should be able to find all open bugs in their installed version. Managers are interested in fixed bugs for particular patch etc.
User's view of the bug-branching depends on the depth of its support.
Light support
Some kind of compromise between the light and wide support.