依赖关系是帮助理解冲突的一个关键概念。在某种依赖关系中,假设 bar.c-1 与任务 12 关联,bar.c-2 与任务 25 关联,bar.c-3 与任务 37 关联,bar.c-4 与任务 48 关联。 因此,bar.c-4 不仅包含任务 48 中的变更,还包含任务 37、25 和 12 中的变更。
依赖关系如何影响项目配置? 如果项目包含 bar.c-3,那么它是否包含任务 37?是。但它也包含任务 25 和 12,因为 bar.c-3 包含前趋变更。如果任务 37 在项目的更新特性中,而任务 25 不在,会怎么样?这就符合冲突的定义:项目发生更改,但是更新特性未发生更改。
到目前为止,bar.c 的示例是一维的。如果考虑到每个任务可与其他对象版本关联,依赖关系就会变得更加复杂。 例如,假设任务 37(与 bar.c-3 关联)也与 main.c-6 关联。如果 bar.c-3 或其后继之一包含在项目中,那么 main.c-6 或其后继之一也应包含在项目中。此外,与 main.c-6 的前趋关联的任务包含在项目中,因此它们的其他关联项目也包含在内。Rational® Synergy 会分析历史记录和任务关系,以根据依赖关系确定已包含哪些变更,以及要包含哪些变更。
您的项目基于另一个称为基线项目的项目。基线项目包含对其成员对象的较早版本的所有变更。Rational Synergy 只需根据当前项目和基线项目之间的差异来查找冲突。因此,冲突分析对每个项目成员的回溯最远只到位于基线项目中的版本。