Blogs about Jazz

Blogs > Jazz Team Blog >

EclipseCon 2008 Report: Jean-Michel Lemieux on “Source Control in Jazz”

(Note – this is part of a series of posts on Jazz-related activities @ EclipseCon 2008. See this entry for background.)

Presenter: Jean-Michel Lemieux (Jazz Source Control Lead)
Talk: “Source Control in Jazz”
Reporter: Jim des Rivières

Jazz SCM is a modern source control system based on change-sets. Team members make changes to files; these changes are collected into change-sets; the change-sets are shuffled around and combined to form change histories. In effect, change-sets are the currency in which the team members trade. Pass me the change-set with your fix for bug 12345? Let me deliver my change-sets to the stream. What change-sets made it into the latest build? Jazz exposes the essential functionality of a source control system, without the traditional SCM jargon, such as “branches”, that tends to scare users. It was designed to make parallel development really simple. It has a notion of component, each with its own change history. Components allow scaling up to teams of teams. Jazz also plays well with others. The Subversion co-existence story allows Subversion to be used with Jazz work items and builds and supports bi-directional linking. And the ClearCase connector component allows synchronization between ClearCase and Jazz SCM.

Jean-Michel, or J-M for short, then demoed the Rational Team Concert client plug-ins installed into an Eclipse Platform 3.4 and CDT (just to make the point that Jazz is language-neutral and independent of JDT). He noted that, unlike past years, everything he’d be demoing can now be downloaded from He imported a pre-created CVS change-set archive file into a Jazz repository workspace. He then showed that each of the change-sets in the history could be inspected, with the delta shown in the Eclipse compare editor. He then loaded the repository workspace into his Eclipse workspace, and pointed out that the team had made every effort to make that operation fast. He showed how to discard change-sets from the repository workspace, and to cherry pick change-sets from other baselines and streams. The Eclipse workspace is automatically kept in sync with the repository workspace.

Team members deliver change-sets to a stream to share them with the team. Conversely, they accept change-sets from the stream to catch up with the rest of the team. When a conflict arises, the Pending Changes view shows the change-sets as unresolved. The conflict information is stored persistently on the server. Team members can inspect and resolve the conflicts; the UI for doing this is with a non-modal.

J-M concluded by promising to continue the demo live in the 8pm Jazz Live session.