用户帮助 > 在更改包中对工作单位进行分组 > “应用更改包”概述 > 使用“应用更改包”回填列表
  
使用“应用更改包”回填列表
如果要应用的更改包与其他更改包相关,则“应用更改包”命令会向您呈现一份包含所有所需更改包的回填列表。下列示例说明了回填列表在“应用更改包”命令中的工作方式。
在“应用更改包”操作中,您必须接受整个回填列表,否则操作将失败。如果您不想接受整个回填列表,则必须改为执行“重新同步更改包”操作。借助“重新同步更改包”命令,您可合并沙盒中不需要的修订版本。
* 
应用子项目操作时,不使用回填列表。您必须明确指定包含您想应用的子项目操作的所有更改包,或者为“传播子项目”选项选择“隐式”
使用回填列表来包括必需的以前修订版本
在此示例中,主项目 f:/Aurora_Project/project.pj 包含两个错误修复。项 21 解决了第一个错误修复,并且通过更改包 (CP) 21.1 与文件 main.c(修订版本 1.2)关联。项 22 解决了第二个错误修复,并且通过 CP 22:1 与文件 main.c(修订版本 1.3)关联。
构建管理员想要选取解决第二个错误修复的更改,并将这些更改应用至变型项目 Aurora_Variant_1_0。在变型项目中,main.c 的修订版本为 1.1。
应用需要回填的更改包之前
为了选取变型项目的错误修复,构建管理员使用 si applycp 命令来应用 CP 22 1。默认情况下,回填选项设置为“整个更改包”(--backfill=cp)。构建管理员输入命令:
si applycp -P f:/Aurora_Project/project.pj --devPath Aurora_Variant_1_0 22:1
该命令运行如下:
Applying change packages...
22:1
The following warnings have occurred:
-------------------
The change package(s)
21:1 -- main.c(1.2)
are required in order to apply this list of change packages.
They will be automatically added to the list, since the backfill
option is set to Entire Change Package(cp).
--------------------
*** The following set of operations will be performed:
Project: f:/Aurora_Project/project.pj[Aurora_Variant_1_0]
Member main.c: update member revision to Revision 1.3
Are you sure you wish to proceed? [yn](n): y
如果选择继续,则您会收到一则通知,其中列出已处理的更新以及任何未处理的更新。
“应用更改包”会将变型项目中 main.c 的修订版本从 1.1 更新到 1.3。修订版本 1.2 会自动添加至变型项目,因为它已作为回填列表 (CP 21:1) 的一部分接受。
应用需要回填的更改包之后
使用回填列表来包括新文件
本示例说明了“应用更改包”如何处理更加复杂的更改包 - 包含与新文件相关的代码修改的更改包。在本示例中,main.c 已修订为调用在新文件 main.h 中定义的值。
处理代码的开发人员已检入所有这些更改,并将这两个文件都与 CP 22:1 关联。开发工作随后会机会包含对 main.c 的进一步修订,该修订会在修订版本 1.3 中检入,并且与 CP 23:1 关联。因此,主项目将包含 main.c 修订版本 1.3 和 main.h 修订版本 1.1。
应用包含关联文件的更改包之前
构建管理员现在想将更改合并到变型项目中。因此,构建管理员使用“应用更改包”命令,将 CP 23:1 应用至 Aurora_Variant_1_0。这会将 main.c 更新至修订版本 1.3,并且添加 main.h 修订版本 1.1。
应用包含关联文件的更改包之后
使用回填列表来仅应用回填修订版本
“应用更改包”的默认回填选项是传播指定更改包所需的所有条目,包括回填列表中的任何更改包的所有条目。但是,在特殊情况下,您可能想要使用“仅限回填修订版本”进行回填。此选项只会基于直接关联的修订版本更新目标环境。此选项不会处理与中间修订版本关联的所有更改包。
例如,如果您在前面一个示例(“使用回填列表来包括新文件”)中选择了“仅限回填修订版本”选项,则 main.c 仍会更新为 1.3,但 main.h 不会传播,因为它是回填更改包中的条目。
如果您正在传播用来收集信息并因此可能会受所有更改影响的文件,此选项将非常有用。在此情况下,您只对最新的修订版本感兴趣,由于对相关文件的所有更改造成的基础更改不在此列。