1

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.

sceaj
  • 1,573
  • 3
  • 12
  • 24

1 Answers1

0

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?".

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • thanks for your answer. In my previous use of base Clearcase, we used the approach I'm propsing all the time A_Int --> A'_Int --> dev_A'_Int. The advantages I see are that it allows parallel development of A_Int (the main product) and A'_int (a large feature/change). The dev branches allow developers to checkout/in freely without getting in each others way and sharing their work with others when they choose. Why do you say this is an anti-pattern? – sceaj Dec 22 '17 at 15:44
  • I have updated my question to show that the first delivery does not go to A_Int. If I understand your recommendation, all of the developers would be working in the same dev stream, so for example, if 2 of them wanted to work on the same file, one of them would have to hijack or checkout unreserved. Is that correct? – sceaj Dec 22 '17 at 16:04
  • Okay, I read your answer that you linked - I think part of the problem is different terminology between base and UCM. My simple understanding is that stream = branch but that probably isn't correct. Also, creating a UCM view seems to imply creating a branch - is that correct? – sceaj Dec 22 '17 at 16:42
  • @sceaj I have edited my answer to address your 3 comments. – VonC Dec 22 '17 at 16:44