deliver

Delivers changes in a source stream to the target stream within or across projects

APPLICABILITY


Product

Command Type

ClearCase


cleartool subcommand


ClearCase LT


cleartool subcommand


Platform

UNIX


Windows

SYNOPSIS

deliver -g·raphical [ -str·eam stream-selector ] [ -to target-view-tag ] [ -tar·get stream-selector ] [ -q·uery | -qal·l ]
deliver { -can·cel | -sta·tus [ -l·ong ] } [ -str·eam stream-selector ]
deliver -pre·view [ -s·hort | -l·ong ] [ -str·eam stream-selector ] [ -to target-view-tag ]

[ -tar·get stream-selector ] [ -act·ivities activity-selector ... | -bas·elines baseline-selector ... ]
deliver [ -str·eam stream-selector ] [ -to target-view-tag ] [ -tar·get stream-selector ]

[ -act·ivities activity-selector ... | -bas·elines baseline-selector ... ] [ -com·plete ]
[ -gm·erge | -ok ] [ -q·uery | -abo·rt | -qal·l ] [ -ser·ial ] [ -f·orce ]
deliver { -res·ume |-com·plete } [ -str·eam stream-selector ] [ -gm·erge | -ok ]

[ -q·uery | -ab·ort | -qal·l ] [ -ser·ial ] [ -f·orce ]

DESCRIPTION

The deliver command lets you deliver work from a source stream to a target stream in the same or a different project. There may be several steps to delivering work:

If a deliver operation is interrupted through a system interrupt or user action, you must explicitly resume or cancel it.

In general, it is good practice to check in all work to your source stream before beginning a deliver operation.

You may not deliver when a rebase operation is in progress.

The Integration Activity

The deliver operation creates a UCM activity called the integration activity, which records a change set for the deliver operation. The activity name is of the form deliver.stream-name.date-stamp. When the deliver operation begins, the integration activity becomes the current activity for the target view in use.

One-Step Deliver Operation

You can deliver your work in one step by specifying the -complete and -force options. The -force option suppresses prompting for user input during the deliver operation. The -complete option causes the deliver operation to continue to completion after the merge phase. Use this feature carefully to avoid the possibility of delivering merged files that may not compile.

Handling of Elements of Non-default Merge Types

In a deliver operation, automatic merging is the default behavior for elements, unless user or never merge types were set for the elements. For information about setting merge behavior for an element type, see mkeltype.

For elements of the user merge type, you must invoke your own tool to merge from the source stream version to the target view. The deliver operation checks out the elements, but you are responsible for merging and drawing merge arrows. Until merge arrows are drawn, the deliver operation will not proceed to the completion phase.

A deliver operation ignores versions from the source stream for elements of the never merge type. If all other versions are properly merged, the deliver operation will be able to proceed to the completion phase. No merging or merge arrows are required.

Setting Policies

UCM includes policies that you can set to affect the deliver operation. You can set policies at project or stream creation with mkproject or mkstream, or at a later time with chproject or chstream. For information about project and stream policies, see the reference pages for mkproject and mkstream.

Delivering Changes with MultiSite

The deliver command determines whether the target stream and source stream are mastered at different replicas. If they are, a remote deliver operation is put into effect. The source stream is assigned a posted status.

In a remote deliver operation, the source stream must be a development stream. If you want to deliver changes from an integration stream, you can do so by delivering to a development stream on the same replica, and then delivering from the development stream to the remotely mastered stream.

After the stream is in the posted state, the deliver operation can be continued only by someone working at the target stream's replica. Generally, this is the team's project integrator. Also, after it is posted, the deliver operation can be canceled only by a user at the replica where the target stream resides.

The option -to target-view-tag is not accepted when starting a remote deliver operation. The remote post goes to the default target stream or an alternate target stream, if specified. The deliver -status command reports on any remote deliver operation in progress for the specified stream. The project integrator can then cancel or continue the deliver operation, using the -cancel option to halt it, or the -resume or -complete options to continue it. The project integrator must specify the target view for the deliver operation.

While the remote deliver is in progress, you can create activities and perform checkins and checkouts for your source stream, but you cannot perform any of the following operations:

RESTRICTIONS

Identities: No special identity required.

Locks: An error occurs if one or more of these objects are locked: the source stream, the UCM project VOB.

Mastership: (Replicated VOBs only) Your current replica must master the source stream.

OPTIONS AND ARGUMENTS

STARTING THE GRAPHICAL USER INTERFACE: Default. command line interface.

-g·raphical

Starts the graphical user interface for deliver.

SPECIFYING THE SOURCE AND DESTINATION FOR THE DELIVER OPERATION.   Default: The default source is the stream attached to the current view. The default destination is the parent stream of the source stream. For an integration stream, the default destination is the default deliver target if one is set, using either a view attached to the parent stream owned by the current user, or the view used by the last default deliver operation performed on the source stream.

-stre·am stream-selector

Specifies a stream that is the source for the deliver operation.
stream-selector is of the form [stream:]stream-name[@vob-selector], where vob-selector specifies the stream's project VOB.
-to target-view-tag

Specifies a view attached to the deliver target stream in the same project or in a different project. This option is not accepted for a remote-post deliver operation.

SPECIFYING AN ALTERNATIVE DELIVER TARGET. Default: For development streams, the parent stream of the source stream. For integration streams, the default deliver stream set by mkstream or chstream.

