Choosing between UCM and base ClearCase

前端 未结 2 2000
傲寒
傲寒 2021-01-07 11:38

Which one is better? UCM or base ClearCase?

For paralel development, do we need UCM? Is using manual branching is error prone on base ClearCase?

Is serial de

相关标签:
2条回答
  • 2021-01-07 11:40

    One is not better than the other, UCM represents a different set of best practices that you can choose to apply on top of base ClearCase.

    UCM is great at defining a coherent set of files (the UCM "component") that will be:

    • branched in the same branch
    • labelled ("baseline") as a all (all the files receive an immutable label)
    • referenced by other streams (list of baselines)

    Parallel development can benefit from UCM because of the streams you can set-up in advance, in order to define your merge workflow. You don't impose anything, but if you finish a development effort on a sub-stream, the natural merge to do is a "deliver" to the parent stream. (As opposed to base ClearCase, where there is no "hierarchical organization" for branches: once you finish a task in a branch, you can merge your work to any other branch: there is nothing to remind you what could be a natural candidate branch for your merge).

    But the other advantage is the definition of a configuration, i.e. the exact list of baselines (labels) you need to get in order to "work" (compile, or develop a new feature, or deploy, or refactor, or...).
    Depending on the number of components you have to deal with, you will then adopt:

    • a system approach: every component is modifiable
    • a component approach: one component modifiable, the others non-modifiables: you only develop in one set of files, and use the others at a fix label for your compilations.
    0 讨论(0)
  • 2021-01-07 11:48

    May I just add...

    It really depends on the size and complexity of the development team working on the same project. For example, we have a large dev team consisting of 100s of devs from all over the world, and this team really benefits from all the features that UCM provides (as mentioned by master VonC above).

    On the other hand, most of the teams in my organization are around 10 people, and they are all co-located at one location, and these teams really do not want to mess around with the deliveries and merges, so they choose to simply use base CC with basic branching strategy, e.g. one Integration/Release Branch, followed by each dev branch for each release, or personal dev branch. For smaller teams, we usually recommend them to use base CC because it is easier to manage.

    Hope this helps.

    0 讨论(0)
提交回复
热议问题