deliver

Delivers changes in a UCM development stream to the project's integration stream

APPLICABILITY

ClearCase UCM (cleartool subcommand)

SYNOPSIS

DESCRIPTION

The deliver command lets you deliver work from your development stream to the project's integration stream. Work is delivered from your development view to an integration view. By default, the deliver operation delivers all activities that have changed since the previous deliver operation from a stream. You can also select a subset of the stream's activities for delivery.

There are several steps to delivering work:

If a deliver operation is interrupted through a system interrupt or user action, you must explicitly resume or cancel the deliver operation. Cancellation returns the integration and development streams to their original state. Note, however, that after the completion phase of a deliver operation has begun, the -cancel option cannot undo the delivery.

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

Previewing a Deliver Operation

The -preview option shows which activities would be delivered if you executed the deliver operation for the specified stream. Use -preview only when there is no deliver or rebase operation in progress for the stream.

Default output displays the owner, activity-selector, and title for each activity. With the -short option, only the activity-selector is displayed. The -long option displays the default output plus a list of versions that may require merging.

Delivering Selected Activities

By default, all activities with changes since the last deliver operation are delivered. You can specify a subset of activities to deliver using the -activities option. The list of activities must be self-consistent, that is they must not depend on the inclusion of any other activities.

For example, activity A2 is dependent on activity A1 if they both contain versions of the same element and A2 contains a later version than A1. Additionally, any activities that have been included in baselines but not delivered must also be delivered if there are changes for that component in the specified activities. If the list of activities you specify is incomplete, the additional required activities are listed and the operation fails.

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 integration view in use.

One-Step Delivery

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.

Resuming a Deliver Operation

To resume a deliver operation that has been suspended, reissue the deliver command with the -resume option. Do not specify an integration view; ClearCase finds it and the deliver operation that is in progress. Specify a stream if one cannot be inferred from the view context (that is, the stream attached to the current view).

You must also specify merge options. Each invocation of the deliver operation, whether to start or resume the operation, has control of the merge options.

Resuming a deliver operation allows it to proceed through the merge phase of the delivery.

Completing a Deliver Operation

To complete a delivery that has been suspended, reissue the deliver command with the -complete option. Do not specify an integration view; ClearCase finds it. Specify a stream if it cannot be inferred from the view context (that is, the stream attached to the current view).

The completion phase of deliver checks that merges required for the deliver operation have been made and that merge conflicts have been resolved. New versions are checked in to the integration stream and a record of the deliver operation is made. Note that checking in merged versions in the integration view alone does not complete the deliver operation. You must use the -complete option.

The -complete option for a deliver operation in progress implies the -resume option. That is, if any merges are still required, it will report them and attempt the merges. If merge conflicts exist, the deliver operation is suspended.

Using the -forceOption

The -force option does not remain in effect after a deliver operation is interrupted. You must include it again on the command line when you restart the deliver operation with -resume, -cancel, or -complete.

Canceling a Deliver Operation

A deliver operation can be interrupted with CTRL+C or when it encounters an external error or condition that requires more information. Reissue the deliver command with the -cancel option to end the deliver operation and return work areas to their previous state.

Using Snapshot Views

On UNIX platforms, to use a snapshot view as an integration view for a deliver operation, the view storage directory must be in the default location in the snapshot directory.

Use with MultiSite: Delivering Work from a Remote Site

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

After the stream is in the posted state, the deliver operation can be continued only by someone working at the integration stream's replica. Generally, this is the team's project integrator. Also, once posted, the deliver operation can be canceled only by a user at the integration stream's replica's site.

The deliver -status command reports which development streams have a remote deliver operation in progress. Using this information, the project integrator can then cancel, or continue the deliver operation, using the -cancel option to halt the deliver operation and return the development stream to its previous state, or the -resume and -complete options alone or in combination to continue the deliver operation.

You can create activities and perform checkins and checkouts for your development stream while the remote deliver is in process. However, you cannot add, remove, or create baselines; add or remove components; rebase the development stream; or post another deliver operation.

PERMISSIONS AND LOCKS

Permissions Checking: None apply.

Locks: An error occurs if there are locks on any of the following objects: development stream, UCM project VOB.

Mastership: Streams must be locally mastered.

OPTIONS AND ARGUMENTS

INVOKING THE GRAPHICAL USER INTERFACE: Default. Nongraphical interface.

-g·raphical

Invokes the graphical user interface for the deliver operation.

SPECIFYING THE SOURCE AND DESTINATION FOR THE DELIVER OPERATION.

-stre·am from-stream-selector

Specifies a development stream that is the source for the deliver operation. If this option is not specified, the deliver command determines the current view context and uses the stream attached to the current view.
stream-selector is of the form: [stream:]stream-name[@vob-selector] and vob is the stream's UCM project VOB.

-to integration-view-tag
Specifies a view attached to the integration stream for the development stream's project.

PREVIEWING THE RESULTS OF A DELIVER OPERATION.   Default: Displays a short listing.