-tar·get stream-selector

Specifies the deliver target stream in the same or a different project.
Using -to target-view-tag alone is sufficient to start a deliver operation to the target stream. If -to and -target are used together, the view must be attached to the stream. If one default view is attached to the target stream and owned by the user, using -target stream-selector alone can start a deliver operation. Otherwise, a target view must be specified.
stream-selector is of the form [stream:]stream-name[@vob-selector], where vob-selector specifies the stream's project VOB.

CANCELING A DELIVER OPERATION. Default: None.

-can·cel

Halts a deliver operation in progress, returning the source and destination streams to their states before the deliver operation began. However, this option cannot undo a deliver operation after the completion phase has begun.
Also use -cancel when a deliver operation is interrupted (as by CTRL+C) or when it encounters an external error or condition that requires more information.

OBTAINING THE STATUS OF A DELIVER OPERATION. Default: None.

-sta·tus

Displays the status of a deliver operation. You are informed whether a deliver operation for the specified stream is in progress, whether the delivery is to a local stream or a remote stream, and, in the case of a remote deliver, whether the posted changes have been merged with the target stream.

PREVIEWING THE RESULTS OF A DELIVER OPERATION.   Default: For each activity to be delivered, displays the owner and activity-selector. For each baseline to be delivered, displays the owner and baseline-selector.

-pre·view

Shows activities or baselines that would be delivered if you were to execute the deliver operation for the specified stream. These are any activities or baselines that have changed since the last deliver operation from this stream. Use -preview only when no deliver operation is in progress for the stream.
CONTROLLING OUTPUT VERBOSITY.   Default: Varies according to the kind of output that the options described here modify. See the descriptions of -status and -preview.
-l·ong

As a modifier of -status or -preview, displays a list of versions that may require merging, in addition to the default information displayed by -status or -preview.
-s·hort

Modifies the -preview option. (This option does not modify the default -preview output.)

SELECTING ACTIVITIES TO DELIVER.  Default: Delivers all activities in the stream that have changed since the last deliver operation from the stream.

-act·ivities activity-selector, ...

Specifies a list of activities to deliver. The list must be self-consistent: the activities specified must not depend on the inclusion of any unspecified activities. For example, activity A2 is dependent on activity A1 if both contain versions of the same element and A2 contains a later version than does A1.
Additionally, any activities that have been included in baselines but not delivered must also be delivered if changes for that component are in the specified activities. If the list of activities you specify is incomplete, the operation fails and lists the additional required activities.
activity-selector is of the form [activity:]activity-name[@vob-selector] where vob-selector specifies the activity's project VOB.

SELECTING BASELINES TO DELIVER. Default: Delivers all activities in the stream that have changed since the last deliver operation from the stream.

-bas·elines baseline-selector, ...

Specifies a list of baselines to deliver. The baselines must be created in the source stream or from the source stream's foundation. A development stream can deliver activities or baselines, but an integration stream can deliver only baselines.

RESUMING A DELIVER OPERATION. Default: None.

-res·ume

Resumes a deliver operation from the point at which it was suspended.

COMPLETING A DELIVER OPERATION. Default: None.

-com·plete

Completes a deliver operation. Verifies that changes being delivered have been merged with versions in the deliver target stream and that merge conflicts have been resolved. Checks in resulting new versions to the target stream and records that the deliver operation has been made. If merge conflicts exist, the deliver operation is suspended.
Use this option to complete a deliver operation or to resume a suspended deliver operation. To complete a deliver operation, you must specify this option; checking in merged versions to the target view alone does not complete the deliver operation.
When used for a deliver operation in progress, this option implies the -resume option; that is, deliver -complete reports any merges that are still required and attempts to resolve them.

MERGING. Default: Merging works as automatically as possible, prompting you to make a choice when two or more contributors differ from the base contributor. For general information, see the findmerge reference page.

-gm·erge

Performs a graphical merge for each element that requires it. This option does not remain in effect after a deliver operation is interrupted.
-ok

Pauses for verification on each element to be merged, allowing you to process some elements and skip others. This option does not remain in effect after a deliver operation is interrupted.
-q·uery

Turns off automated merging for nontrivial merges and prompts you for confirmation before proceeding with each change in the from-versions. Changes in the to-version are accepted unless a conflict exists. This option does not remain in effect after a deliver operation is interrupted.
-abo·rt

Cancels a merge if it is not completely automatic. This option does not remain in effect after a deliver operation is interrupted.
-qal·l

Turns off all automated merging. Prompts you for confirmation before proceeding with each change. This option does not remain in effect after a deliver operation is interrupted.
-ser·ial

Uses a serial format when reporting differences among files. Differences are presented in a line-by-line comparison with each line from one contributor, instead of in a side-by-side format. This option does not remain in effect after a deliver operation is interrupted.

CONFIRMATION STEP.  Default: Prompts for user input.

-f·orce

Suppresses prompting for user input during the course of a deliver operation. The -force option does not remain in effect if the deliver operation is interrupted. You must include it again on the command line when you restart the deliver operation with -resume or -complete. The merge options for deliver are not affected by the -force option.

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.

SEE ALSO

checkin, checkout, chproject, chstream, findmerge, mkeltype, rebase, setactivity