mkbl

Creates a UCM baseline or set of baselines

APPLICABILITY


Product

Command Type

ClearCase


cleartool subcommand


ClearCase LT


cleartool subcommand



Platform

UNIX


Windows


SYNOPSIS

mkbl [ -c·omment comment | -cfi· le pname | -cq· uery| -nc·omment ]

[-vie·w view-tag ]
[-com·ponent component-selector[,...] | -all | -act·ivities activity-selector[,...] ]
[ -ide·ntical ]
[ -nlabel | -inc·remental | -fu·ll ]
baseline-root-name
mkbl [ -c·omment comment | -cfi· le pname | -cq· uery| -nc·omment ]

-imp·ort label-type-selector ...

DESCRIPTION

The mkbl command creates a baseline or set of baselines. A baseline represents a snapshot of the changes made to a particular component in the context of a particular stream-it is a version of a component. For each element in the component, the baseline records the version of that element selected by the stream's configuration at the time the mkbl operation is executed. The baseline also records the list of activities in the stream whose changes sets contain versions of the component's elements.

A baseline selects one version of each element of a component. You can create multiple baselines per component, just as you can create multiple versions of an element. A baseline is associated with only one component and you can only create one baseline per component per invocation of mkbl.

By default, all components that have been modified since the last full baseline are considered as candidates for new baselines. You can also create baselines for a subset of components in the stream or for components modified by specific activities.

Initial Baseline

When you create a component, it includes an initial baseline whose name is of the form component-name_INITIAL. This baseline selects the /main/0 version of the component's root directory and serves as a starting point for successive baselines of the component.

Creating a Baseline for an Unmodified Component

Use the -identical option to create a new baseline for a component that has not been modified. This can be useful in working with several components. You can create new baselines for a set of components independent of whether they have been modified.

Creating Baselines that Include a Set of Activities

By default, all activities modified since the last baseline was made are captured in new baselines. You can select a subset of activities for inclusion in the baseline. If there are dependencies between the change sets of activities, you may not be able to include just the activity you want; you'll also need to include those activities that it depends on.

A single baseline is created if the selected activities are part of the same component. If an activity modifies more than one component, a new baseline is created for each component it modifies.

Creating a Baseline by Importing a Label

You can recognize a VOB as a component with the mkcomp command. When you do this, the VOB is given an initial baseline that selects the /main/0 version of the component root directory. However, this baseline does not give you access to files and directories that are already in the VOB.

You can create a new baseline that corresponds to a set of labeled versions in the VOB. To do this, use the -import option, specifying a label-type-selector. The mkbl command creates a baseline that selects the labeled versions, making them accessible to the UCM project.

Before creating the baseline, be sure that the label is unlocked and ordinary (not global) and that labeled elements are checked in. The label is locked when the baseline is created and you cannot move the label later. Be certain the label selects a version of all visible elements.

Baseline Names

Baseline identifiers are made up of two parts: a user-specifiable root name and a generated, unique numeric extension. The same root name can be used for baselines of more than one component. However, a root name can be used only once per component per stream.

When you create a baseline by importing a label, the root name is derived from the label's type selector. For example, the label-type selector REL1@/vobs/baz generates a baseline root name of REL1 whose scope is the baz component.

Baseline Labels

You can choose whether versions of the baseline are to be labeled when the baseline is created. Baselines can be unlabeled, incrementally labeled, or fully labeled.

All baselines record a component's current configuration in a stream, but only labeled baselines can be used to configure other streams (via the rebase operation or mkstream).

Choose a labeling scheme that suits your project's structure. Incremental baselines are typically faster to create than full baselines. Specifically, the time required to create a baseline is as follows:

These options control labeling during baseline creation:

You can change the labeling status for a baseline with the chbl command.

Promotion Levels

Baselines are marked with a promotion level that signifies the quality of the baseline. When created, a project VOB is assigned an ordered set of promotion levels, one of which is designated the default promotion level, the level assigned to new baselines when they are created.

See the setplevel command for further information.

RESTRICTIONS

Identities: No special identity required.

Locks: An error is generated if there are locks on any of the following objects: the UCM project VOB, the component, the containing stream; and if you are importing a label type, the label type being imported.

