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 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 integration view in use.
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.
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 integration 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 can proceed to the completion phase. No merging or merge arrows are required.
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.
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 integration-view-tag is not accepted when starting a remote deliver operation. The remote post goes to the default target stream or an alternative 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 integration 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 these operations:
Delivering selected activities to a nondefault target is subject to the following restrictions:
stream-selector is of the form [stream:]stream-name[@vob-selector], where vob-selector specifies the stream's project VOB.
Using –to integration-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, an integration view must be specified.
stream-selector is of the form [stream:]stream-name[@vob-selector], where vob-selector specifies the stream's project VOB.
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.
In addition, 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.
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 integration 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.
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.
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.
cmd-context deliver -to webo_integ
Changes to be DELIVERED:
FROM: stream "chris_webo_dev"
TO: stream "integration"
Using integration view: "webo_integ".
Do you wish to continue with this deliver operation? [no] yes
Needs Merge "/view/webo_integ/vobs/webo_modeler/design/foo" [(automatic)
to /main/integration/1 from /main/integration/chris_webo_dev/1 (base also
/main/integration/1)]
Checked out "/view/webo_integ/vobs/webo_modeler/design/foo" from version
"/main/integration/1".
Attached activities:
activity:deliver.chris_webo_dev.20000606.160519@/vobs/webo_pvob "deliver
chris_webo_dev on 06/06/00 16:05:19."
Needs Merge "/view/webo_integ/vobs/webo_modeler/design/foo" [to
/main/integration/CHECKEDOUT from /main/integration/chris_webo_dev/1 base
/main/integration/1]
Trivial merge: "/view/webo_integ/vobs/webo_modeler/design/foo" is same as
base "/view/webo_integ/vobs/webo_modeler/design/foo@@/main/integration/1".
Copying
"/view/webo_integ/vobs/webo_modeler/design/foo@@/main/integration/chris_webo
_dev/1" to output file.
Moved contributor "/view/webo_integ/vobs/webo_modeler/design/foo" to
"/view/webo_integ/vobs/webo_modeler/design/foo.contrib".
Output of merge is in "/view/webo_integ/vobs/webo_modeler/design/foo".
Recorded merge of "/view/webo_integ/vobs/webo_modeler/design/foo".
Deliver has merged
FROM: stream "chris_webo_dev"
TO: stream "integration"
Using integration view: "webo_integ".
Build and test are necessary in integration view "webo_integ"
to ensure that the merges were completed correctly. When build and
test are confirmed, run "cleartool deliver -complete".
cmd-context deliver –complete
Resume deliver
FROM: stream "chris_webo_dev"
TO: stream "integration"
Using integration view: "webo_integ".
Do you wish to continue with this deliver operation? [no] yes
Are you sure you want to complete this deliver operation? [no] yes
Deliver has completed
FROM: stream "chris_webo_dev"
TO: stream "integration"
Using integration view: "webo_integ".
cmd-context deliver –status
Deliver operation in progress on stream "stream:chris_webo_dev@\webo_pvob"
Started by "ktessier" on "14-Jun-00.16:07:46"
Using integration activity "deliver.chris_webo_dev.20000614.160746".
Using view "webo_integ".
Activities will be delivered to stream "stream:integration@\webo_pvob".
Development Stream Baselines:
baseline:deliverbl.chris_webo_dev.20000614.160746.129@\webo_pvob
Activities:
activity:fix_copyright@\webo_pvob
activity:update_date@\webo_pvob
activity:fix_defect_215@\webo_pvob
cmd-context deliver –cancel
Cancel deliver
FROM: stream "chris_webo_dev"
TO: stream "integration"
Using integration view: "webo_integ".
Are you sure you want to cancel this deliver operation? [no] yes
Private version of "/view/webo_integ/vobs/webo_modeler/design/add_proc"
saved in "/view/webo_integ/vobs/webo_modeler/design/add_proc.keep".
Deliver of stream "chris_webo_dev" canceled.
Copyright© 2003 Rational Software. All Rights Reserved.