-pre·view

Displays a list of the activities to be delivered. These are any activities that have changed since the last deliver operation from this stream.
-s·hort

Modifies the -preview option. Activity-selectors only are displayed.
-l·ong

Modifies the -preview option. Displays a list of activities with checked-out versions and activities to be delivered, and indicates files that may require merging.

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 for delivery. If the -activities option is not specified, versions in the change sets of all changed activities in the stream are delivered.

activity-selector is of the form: [activity:]activity-name[@vob-selector] and vob is the activity's UCM project VOB.

REPORTING THE STATUS OF A DELIVER OPERATION. Default: The -status option.

-sta·tus

Displays the status of a deliver operation. You are informed whether a deliver operation is in progress for the specified stream, whether the deliver is to a local stream or a remote stream, and, in the case of a remote deliver, whether the posted deliver has been merged with the integration stream.
-l·ong

Displays a list of versions that may require merging in addition to the default ·information.

RESTARTING A DELIVER OPERATION.

-res·ume

Resumes a deliver operation that was halted by a user interrupt or system error and continues the delivery through the merge phase.

CANCELING A DELIVER OPERATION.

-can·cel

Halts a deliver operation, returning the source and destination streams to their states before the deliver operation began.
-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 resume the deliver operation. The merge options to the deliver command are not affected by the -force option.

MERGE OPTIONS. Default: Merging works as automatically as possible, prompting you to make a choice in cases where two or more nonbase contributors differ from the base contributor. Merge options do not remain in effect after a deliver operation is interrupted. You must include them again on the command line when you resume the deliver operation.

You can specify the following options to modify the merge operation. These work just as they do in the findmerge command.

-gm·erge

Performs a graphical merge for each element that requires it. It also attempts to check out the to-version, if it is not already checked out to your view.
-ok

Pauses for verification on each element to be merged, allowing you to process some elements and skip others.
-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 automatically accepted unless a conflict exists.
-abo·rt

Cancels a merge if it is not completely automatic.
-qal·l

Turns off automated merging. Prompts you for confirmation before proceeding with each change.
-ser·ial

Use 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.

COMPLETING THE DELIVERY. Default. None.

-com·plete

Completes a deliver operation. Verifies that changes from the work being delivered have been merged with versions in the project integration stream and that merge conflicts have been resolved. Checks in resulting new versions in the integration stream, and records that the delivery has been made.
If -complete is specified at the start of a new deliver operation, the deliver proceeds and, if all merges are successful, the deliver operation is completed.

EXAMPLES

Examples including 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 command interpreter prompt. In cleartool interactive mode, cmd-context represents the interactive cleartool prompt. In Attache, cmd-context represents the workspace prompt.

cmd-context deliver -to java_int
Changes to be DELIVERED:
FROM: stream "java_dev"
TO: stream "java_int"
Using integration view: "java_int".
Do you wish to continue with this deliver operation? [no] yes
Needs Merge "/view/java_int/vobs/parser/myfile.c" [(automatic) to /main/java_int/1 from /main/java_int/java_dev/1 (base also /main/java_int/1)]
Checked out "/view/java_int/vobs/parser/myfile.c" from version "/main/java_int/1".
Attached activities:
activity:deliver.java_dev.19990917.140443@/vobs/core_projects
"deliver java_dev on 09/17/99 14:04:43."
Needs Merge "/view/java_int/vobs/parser/myfile.c" [to /main/java_int/CHECKEDOUT from /main/java_int/java_dev/1 base /main/java_int/1]
Trivial merge: "/view/java_int/vobs/parser/myfile.c" is same as base "/view/java_int/vobs/parser/myfile.c@@/main/java_int/1".
Copying "/view/java_int/vobs/parser/myfile.c@@/main/java_int/java_dev/1" to output file.
Moved contributor "/view/java_int/vobs/parser/myfile.c" to "/view/java_int/vobs/parser/myfile.c.contrib".
Output of merge is in "/view/java_int/vobs/parser/myfile.c".
Recorded merge of "/view/java_int/vobs/parser/myfile.c".
Deliver has merged
FROM: stream "java_dev"
TO: stream "java_int"
Using integration view: "java_int".
Build and test are necessary in integration view "java_int"
to ensure that the merges were completed correctly. When build and
test are confirmed, run "cleartool deliver -complete".
cmd-context deliver -f -complete
Resume deliver
FROM: stream "java_dev"
TO: stream "java_int"
Using integration view: "java_int".
Deliver has completed
FROM: stream "java_dev"
TO: stream "java_int"
Using integration view: "java_int".

cmd-context deliver -stream java_dev_1234@javaproj_pvob -status

cmd-context deliver -stream java_dev_1234@javaproj_pvob -cancel

SEE ALSO

checkin, checkout, findmerge, rebase, setactivity



Feedback on the documentation in this site? We welcome any comments!
Copyright © 1999 by Rational Software Corporation. All rights reserved.