Clearcase 为什么不能从RTC中的流中创建新基线?

Clearcase 为什么不能从RTC中的流中创建新基线?,clearcase,rtc,Clearcase,Rtc,如果我右键单击存储库工作区中的组件,我可以选择在此组件上创建新基线 但是,如果我右键单击流中的组件,则创建新基线的选项不可用。基线必须始终针对repo工作区创建,因为它必须交付到流,并由在其各自repo工作区中处理同一流的其他协作者接受 这与快照不同,快照可以在流上创建,并且允许RTC中的用户和构建管理器对交付的代码进行“快照” 因此,快照和基线之间的区别在于: 基线必须在流中交付(即不直接创建) 快照用于标记已交付的内容(例如,用它初始化一个新流):没有用户会在其repo工作区中接受快照

如果我右键单击存储库工作区中的组件,我可以选择在此组件上创建新基线


但是,如果我右键单击流中的组件,则创建新基线的选项不可用。

基线必须始终针对repo工作区创建,因为它必须交付到流,并由在其各自repo工作区中处理同一流的其他协作者接受

这与快照不同,快照可以在流上创建,并且允许RTC中的用户和构建管理器对交付的代码进行“快照”

因此,快照和基线之间的区别在于:

  • 基线必须在流中交付(即不直接创建)
  • 快照用于标记已交付的内容(例如,用它初始化一个新流):没有用户会在其repo工作区中接受快照
具有启发性:

如果要将更改传递给开发人员,或者传递给构建,那么应该将这些更改传递到流,而不是创建快照。
开发人员(或构建人员)将只接受来自该流的更改

(这就是基线的来源:对于每个组件,它们允许流动一组冻结的更改)

快照的目的是记录历史中的一个点,因此您可以“跳转到它”(例如,复制旧配置),而不是作为流动更改的机制

这与ClearCase UCM不同,因为“流”既用于公共协作空间(如“集成”流),也用于用户工作区(如“开发流”)。
基准是记录历史上的一个点,以及流程变更(通过交付/重新基准)。
RTC引入了两个独立的环境:

  • 团队协作完成给定开发工作的全局流程:流(及其快照)
  • 用户一个,用于每个用户管理其更改:存储库工作区一个(每个组件有其基线)

谢谢,因此从您的回答来看,这是正确的:我有一个名为“mystream”的流,我想为流中的一个组件创建一个新的基线。实现这一点的唯一方法是在存储库工作区内创建一个新基线,然后从此存储库工作区(其中包含新基线)创建一个新流@user470184 nope。您可以在repo工作区中创建新的基线,并将其交付到流。您不需要创建新流。@当您创建一个新流并希望使用另一个流中发布的(多个)组件基线对其进行初始化时,user470184快照非常有用。您可以在源流上创建一个快照,并在新创建的(但仍然是空的)流上添加该快照,而不是痛苦地添加每个基线:在一个操作中,您可以恢复所有组件及其各自的基线(如源流上所示)。在这种情况下不涉及回购工作区(流创建和初始化)。好的,因此当我在回购工作区中创建新快照时,此更改将显示在“挂起的更改”中,当我交付所述更改时,此工作区流向的流将接收所述组件的新基线并将被更新。这是否正确?@user470184,是的,您可以从repo工作区创建快照(或直接在流上创建快照)。区别在于:repo工作区上的快照将捕获可能尚未交付的基线。这就是为什么RTC说,当您交付快照时,流将由所述基线更新。