Baseline usage considerations

Synergy uses a baseline as a snapshot of projects and tasks at a particular point. Before you create a baseline, you will need to consider how it will be used. The update operation uses the baseline as a way of saying "start from here." Therefore, if you use the standard process rules to set up the baseline to contain projects from multiple components or not to contain all the projects for a release, then Synergy will not be able to use your baseline to update properly. This methodology is supported, but you must customize process rules for it to work.

The next two examples show how to set up a baseline correctly, while the last example shows a baseline that was set up incorrectly. Using baselines correctly can improve performance when you update your projects.

The baseline is selected by its release; therefore, it is important to have projects with a consistent release in the baseline. The projects in the baseline are used as baseline projects for the projects in a project grouping. In the following table, notice that every project in the project grouping maps to a project in the baseline. This example shows a complete baseline.

Baseline for CM/7.0 build 1234 <== Baseline Project Grouping for CM/7.1 Integration Testing
cm_top-CM/7.0 <== Baseline project cm_top-CM/7.1
cm_gui-CM/7.0 <== Baseline project cm_gui-CM/7.1
cm_api-CM/7.0 <== Baseline project cm_api-CM/7.1
cm_platform-CM/7.0 <== Baseline project cm_platform-CM/7.1

In the following table, notice that two separate baselines are needed for a hierarchy with mixed components. This example shows correct baselines.

Baseline for CM/7.0 build 1234 <== Baseline Project Grouping for CM/7.0 Integration Testing
cm_top-CM/7.0 <== Baseline project cm_top-CM/7.1
cm_gui-CM/7.0 <== Baseline project cm_gui-CM/7.1
cm_api-CM/7.0 <== Baseline project cm_api-CM/7.1
cm_platform-CM/7.0 <== Baseline project cm_platform-CM/7.2
Baseline for TC/5.1 build 5678 <== Baseline Project Grouping for TC 5.2 Integration Testing
change_api-TC/5.1 <== Baseline project change_api-TC/5.2

If you create a single baseline for projects with mixed components, the projects will not be able to find a baseline project correctly if you are using standard process rules. In the following example, notice that a subproject from the TC/5.1 release (in Italics in the table below) is included in a baseline for the CM/7.0 release.

Rational Synergy will not be able to use this project as a baseline project because the baseline it is a member of (for example, Baseline for CM/7.0 build 1234) will not be selected by any project grouping (for example, Project Grouping for TC 5.2 Integration Testing) that would use this as a baseline project. It will also result in tasks for both releases being included in the baseline.

If all of the tasks in the baseline are not used by all of the projects in the baseline, the tasks will not be subtracted by the project grouping during the update. Optimally, new project members selected by the update operation are gathered in this way:

Baseline for CM/7.0 build 1234 <== Baseline Project Grouping for
CM/7.1
cm_top-CM/7.0 <== Baseline project cm_top-CM/7.1
cm_gui-CM/7.0 <== Baseline project cm_gui-CM/7.1
cm_api-CM/7.0 <== Baseline project cm_api-CM/7.1
cm_platform-CM/7.0 <== Baseline project cm_platform-CM/7.1
change_api-TC/5.1    
missing <== Baseline Project Grouping for TC 5.2 Integration Testing
none <== Baseline project change_api-TC/5.2

Feedback