Undo a delivery n clearcase? - clearcase

is there a way to UNDO a Clearcase delivery after it has been completed? I saw a post that was close but it was still being delivered.
I want to undo a delivery thqt has been completed (if possible); it was delivered from child stream to parent and I do not want it there

Once a deliver has been completed, all the versions created during said deliver are recorded in a special UCM activity beginning with deliver.xxx.
You can try the cSet.pl perl script in order to undo the deliver activity.
It will create new versions which will cancel the versions just created by the deliver.
ccperl cset.pl -undo deliver.xxxx

Related

How to list all modified files in actual view?

Is there a way to list all files modified since last deliver with clearcase ?
I'm using clearcase like this :
ct setview <myStreamName>
Then I work on files. But before deliver to integration stream, I want to check all modified file. Is there a way to list all file with pending changes and compare them with working revision ?
Edit :
<myStreamName> is a child stream with activities, created from integration stream.
Actually, that isn't quite right. The simplest way to see your pending changes is to run cleartool deliver -preview -long while set in your development view.
This will list all the undelivered activities and the versions on those activities, regardless of the component.
You can use diffbl, more or less, but you then have to delve into the mysteries of deliverbl baselines (created on every deliver operation listing the activities delivered in that deliver.) and use those baselines as a filter on the activities... This then gets more complicated because you can deliver the same activity multiple times if you delivered it, did more work on it, and then haven't delivered the additional work.
Just use deliver -preview -long...
setview will mask your current view, since you access your files directly through /vobs/yourVobs/.../yourfiles (as shown here).
If you are doing a deliver, that means you are using UCM and have set a baseline from your current view, on your current stream (that you are about to deliver to an integration stream).
If that is the case, do a diff between two baselines: (cleartool diffbl -ver baseline1#\apvob baseline2#\apvob)
the latest one of the integration stream.
the one you have set
For the first element, use a ct lsbl -comp C -stream S to get the latest baseline.
This assumes you are delivering one component.
I also mention deliver -preview in "ClearCase Inter project delivery": it needs an UCM view on the target UCM stream to operate.
See also "I need a list of all the component of a certain stream that still needs delivery to default".
The error message:
Error: Target stream "myStream" requires child development streams
to rebase to recommended baselines before performing deliver operation.
means the deliver policy "Require development stream to be based on the project's recommended baseline(s) prior to delivery)" is in place.
See "How to force rebase before each delivery?"
Try and change that policy, or, as enforced, rebase first.
Then do a deliver -preview.

Clearcase: make baseline, but donot recommend, Can it cause error for others

This is regarding, IBM Rational Clearcase Explorer application. If we deliver some files, and take the step of "make baseline". After that, if we don't do the "Recommend Baseline" step, will it cause problem for others trying to deliver to the same stream?
After that, if we don't do the "Recommend Baseline" step, will it cause problem for others trying to deliver to the same stream?
deliver, no. Rebase maybe, as ClearCase will rebase by default the recommended baseline of the parent (source) UCM stream.
But for delivering (cleartool deliver), you can deliver the baseline you want.
Since the deliver stream's recommended baseline is selected by default, that could also trip a user not double-checking the exact name of the auto-selected baseline.
Not recommending a baseline will not prevent a subsequent deliver operation.
Please note that all deliver operations are merges, which can cause "merge creep" issues if you use deliver to push changes back into child streams. As a general rule, don't deliver to child streams.
If you get a deliver that says that some file's can't be checked out, it usually means someone else is delivering. Not knowing the checkout error message, I can't tell you that this is what is happening though.

Why it does not allow to change the default rebase activity?

We are working in multisite UCM environment.
In while my colleague was trying to rebase stream and he was prevented from doing it as there was already a delivery was pending in that stream.
Now in his view that rebase activity is set by default.
After the delivery is accepted in master replica, some one else has rebased the same stream.
Now my colleague is not allowed to rebase as the stream is update. But while we were trying to change the default activity from view properties , it doesn't allow and saying that rebase in progress.
Will it automatically corrected after synchronizaztion? or it will be keep on occuring , why it occurs and how to solve it?
If you are dealing with snapshot view, the first thing to do is a full update (from the root directory of the view)
You also need to check the rebase status of the Stream you are (and on the right site depending on where the rebase was actually started, in order to take into account the multisite aspect).
cleartool rebase -status -stream yourStream#\YourPVob
As long as that status says a rebase is in progress, it needs to be completed (especially if it was in its "complete" phase: cancelling a rebase can fail for a variety of reason: see technote 2059393).
That status will mention the name of the view currently affected by said rebase.

How to deliver a baseline from one project to another project in UCM?

I am having 2 projects in clearcase UCM as follows
Project-200
Project-200.1
In Project-200.1 , We have completed a work and applied a baseline
"Project-200.1-1.1.0.0"
Now we would like to deliver from Project-200.1 to Project-200.
How to deliver the baselined contents? We do not want to deliver any thing which is added after baseline.
You simply make an inter-project deliver of your baseline.
As long as both projects have the same component, and if the deliver policy of the destination project authorize inter-delivers, you can initiate it between a stream of Project-200.1 and a Stream of Project-200.
For specifying a target Stream which is different from the default one (ie different from its immediate parent Stream), you need to initiate a "deliver to alternate target".

Clearcase deliver accepted notice

I have a problem with some programmers. They don't let me know when they deliver, so I do nothing about it.
Is there a way to get a notice when someone delivered?
Thanks.
First of all: hit them, hard!
Have a trigger implemented on the clearcase server that send on email on commit or on merge.
http://www.ibm.com/developerworks/rational/library/4311.html
"deliver" can mean an UCM merge, in which case you can:
make an intermediate stream where developer delivers whenever they want
simply lock the integration stream in order to be the only one able to deliver on it (meaning you can trigger a deliver from the intermediate stream to the integration stream when you want: if the deliver reports something to merge, then you can examine the activities to be merged).

Resources