Clearcase UCM - Cross delivering vs. delivering upwards?

We have two Clearcase UCM streams in a hierarchy at the same level (i.e. same parent stream). If the two child streams are both rebased to the same parent baseline, does that mean that

  • Delivering the activities of both streams up to the parent (one, then the other)

Would be equivalent to:

  • Delivering the activities of one child stream to the other child stream, and then simply delivering the one child stream to the parent

Is this in fact true? It seems it should be, assuming any manual/user selected merges for all deliveries are made in the same way.


This is correct, but first a few reminders:

  • having a sub-stream does not mean a deliver have to be done from that sub-stream to its parent. A deliver can be done from a stream to any other one.
  • sideway merges can be dangerous if the two streams are not based upon the same foundation baseline (conflicts will still be there when making the final merge to the parent, as seen in this illustrated answer).
  • a deliver creates a timeline linking all present activities together. That means if you only deliver a1, a2 and a3 to B, then decide to deliver a4 only (and not a5) to any other streams (other than B), ClearCase will force you to deliver all activities (a1 to a5), even though they very well be completely un-related in term of files.
    That does not happens if you:
    • only deliver to the parent
    • always deliver all the current activities anyway!

In your case, since both streams have the same starting points, making first a deliver from A to B, before delivering B to parent, is a way to solving any merge conflicts in B (without impacting too soon the parent) before making the final merge.