Manually undo delivery in ClearCase

2019-02-19 17:54发布

问题:

I currently have a jacked-up delivery from a child stream to a parent in ClearCase. If I try to undo the delivery it tells me I can't because the "integration activity has checkins" or "checked in versions".

If I try to resume the delivery it says it encountered an error attempting to checkout or merge an element, but doesn't specifically tell me which one.

So I'm looking for a way to either:

  1. Manually stop the delivery (undo all checkouts in the parent stream?)

  2. Find out what element is causing the delivery problem (is it same as the one causing the undo problem)

  3. or Find out what element is causing the undo problem and find a way to undo the checkin (I don't know how to do this. I tried to delete a version in the version tree, but I don't have permission).

回答1:

For 3/ "Find out what element is causing the undo problem", this is easy (but not recommended): you need to remove all the checked-in versions done during the complete phase of the deliver.
And that is by far the most dangerous solution, especially if any type of activity (other checkins, baselines, ...) has been done on the destination Stream (the stream to which you are delivering file, ie the Stream with the view you are using to deliver to)

You can see those checked-in file by describing the deliver activity (which always starts with deliverbl.xxx)

cleartool descr -l activity:deliverbl.xxx@\myPVob

1/ and 2/ are linked.
A good solution to easily detect the issue is to resume the deliver graphically: open the ClearCase project Explorer (clearprojexp), right-click on the source Stream and select deliver (Baseline or Activities, to default or alternate target: it doesn't matter).
ClearCase will detect that a deliver is in progress and will propose to resume.

All you need to do is check all the files with a red circle and white cross (not the files with a yellow warning sign, those are not blocking the deliver).

Once you have one of those files, right-click on it, and select "display element merge": you will have a more precise error message that you can copy-paste.

If those files are in lost+found directory, all you need to do is to edit the config spec of the view used for the deliver, and add a non-selection rule to avoid selecting anything from lost+found:

 cd /path/to/your/view
 cleartool edcs
 #add at the start of the config spec
 element /myVob/lost+found/... -none

Then resume again your deliver, and you will see that those 'lost+found' files become ignored (with a warning non-blocking status attached to them).

If those files aren't in lost+found and are failing the deliver because of "Not a vob object <directory name>", the first check to do is to go to the parent directory of said files in a shell session and type cleartool ls: you will see their status.
In this case, the OP Ian reports them as hijacked, so it was simply about undoing their hijacked status.

He reports also having to delete (rmname) some binary files, although my answer to the question "Clearcase UCM is trying to merge pdf files" is pointing to an alternative solution (copy merge).


My recommendation: in that particular state (deliver with checkins already there), try hard to complete the deliver, not to cancel it.



标签: clearcase