当您执行更新时,基线可用作搜索新变更的起点。您还可以将两个基线进行比较,以查看相对于特定构建所做的更改。如果使用 Rational Change,那么您可以使用基线来生成变更请求报告。
通常,构建管理员会创建基线;开发者不创建基线,因为他们无法使构建对于其他用户可用。
在执行构建后,您可能会创建基线。您可以创建基线,使其可用于测试组,但不可用于所有开发者。如果您以后需要为构建创建修订,那么在数据库中保存构建说明时创建基线。
为每个集成测试和系统测试构建创建基线,可帮助测试者和开发者引用已用于创建构建的变更集。通常,您会为同一发布标识和用途中的所有项目创建基线。例如,为使用该发布标识的所有集成测试项目的每个集成测试构建创建基线。
基线可供流程规则用于为使用该模板的项目定义基线。例如,构建管理员可能会创建名为 Integration Build 20040913 的基线,其中包含静态项目 toolkit-int_20040913 和 calculator-int_20040913 等。数字指定表示基线的创建日期 (yyyymmdd)。
流程规则指定其项目使用特定基线。引用该流程规则的项目使用基线来标识在更新时要使用的基线项目。例如,当前发布标识的集成测试流程规则指定要使用 Integration Build 20040913 基线。名为 calculator-bob 的开发项目选择 calculator-20040913 作为其基线项目。
使用基线有许多益处。
如何创建新基线
prep 状态的项目和静态项目均可添加到新基线。但是,如果将构建管理项目添加到基线,那么不会添加实际项目,而是会创建项目副本,然后将其添加到基线并进行检入。构建管理项目及其工作区按原样保留,以便不会导致不必要的重新构建。此外,针对作为构建管理项目成员的所有非静态产品,还会检出和检入新版本。新项目与构建管理项目具有相同成员。新项目和产品会检入到与基线用途关联的 member_status。如果 member_status 不是有效状态,那么会将项目和产品检入到集成状态。
例如,具有集成测试用途的基线包含处于集成状态的项目和产品。
如果构建管理项目包含不是项目或产品的任何非静态成员,那么无法将其添加到基线。必须检入项目的非静态成员,然后才能将此类项目添加到基线。此外,无法向基线中添加其更新特性包含未完成任务的任何项目。
根据构建管理项目版本、日期以及追加的递增数字(如有必要使版本唯一),将会创建新项目或新产品版本。例如,如果项目 ccm_gui-sol_int 另存为基线的一部分,那么新基线项目变为与 ccm_gui-sol_int_20040709 类似。如果无法追加下划线、日期和递增数字(并且保持在 32 个字符限制内),那么仅会使用日期和数字。
创建基线后,“历史记录视图”链接会更改,以便构建管理项目看似从新基线项目中检出。项目历史记录会更新为使现有 prep 产品看似从为基线项目创建的产品中检出。
创建作为基线的一部分的新项目不具有工作区。如果您希望项目具有工作区,请在创建基线后启用工作区维护。在将具有可视工作区的项目添加到基线时,会检查该项目是否存在工作区冲突。如果发现任何不可解决的冲突,那么创建基线操作将失败。要解决此问题,必须协调项目。
如果将具有非可视工作区的项目添加到基线,那么可能尚未将最新构建的产品复制到数据库。在此类情况下,基线包含数据库中的内容,而不包含非可视工作区中的内容。要避免此问题,构建管理员必须将对于添加到基线的项目的所有非可视工作区的更改同步。将此类项目添加到基线之前,请完成此操作。
您必须以构建管理员身份才能创建或发布基线。您必须以 ccm_admin 角色才能删除基线或修改已发布基线的构建。
版本模板规范
version_template 是包含可选关键字且格式为 %keyword 或 %{keyword} 的任意字符串。关键字可以是任何 Rational® Synergy 属性、特殊关键字 %baseline_name 或特殊关键字 %date 和 %build。
当展开某个属性时,将使用所检查的构建管理项目或产品中的相应属性值。如果未找到指定关键字名称的属性或内置关键字,那么会使用空字符串来替换该关键字。
项目版本以及在创建基线后变为静态的产品版本会更新为与 version_template 匹配。但是,在创建基线之前以静态形式存在的项目未进行重新版本控制。例如,CM/6.5 SP2 基线通过来自 CM/6.5 SP1 基线的 20 个现有静态项目以及来自 CM/6.5 SP2 的五个新项目构建而成。仅五个新项目会进行重新版本控制。
如果基线中任何项目或产品的 version_template 实例包含版本字符串不允许的字符,那么这些字符将替换为缺省版本字符串替换字符。这在服务器 ccm.ini 文件中通过选项 baseline_template_repl_char 进行指定。此缺省字符为下划线 (_)。例如,如果 %platform 属于某个版本模板,并且构建管理项目具有平台 SPARC-solaris,那么版本字符串将包含字符串 SPARC_solaris。或者,如果 %release 属于某个产品版本模板,并且必备产品的发布标识为 CM/6.5,那么版本字符串将包含字符串 CM_6.5。
如果基线中任何项目或产品的 version_template 实例已用于该项目或产品的其他版本,那么版本将通过附加下划线 (_) 和使版本唯一的第一个整数(从 1 开始)来使版本独一无二。如果这导致版本字符串太长,那么将对该项目或产品使用基于当前日期的版本。此外,还会出现警告。
如果未指定 –version_template,那么会使用缺省(即已保存的)模板。
如果项目的工作区模板包括版本,那么将更新工作区。如果由于工作区不可见且未使用 -skip_nonvisible_projects 而导致工作区无法更新,那么操作将继续并报告所有错误。如果工作区可见,但由于其他原因(例如,缺少正确的文件许可权)而无法更新,那么操作将继续并报告所有故障。
版本模板的备用关键字语法
关键字语法提供基于关键字是否存在来修改其展开行为的方法。
要获取 solaris_7.0 或 7.0(根据平台是否存在),请指定:
%{platform:-}%{platform:+_}7.0
baseline 命令支持以下子命令。