使用共享项目时,以下类型的并行开发很常见。
存在对象的并行版本,原因是两个或多个开发人员必须同时更改相同的对象。单个对象检出到多个用户。
存在项目的多个版本,原因是需要两个或多个发行或平台。
开发人员可检出共享项目的工作版本以执行并行开发,或使用项目的隔离版本。项目的工作版本提供开发人员所需的隔离。共享版本允许其他开发人员继续处理其项目。
例如,如果正在使用共享项目并且进行的更改需要几天时间才能完成,您希望阻止其他开发人员进行更改以免干扰您的工作。则检出共享项目的工作版本,而不是使用共享项目。项目检出操作将创建与原始项目具有相同成员的工作项目。新检出的工作项目包含可视和共享对象。要维护隔离的区域,必须从工作项目中移除可修改的对象。
要检出共享项目的工作版本,请执行以下步骤:
这四个步骤确保您的工作项目不会受到更改。执行更新时,项目中不再有可视和共享对象。
在工作项目中完成所有更改后,构建管理员将更新共享项目以引入更改。
您可能具有不同状态的共享对象的若干并行版本,并且这些版本可能支持多个平台或发行。
例如,共享项目 airplane-hp_2.0s(HP 平台上的 airplane 发行版 2.0)可能具有并行项目 airplane-hp_3.0s(更高版本)、airplane-hp_1.0p1(先前版本的补丁)以及 airplane-aix_2.0s(当前版本的不同平台)。版本 hp_2.0s 为共享,但是其他并行项目不需要共享。在此示例中,airplane-hp_1.0p1 必须处于 prep 状态,具有一系列补丁要交付。
共享项目的层次结构是使用 platform 和 release 属性进行维护。继续上一个示例,假设 airplane 项目由子项目 wing、fuselage 和 rudder 组成。更新 airplane-hp_2.0s 时,必须选中 wing-hp_2.0s,而不是 wing-hp_3.0s。release 属性识别每个子项目的匹配版本。
然而,如果对于相同的平台和发行具有多个共享项目层次结构,那么更新操作可能选择错误的子项目版本。要避免此行为,请使用唯一的项目用途来检出具有相同平台和发布标识值的层次结构。
例如,以下项目用途列表支持 airplane 项目的共享项目的三个独立层次结构:一般用途共享项目、针对结构工程师团队的共享项目以及针对电子工程师的共享项目。
Shared: shared:
Shared - structural: shared: structural
Shared - electrical: shared: electrical
这三个团队使用单独的共享项目。不需要为所有三个团队创建 airplane 项目的版本。这三个项目层次结构都可以定期更新以保持同步。每个团队可以决定从其他团队引入更改的频率。