sceaj
sceaj

Reputation: 1643

Clearcase UCM Create Feature Stream for Shared Development

Background: First of all, I'm in over my head, I have worked with base Clearcase at least 7 years ago but I'm new to UCM. In my new position there doesn't seem to be much/any SCM support (they lost some resources) IT maintains Clearcase but isn't able to provide much support on development process.

Problem: I'm trying to create an environment where 2 or 3 of us can work on a feature that has a separate stream that we can merge into the integration stream when we're ready. (We want to each have our own dev streams so we can checkout/in at will and also not impact other development work that is going into the integration stream)

I tried to "Create Project..." and I was able to create project with it's own integration stream (and when I join the project I am able to create my dev and int views). Let's call the base project A and the project I created A'. I'm able to checkout from A' and deliver to the A'_int stream/view. But when I try and deliver from A'_int (hopefully going to A_int) I get a message "nothing to deliver" (although it does correctly identify my integration view for A).

The version tree looks like this:

main
 |
 0 -- A_int
       |
       0
       |
       ...
       |
       x -- sceaj_A'-- A'_int
              |           |
              0           0
              |           |
              1 --------> 1

In base clearcase the version tree would have looked like:

main
 |
 0 -- A_int
       |
       0
       |
       ...
       |
       x -- A'_int
              |
              0 -- sceaj_A'
              |      |
              |      0
              |      |
              1 <--- 1

and then I could merge back to A_int.

So, what should I do to get this to work in UCM? Is the problem that I simply can't do this in UCM as a regular user? Is this even the right approach or is there a different "UCM way"?

Update: Here is the actual branch structure. branch structure. Version 282 is on A_Int, iip_core_1.0.0_tr_Integeration is A'_Int (feature branch), and jr..._iip_core_1.0.0_tr is my dev branch. This structure was created by "Create Project...", but I suspect that isn't what I wanted.

Upvotes: 1

Views: 113

Answers (1)

VonC
VonC

Reputation: 1323753

Actually, the first deliver is already delivering to A_Int.

A ClearCase UCM view (as seen here) is created per developer (which I always found an anti-pattern when working on a common feature, because of the all deliver/rebase constant workflow each developer has to do in order to benefit from a colleague's work) in a sub-stream of A_Int.
Once you are delivering (merge from a sub stream to its immediate parent stream by default), you are merging to A_Int)

Note: I prefer creating only one Dev stream, and multiple UCM views (one per developers) on the same stream: no need for deliver/rebase cycles: each developer can detect on checkin the merges to be done if they were working on the same files.
Once the checkings are all done, someone can create a baseline on that Dev (sub-)-stream and deliver that to A_Int.

In your case, it appears the dev branch was done from the same foundation baseline as the feature branch.
It is better to create a baseline on the foundation branch, then use it for creating the dev branch, before delivering from dev to feature, and from feature to Int.

In any case, try in your case to make a baseline on feature, and try to deliver that to see if that works better.

Also see "Difference between branches and streams in ClearCase?".

Upvotes: 0

Related Questions