We have to learn some basic concepts of Jazz Source Control to understand what’s going on in JazzHub. These concepts are:
- Change Set
- Repository Workspace
Overall flow of what’s happening in source control operations is depicted in this diagram.
Change Set: A “Change set” is a collection of folders/files which have been checked in to workspace. Change set has a comment as it’s title of name.
Repository Workspace: A “Repository Workspace” is a place holder of change set(s). When user check in the source codes, They move to workspace as a change set. This is also called repository workspace.
Steam: A “Stream” is a place to share source codes. It can be though as “trunk” or “master” branch. When change sets are verified, user issue “Deliver” operation. Then these change sets go to “Stream”. When change sets are moved to stream, the source codes can be shared with other developers though operation “Accept” and “Load”.
There is a notion of “Local Workspace(sandbox)” in the figure. This is the area where you work with Orion Editor. JazzHub Orion prepares disk space to work on source codes for you automatically as a sandbox. A “Project area” is a project holder where you have created. A “Component” is a place to actually store source codes.
Jazz SCM has two steps to share codes. Namely, “Check in” and “Deliver”. The use of these two operations are probably well-known to Git users where they issue “commit” and “push” operations to share codes. Having of two steps are also well-known over years among source control management or software configuration management practitioners to manage source codes very well. For example, ClearCase has recommended to have development branches to commit or check in unstable codes. When it’s get tested, then the branch has been merged into main or integration branch.
The notion of “stream” is basically quite similar to notion of “branch”. But it has a capability to manage configuration of software by the support of components. But for now, I’ll recommend just to use one component (provided by JazzHub as default) to keep it simple enough.
The “Workspace” provides some mechanism to control a “Change Set”. These are “Deliver”, “Suspend” and “Discard”.
The “Suspend” is very useful. For example, suppose you modified the source codes and checked in to workspace. And you realize something went wrong, but do not like to “Discard” everything (“Discard” completely discard every work you had done, this is useful sometimes though). You can put a change set status to “Suspend”. As a result of this operation, your source code status will be back to original states as if there were no modification. This is really nice feature of Jazz Source Control, right ?