ClearCase‎ > ‎UCMpedia‎ > ‎

Shared stream


A shared stream is most often a development stream (or in some, more rare, occasions it may even be a project's integration stream). The simple definition of a shared stream is "A stream, on which multiple developers have a development view".

Snapshot views in ClearCase offers the 1st degree of isolation by keeping view-private files outside the VOB and thus reachable only to the view in which they are private. And by not loading VOB content dynamically.

Sometimes, especially in smaller teams, like just two persons either working together or "fighting" over the same files, this 1st degree of isolation is really all that is needed. And if you do not fall for the temptation to use unreserved checkouts - but stick to the reserved ones. Then you'll still have a very unambiguous flagging of potential conflicts: When a developer tries to check out a file it might be reserved by another and you are prevented for continuing.

"We must talk!"


This approach obviously does not scale very well, if you are more than two on the shared stream you'll probably be better off using a team stream.

When one developer on the shared stream wants to deliver his work to the others on the stream, it's actually not a traditional UCM deliver process that is needed. It's even simpler. As soon as the developer checks-in all the files that he wants to deliver (and leaves out the ones that he does not want to share yet), the other ones on the stream just needs to update their views - assuming they are using snapshot views.

Essentially this pattern is the equivalent of using commits in tools that supports commits at repository level (e.g Subversion, git, Bazaar, Mercurial ...).

How to set it up

In UCM the easiest way to set up a shared stream is to go to the ClearCase Project Explorer, browse to the stream you want to share and right-click on it and simply pick the option Create view.

In base ClearCase you'll not be sharing a stream - but a branch - and you can accomplish that simply by using the same config spec in both views (which is essentially the same thing as what UCM does).

Do The Right Thing

Don't fall for the temptation of using unreserved checkouts.

Do not prefix the shared stream with your userID, since it's not actually personal.

See also

Degrees of isolation
Comments