What is the difference between “Deliver to Alterna

2019-05-29 19:17发布

In my project we have situations where we branch off from some Mainstream for important milestones like Beta and Release Candidates.

Once we ship the builds to customers, we merge code back to mainstream. This is a simple delivery operation without a rebase.

Now, there are also scenarios when we need to merge some very old stream(almost obsolete) to the Mainstream. I have found two options available:

1)Deliver to Alternative Target

2)Merge Manager

The option 1) is not allowed in our project.

My question is:

What is the difference between the two and why should one be preferred over the other?

1条回答
甜甜的少女心
2楼-- · 2019-05-29 19:44

Simple:

  • deliver to alternate target (or deliver to default for that matter) is an UCM merge, which must follows UCM rules, in particular regarding activity dependencies, but also regarding Stream (you shouldn't deliver from a parent Stream to a child Stream, that should be a rebase)

  • Merge Manager is a plain ClearCase merge, between two branches (and not Streams), which can deliver any subset of files from branch A to branch B, without having to follow any merge workflow.

I usually see "Merge Manager" chosen for the case where UCM prevents the deliver because of an arcane "activity dependency" reason, even where there is none.
See "Clearcase UCM - Cross delivering vs. delivering upwards?" for an example of such a case.

Saying the "deliver to alternate target" isn't allowed, means that only deliver to default is, which means you have to follow the merge workflow established by the hierarchy of Streams.
An UCM merge bring a better visualization of merges between baselines, which means you know all the files a given component have been merged.

However, a Merge Manager being a plain merge, it can involve any two branches, and any two (or more) files. There is no higher visibility for that merge: it is a file-by-file operation (instead of a component -- or coherent set of files -- one).

查看更多
登录 后发表回答