Source control
The source control component of Rational Team Concert (RTC) is a component-based version control system that is built on the Jazz platform. It supports geographically distributed teams and has strong support for parallel and agile development. It is built from the ground up to support a highly-integrated collaborative development environment, integration with defect tracking, integration with builds, and process-centric automation. With these other software engineering aspects in mind, the source control component is flexible to accommodate different programming practices, such as component-driven development or feature-driven development. For an overview of the basic workflow, you can read Getting Started with Rational Team Concert Source Control.
The following are aspects of the source control functionality:
- Change sets
- Components
- Streams and workspaces
- Parallel development
- Integration with work Items and build
- Process integration
- Artifact history
- Code review
- Permissions
- Search
- Event notification
- Move and rename tracking
- Distributed development
- Dashboard contribution
Change sets
The unit of change in RTC source control is the change set, which provides atomic changes to a set of files and folders. Change sets are the base currency and can be shared through streams and work items.
Components
Instead of combining all of your change sets in the same namespace, components provide an additional composition mechanism to organize work in the same repository. Files are grouped into change sets which belong to a specific component, and components are grouped into streams.
Streams and workspaces
Rational Team Concert source control was designed for development across multiple streams or branches. Teams or projects own a set of streams that provide a simple mechanism for sharing change sets between team members. Streams can be created easily for ad hoc collaborations and they can be created from builds to reproduce shipped products. In addition, streams provide an efficient scaling mechanism where teams of teams can be isolated and flow their changes into stream hierarchies as integration is needed. Individual users do their work in a repository workspace, which, in essence, is a personal stream.
Parallel development
You never have to remember to tag or label files in order to patch or start a maintenance line. Several levels of built-in parallel development exist to make it easy to isolate your work or your team’s work, as needed.
- Repository workspaces provide constant isolation. You don’t have to make your changes visible to the team just to back up or use the repository features.
- Suspend and resume provide task-level isolation for personal work. You can suspend your active work if a higher priority task comes along and then resume it later.
- Work item or change request links provide lightweight task-level isolation for personal or team work. Work on a feature, attach to a work item, and discard from your workspace. You or someone else continues the work by accepting the change sets back into their repository workspace.
- Streams provide the team with the ability to share changes internally while being isolated from other teams.
- Locking provides selective isolation. By locking files in the stream, users can avoid merging, therefore maintaining isolation from the team at a fine granularity.
- File and folder read permissions provide full control over read access based on teams and roles.
The Pending Changes view is the main client view for performing parallel development and sharing changes sets.
Integration with work Items and build
One of the most powerful aspects of Rational Team Concert source control is the integration between the different tools that make up Rational Team Concert. Here are some examples:
- Traceability links between work items that define the requested enhancement, defect fix or other task to one or more change sets that satisfy the request.
- File change annotation allows you to easily see what work item is related to each line in a file.
- Links between changes and builds provide the ability to see the progression of the changes through your build chain.
- Links between build results and stream snapshots allow you to easily see what new changes were included in a build so, for instance, it is easy to determine what changes might have caused your build to fail.
Process integration
Rational Team Concert provides the ability to integrate aspects of your organization or team’s process into the tool itself and the source control tool makes use of this capability to help you control aspects of how your code is shared. More details about this are available in Source control process recipes for Rational Team Concert.
Artifact history
An important aspect of a source code management system is the history of the artifacts. Rational Team Concert source control provides the following histories:
- File history in a workspace, stream, baseline, or repository
- File line annotation
- Component history in a workspace, stream, or baseline
- Operation history of streams and workspaces
- Component baseline history
The file history includes a graph of the merge tree for the file.
Code review
Code review is an important practice in software development. Rational Team Concert source control provides a rich code review feature that integrates the code review activity into the work item life-cycle using the process integration support of RTC. See Rational Team Concert Code Review for more details.
Permissions
Rational team Concert source control provides several mechanisms for controlling access to artifacts that are stored in the repository. Controlling access to source control artifacts in Rational Team Concert provides more detail about these mechanisms.
Search
Rational team Concert source control provides a rich set of search capabilities. You can search for workspaces, streams, and components by owner or name, the snapshots for a stream, baselines for a component, change sets that match various criteria, files in a stream, or locked files. You can also determine what streams contain a particular change set (watch the locate change sets video).
Event notification
Deliveries fire an event notification so that team members can be aware of work that is being done in relevant streams. The event is presented as a toast popup when it is discovered and past changes can be reviewed in the Event Log.
Move and rename tracking
There is full support for tracking file renames and moves, in addition to support for merging structural conflicts.
Distributed development
Teams can choose to replicate changes to separate RTC servers to allow for source code to be mastered in multiple locations for availability purposes. By replicating change sets between servers, administrators have some additional flexibility as to how teams can work with source code as their products and requirements change over time. More details are available from Flow changes cross repositories with Rational Team Concert.
Dashboard contribution
A dashboard viewlet can be configured to show the amount of source control activity that is happening over time. Monitoring this dashboard can help identify trends, such as the pace of changes slowing down as a stream stabilizes for release.