Mastership: The master replica of the indicated objects must match the replica (originally) performing the operation.

OPTIONS AND ARGUMENTS

EVENT RECORDS AND COMMENTS. Default: Creates one or more event records, with commenting controlled by your .clearcase_profile file (default: -cq). See the comments reference page. Comments can be edited with chevent.

-c·omment comment | -cfi·le comment-file-pname |-cq·uery | -cqe·ach | -nc·omment

Overrides the default with the option you specify. See the comments reference page.

SPECIFYING THE VIEW AND STREAM. Default: The stream to which the current view is attached.

·-vie·w view-tag

Specifies the view from which to create baselines. Baselines are created in the stream that the view is attached to.
For example, if you are working in coyne_dev_view, but want to create a baseline from the configuration specified by the view coyne_integration_view, use -view coyne_integration_view. This creates a baseline in the project's integration stream that includes all the checked-in versions contained in coyne_integration_view. If you do not specify view-tag, the current view is used.

SPECIFYING THE COMPONENTS OR ACTIVITIES. Default: -all.

-com·ponent component-selector[,...]

Specifies the components for which baselines are made.
component-selector is of the form: [component:]component-name[@vob-selector] and vob is the component's UCM project VOB.
-all

Creates a baseline for each component in the project that has been modified since the last baseline.
-ide·ntical

Creates new baselines for all components, regardless of whether they have been modified.
-act·ivities activity-selector, ...

Specifies a list of activities to include in the new baselines.
activity-selector is of the form: [activity:]activity-name[@vob-selector] where vob is the activity's UCM project VOB.
By default, all activities with changes that are not recorded in the last baselines are recorded in the new baselines. You can use this option to include only a subset of the unrecorded changes in the new baselines. A baseline is created for each component that has unrecorded changes in the specified list of activities.
The list of activities must be complete. That is, they must not depend on the inclusion of any other activities. Activity A2 is dependent on activity A1 if they both contain versions of the same element and A2 contains a later version than A1. If the list of activities is incomplete, the required activities are listed and the operation fails.

SELECTING LABELING BEHAVIOR. Default: -incremental.

-nla·bel

Specifies that versions for this baseline are not labeled. Unlabeled baselines cannot be used as foundation baselines, but can be used by the diffbl command and labeled later.
-inc·remental

Labels only versions that have changed since the last full baseline was created.
-fu·ll

Labels all versions visible below the component's root directory.

SPECIFYING THE BASELINE ROOT. Default: None.

baseline-root-name

Specifies the root portion of the baseline name. See Baseline Names.
SPECIFYING A LABEL TO IMPORT. Default: None.
-imp·ort label-type-selector

Creates a baseline using versions marked with the specified label-type-selector. The label type must be applied to the component's root directory and to every element below the root directory that you want to include in the component. Baselines are created as successors to the initial baseline. The scope of the label type must be ordinary, not global.

EXAMPLES

The UNIX examples in this section are written for use in csh. If you use another shell, you may need to use different quoting and escaping conventions.

The Windows examples that include wildcards or quoting are written for use in cleartool interactive mode. If you use cleartool single-command mode, you may need to change the wildcards and quoting to make your command interpreter process the command appropriately.

In cleartool single-command mode, cmd-context represents the UNIX shell or Windows command interpreter prompt, followed by the cleartool command. In cleartool interactive mode, cmd-context represents the interactive cleartool prompt. In Attache, cmd-context represents the workspace prompt.

NOTE: In the UNIX examples that follow, arguments and output that show multicomponent VOB tags are not applicable to ClearCase LT, which recognizes only single-component VOB tags. In this manual, a multicomponent VOB tag is by convention a two-component VOB tag of the form /vobs/vob-tag-leaf-for example, /vobs/src. A single-component VOB tag consists of a leaf only-for example, /src. In all other respects, the examples are valid for ClearCase LT.

Create a baseline for a component xroutines by importing a label type.

cmd-context mkbl -c "Import BL2 label" -import BL2@/vobs/xroutines

SEE ALSO

chbl, diffbl, lsbl, rmbl