Quick Merge
Start Menu Path: Module Menu / Configuration Mgt / Quick Merge
Function: Quick Merge provides a push method to copy objects / attribute values / links to one or more branches at the same time. The quick merge is designed for working dynamically on a module while pushing the changes, so it is very well suited for bug fixes and general house keeping actions to keep multiple branches in sync. Note that the whole point of Branching and Merging is to clearly manage the parts of branches that are in sync with each other and the parts that are different from each other. The quick merge is therefore the tool to use to make sure that the relevant parts of branches are really in sync.
Configuring a Quick Merge
The Quick merge is started from the module that contains the changes or the master state that shall be applied to other branches. After starting the Quick Merge the following GUI is presented to the user:
- Usage Text - the usage text is to remind the user that this tool will readily destroy all data in the target branches by overwriting it with whatever is synced from the source module. Therefore, it must be reiterated that this tool has to be used with care.
- Add Target Button - Using the add target button, the user can select a target branch, and configure the merge options for the branch. Note that each branch can have different merge parameters, for example regarding the attributes that shall be pushed.
Note: After adding a target in the source module (i.e. the module where the Quick Merge was started from) a comparison column will be inserted that shows the changes that will be pushed to the target module of that branch. An empty column means that the two modules are in sync regarding the selected merge parameters.
- Merge Targets List - The merge target lists shows the list of selected target branches and has three functions:
- Information: Show the user to which branches he is pushing information
- Navigation: Double Clicking on a branch in the list will bring the target module of that branch into focus, and jump to the object that the user has selected in the source module. This way a change can be inspected in the context of other changes, and an object can be located quickly for a manual change.
- Selection: The checkbox in front of the branch defines whether or not a merge operation will affect the target module of that branch. This way changes can be selectively pushed only to a part of the target branches.
- Merge Refresh Objects / Refresh Comparison Button
The Quick Merge is an interactive tool, that can be used from a source module, which is opened in exclusive edit mode. When reviewing the differences between the branches the situation can occur, that to bring the branches in sync again a change has to be performed to an attribute value, so that it will fit to all the branches. In this case the change can be performed in the source module and using the 'Refresh Comparison Button' the comparison for the branches can be recalculated for the current object. This can also be done for a selected lists of objects, when multiple objects have been selected OR when the radio button is set to "all in view" for all objects in the current view. Notice that the refresh is not calculated in background, therefore the GUI might block for some time when performing a refresh on a larger set of objects.
- Merge Button - When pressing the merge button, the changes selected in the merge parameters for each branch are copied to all branches that are checked in the list of merge targets.
Note: The Quick-Merge tool does not handle changes to tables well in the present release. Table cells can be selected to merge changes to them, but the changes to the table cells are not shown in the comparison columns. That is a known issue and will be corrected in a later release. Also note that after merging, the target modules need to be saved. A merge operation that is performed by the Quick Merge is very similar to a manual merge that would be performed by the user.
- Status Bar - The status bar shows the percentage of completion of the comparison for each branch target. Since that comparison is evaluated in the background, this gives the user an indication about the calculation progress. Note that while the calculation is running, the GUI will not react as smoothly as when the comparison is finished. Also note that at the moment the maximum number of merge targets is restricted to 6 due to resource considerations.
Viewing the differences
The changes between branches are shown similar to the compare screens. New columns will be added for each branch added as a target for the quick merge. The user can review these differences by browsing the module.
