Clearcase UCM中完整基线和增量基线有什么区别?

4
我已经为我的发布应用了一个完整的基线,例如:“MYProj_2.0.0.20”。
然后测试团队发现了一些重大问题。为了解决这个问题,开发团队提供了一些更改。
在完成构建之后,我再次应用了相同的基线“MYProj_2.0.0.20”,但这次我应用了增量基线。根据UCM的规定,基线“MYProj_2.0.0.20”变成了“MYProj_2.0.0.20.3452”(末尾的一些随机数字使其唯一)。
现在,如果我将“MYProj_2.0.0.20.3452”视为发布基线,它会包含所有更改还是只有更改(即“MYProj_2.0.0.20”和“MYProj_2.0.0.20.3452”之间的增量变化)?
请给我解释一下。
1个回答

4

它将包含所有更改。

除了增量基线会通过添加以下内容来计算这些更改:

  • 由少量更改引入的独特修改(即“增量基线”:仅在自上一基线以来的新版本上设置标签集)
  • 之前基线所引用的所有其他更改,直到完全基线为止

请参阅 "基线类型":

  • 全部基线是通过记录组件根目录下所有元素的所有版本来创建的基线。
  • 增量基线是通过记录最后一个完全基线和自上一个完全基线创建以来发生更改的元素的版本来创建的基线。

我总是更喜欢完整的基线:如果你的最后一个基线是完整的,所有增量操作(如“与另一个基线比较”)都会更快。此外,支持增量基线的论点是它们创建速度更快(因为要放置基线的版本数量较少)。但是,如果您的UCM组件太大,以至于在所有版本上放置标签太长,那么可能首先您的组件就太大了。

请注意,您始终可以将增量基线升级为完整基线。

还请注意,您有以下区别:

(这里还有“检查点基线”,详见“关于ClearCase基线的说明”,由交付和重建操作自动创建,但现在您不需要考虑这些内容)

  • 基线的标题(例如 "MYProj_2.0.0.20":您可以创建任意多个 "MYProj_2.0.0.20" 的基线)
  • 基线的标识符(始终唯一:如果 "MYProj_2.0.0.20" 已被使用,则 ClearCase 会在末尾生成一些数字,如 "MYProj_2.0.0.20.3452")

增量基线的另一个优点是它们往往占用元数据的空间更少。因此,在大型开发项目(因此也是巨大的UCM组件)中,每天进行5年以上的基线+构建,这在管理VOB大小方面会产生很大的差异。 - Pulak Agrawal
每次我遇到这种问题,我都会立即将那个庞大的组件中的一部分提取出来放到一个新的组件中。 "庞大" 的组件违背了 UCM 组件的目的,即定义一个连贯的文件集:它的大小必须被控制在合理的范围内。 - VonC
@PulakAgrawal 话虽如此,你的评论说明了ClearCase的一个主要缺陷。它。不。可。扩。展。 - VonC
这里是:"基线类型"(Types of Baselines)的链接已损坏。 - javaPlease42
@javaPlease42 谢谢。我已经相应地编辑了答案。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接