变更集是一个存储库对象,它收集一组相关的文件、文件夹和组件修改,以便可以通过单一操作将它们应用于流向目标(工作空间或流)。
变更集是 Rational Team Concert™ 源代码控制 中的基本变更单元。任何工作空间、组件或流的内容都可以表示成一组变更集,其中的第一个变更集就是先前检入初始项目集合时创建的变更集。一个变更集可以包含对各个文件的内容所作的变更以及对组件名称空间所作的变更(例如删除、重命名和移动操作)。小型变更集可能只修改单一文件中的少数几行内容。大型变更集可能包括对许多文件的内容所作的变更以及对文件名、文件夹名和文件夹内容所作的变更。通过对相关的变更进行分组然后将它们作为一个单元应用于工作空间或流,Rational Team Concert 源代码控制 就可以确保同时进行或同时不进行这些变更。
变更集不能包含对多个文档所作的变更。变更集不能包含尚未检入的变更。(此类变更在组件的未解决文件夹中累积并显示在暂挂的变更视图中,直到您将其检入或撤销为止。)存储库工作空间中的每个组件都包含零个或多个活动变更集。如果工作空间包含多个组件,那么将为每个组件创建不同的变更集。
每个变更集都记录一个或多个可版本化项(存储库工作空间中的文件或文件夹)的两个状态,这两个状态分别被称为“先前”状态和“后续”状态。先前状态代表进行任何变更前的项。后续状态代表进行所有变更并将变更集标记为“已完成”之后的项。您无法从变更集中检索中间版本(例如在两个状态之间检入的变更)。将变更集应用于工作空间或流时,将使其中所有的项从先前状态过渡到后续状态。
一个组件中的文件或文件夹不能属于多个活动的变更集。当一个文件或文件夹包含在一个活动的变更集中时,无论此变更集是否是最新的,对此文件或文件夹所作的所有变更都将包含在此变更集中。并且,在完成包含这些变更的活动变更集之前,不能将这些变更显式检入到新的变更集中。
您第一次检入工作空间中的文件或文件夹时,如果不存在任何变更集,那么将以隐式方式创建一个变更集。您也可以显式地创建空变更集,然后通过检入项或者从其他已打开的变更集移动项对该变更集添加项。工作空间中的每个组件都有“当前变更集”这一概念;缺省情况下,检入的所有内容都在此变更集中累积。任何尚未完成的变更集都可以被诸如检入、移动、撤销和除去之类的操作修改,并且被称为“活动变更集”。活动变更集不稳定,因此无法与其他存储库工作空间进行共享。在任何工作空间中,一个组件都可以有多个活动变更集,但只有一个变更集可以是当前变更集。
每次检入变更时,该变更都将成为工作空间的当前变更集的组成部分。除非另行指定,否则检入的所有内容都将继续在此变更集中累积,直到您将其完成或者将另一个变更集设置为当前变更集为止。您可以将任何检入内容定向到除当前变更集以外的另一个变更集,但是,对给定项(文件或文件夹)所作的变更只能在其中一个组件的活动变更集中出现。在一个项成为活动变更集的组成部分后,只要该变更集保持活动,对该项所作的所有变更都将在该变更集中累积。
在您交付活动变更集或者将其标记为“已完成”之前,活动变更集将保持打开并能够累积新变更。交付变更集会自动将其标记为“已完成”。已完成的变更集不能重新打开。在完成一个变更集之前,您可以将各个变更移入或移出该变更集。可以在现有变更集之间移动变更,也可以在现有变更集与新变更集之间移动变更。您可以对变更集元数据(例如名称和工作项关联)进行修改,而不必考虑该变更集是处于活动还是已完成状态,这是因为,此类变更不影响工作空间配置。