Branch Modules

Description of GUI and options 

Start Menu Path: Project Explorer Menu / Configuration Mgt / Branch Modules
Function: The Branch Modules tool is used to copy modules from one branch to another. This can be due to the creation of a new branch or at a later time, when a module is branched incrementally. 

Branch Copy GUI

The Branch Modules tool presents a GUI to the user as shown above.

Creating a Branch with the branch modules script

The creation of a branch requires the following actions:

Starting the branch modules script

Select the source project from the Project browser. Use the plugin menu (Configuration Mgt) and select “Branch Modules”. This will pop up the GUI as in the picture above.

Selecting a list of source modules and their baselines to be branched

For selecting the module baselines to be branched, the Tag List Editor dialog is used. This can be the entire contents of the source branch or some subset. BranchManager also supports branching modules from different source projects to the same target project. It is mandatory that for all source modules, a baseline to be branched is selected. This baseline represents the ‘common base’ of the two modules and plays a crucial role for merging.  

Note: To not loose track of the existing branches in your database, it is recommended that all source modules come from the same DOORS project (branch).

Tag List Editor

Selecting the Target Project

The target project can be any DOORS project, except the project where the source modules come from. It is recommended that generalized rules are instituted in the organization based on the type of branch. For example, a personal branch would likely want to be clearly owned by an individual user id found in the hierarchy of projects and folders. However, shared branches are likely defined as siblings of the source branch as a parallel path. The only constraint of the tool is the usage of a project as the source and destination of a branch. Organization rules can be applied beyond this level. After pressing the "Browse" button, the destination project for the branched modules must be chosen.

Select Branch Target

This will identify the root from which the branch will be created. Inside that project the target modules will be created according to their relative position in the source branch. That means that if the source project looks like this:

project.pngAlarm System

folder.pngCustomer Requirements

FormalCustomer Requirements

folder.pngSystem Requirements

FormalSystem Specification

folder.pngComponent Requirements

folder.pngHW

formal.pngBuzzer

formal.pngSurveilance

And the ‘Buzzer’ module is branched to a target project ‘Alarm Clock’, then the module will be created under:

project.pngAlarm Clock

folder.pngComponent Requirements

folder.pngHW

formal.pngBuzzer

 

Note: After branching, the branched modules can be renamed or moved to another folder, or even another project (however care needs to be taken that there is not already a parallel module in that branch!). Moving or renaming the module has no impact on a later merge. In the module history of the branched module, the original path and name of the module will be visible. This can be confusing when trying to retrace the history of a module. Therefore moving a module to another branch is not recommended.

Setting the branch options

Depending on the use case for branching, the checkboxes define how BranchManager deals with links during branching. See Description and Options.

Starting the branch operation

Press the "Start Branch Copy" button.