3

We're performing a delivery from our Developer stream to the Integrated stream that we share - this process allows our build team to construct our application from the Integrated view. This is for a Java application.

There are several activities that were never delivered to the Integrated stream - old changes that were never desired by the users.

We're planning to do a deployment, and it is becoming increasingly difficult to discern which activities should and should not be deployed (we are already taking steps to improve our Activity Naming convention). So we're planning to deploy all checked-in activities, on the assumption that our current environment in DEV is an acceptable deployment for our TEST team.

I have a few questions regarding how ClearCase would handle such a delivery.

  • How does ClearCase handle two activities that are being delivered at the same time that have both made changes to the same Class object?
  • How would ClearCase handle an old activity being delivered with class chages where a newer activity has already made changes to that class and rendered it obsolete?
  • What differences between two versions of the same class would trigger a "Merge Difference"?
1

How does ClearCase handle two activities that are being delivered at the same time that have both made changes to the same Class object?

The first deliver will checkout with a lock the file. As long as the deliver isn't fully complete (and the file checked in), the second concurrent deliver would not be able to complete (that file will have an error associated to it, because it would not be checked out)

How would ClearCase handle an old activity being delivered with class changes where a newer activity has already made changes to that class and rendered it obsolete?

It depends on the lsvtree (graph of version tree): any merge arrow on the same branch from a more recent version would make the merge for that older version pointless (and actually skipped)

What differences between two versions of the same class would trigger a "Merge Difference"?

ClearCase applies a classic 3-ways merge on text file (for the normal text file driver), so any concurrent modification on the same lines would trigger a non-manual merge with merge differences.


For example, if I work on something, check it in, but never deliver it - then my co-worker checks in and delivers a different change - and after that, I attempt to deliver my older change

That is possible is both check-ins were done on different branches, in which case each deliver will bring its own modification. The fact that an "older" version is merged is not relevant.

  • I'm not sure I understand your first explanation - I'm asking about what happens when an activity has already been delivered, and what happens if an older change that was not delivered then attempts to deliver those changes. For example, if I work on something, check it in, but never deliver it - then my co-worker checks in and delivers a different change - and after that, I attempt to deliver my older change. – Zibbobz Mar 3 '17 at 20:43
  • @Zibbobz my first explanation was about two deliver being done at the same time – VonC Mar 3 '17 at 22:09
  • I see...so it would attempt to deliver one, lock the file, and when it tries to deliver the next change, it would fail? That...doesn't sound right to me. I've used ClearCase a bit, and I know that even though it makes you select Activities when doing a deliver, when it delivers the changes it just uses the class objects. – Zibbobz Mar 4 '17 at 3:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.