About change sets

A change set is a repository object that collects a related group of file, folder, and component modifications so that they can be applied to a flow target (workspace or stream) in a single operation.

The change set is the fundamental unit of change in Rational Team Concert™ source control. The contents of any workspace, component, or stream can be expressed as a collection of change sets, beginning with the one created when the initial set of projects was checked in. A change set can include changes to the contents of individual files and changes to a component namespace (such as delete, rename, and move operations). A small change set might modify a few lines in a single file. A large one could include changes to the contents of many files, changes to file names, folder names, and folder contents. By grouping related changes and then applying them as a unit to a workspace or stream, Rational Team Concert source control guarantees that such groups of changes are made together or not at all.

Change set scope and contents

A change set cannot include changes to more than one component. A change set cannot include changes that have not been checked in. (Such changes accumulate in the component's Unresolved folder, visible in the Pending Changes view, until you either check them in or undo them.) Each component in a repository workspace has zero or more active change sets. If you have multiple components in a workspace, separate change sets are created for each component.

Each change set records two states, called the "before" state and the "after" state, of one or more versionable items (files or folders in a repository workspace). The before state represents the item before any changes have been made. The after state represents the item after all of the changes have been made and the change set has been marked complete. Intermediate versions, such as changes that were checked in between the two states, cannot be retrieved from a change set. Applying a change set to a workspace or a stream changes all of the items in it from the before state to the after state.

A file or folder in a component cannot be part of more than one active change set. When a file or folder is included in an active change set, all changes to it become part of that change set whether or not the change set is current, and changes to that file or folder cannot be explicitly checked in to a new change set until the active change set that includes it is completed.

Change set life cycle

A change set is created implicitly the first time you check in a file or folder in a workspace where no change sets exist. You can also explicitly create an empty change set and add items to it by checking them in or moving them from other open change sets. Every component in a workspace has a notion of a current change set; this is the change set in which all check-ins accumulate by default. Any change set that has not been completed can be modified by operations such as checkin, move, undo, and remove, and is said to be an active change set. Active change sets cannot be shared with other repository workspaces because they are not stable. In any workspace, there can many active change sets for a component, but only one can be the current change set.

Every time you check in a change, the change becomes part of your workspace's current change set. Unless you specify otherwise, all check-ins continue to accumulate in this change set until you complete it or make a different change set current. You can direct any check-in to a different change set (not the current one), however, changes to a given item (file or folder) can appear in only one of a component's active change sets. After an item has become part of an active change set, all changes to the item accumulate in that change set as long as it remains active.

An active change set remains open, able to accumulate new changes, until you either deliver it or mark it complete. Delivering a change set automatically marks it complete. A completed change set cannot be reopened. Any time before a change set is completed, you can move individual changes into or out of it. Changes can be moved among existing change sets, or between existing change sets and new change sets. Change set metadata such as name and work item associations can be modified regardless of whether the change set is active or complete, because such changes do not affect the workspace configuration.


Feedback

Did this help? You can provide feedback at Jazz.net (registration required): Comment in the forums or submit a bug