管理単位は「コンポーネント」
Jazzのソースコード管理では、他のソースコード管理システムと同様に、個々のファイルあるいはディレクトリを対象に版管理が行われます。チェックアウト/チェックインを繰り返すと、リポジトリ内で版番号が一つずつ増えるところも同じです。RTCのソースコード管理では、その上位に「コンポーネント」という考え方を導入しています。早速ですから、コンポーネントの中身は何かを見てみましょう。RTCのサーバーを起動して、クライアントから「taro」でリポジトリにログインします(忘れてしまった方は、本シリーズの1回目を参照してください)。
[チーム成果物]ビュー-[マイ・リポジトリー・ワークスペース]とツリーを開き、コンポーネント[HelloJazzWorldチームデフォルト・コンポーネント]を右クリックするとコンテキストメニューが表示されます(図2)。

ここから、[リポジトリー・ファイルの表示]を選択すると、[リポジトリー・ファイル]ビューが開きます(図3)。
Eclipseのプロジェクト以下の構造がそのまま入っていますね。コンポーネントとは、その内部にEclipseのプロジェクトを格納した「論理的な入れ物」です。例ではプロジェクト一つだけですが、複数のプロジェクトを格納することもできます。Eclipseの[プロジェクトの共用]機能で、対象となるEclipseプロジェクトをコンポーネントに関係づけるのは、本シリーズの初回でご覧いただいたとおりです。
ちなみに、新しくRTCのプロジェクトを作成すると、次のものが自動的に作成されます。
- プロジェクト名と同じ名称を持ったチームエリアが一つ
- 「プロジェクト名+『チームリポジトリー・ワークスペース』」という名称を持ったリポジトリー・ワークスペース
- 「プロジェクト名+『デフォルト・コンポーネント』」という名称を持ったコンポーネント
日々の開発作業では、個々のファイルをチェックイン/チェックアウトして編集します。コンポーネントを使うのは関連するリソースをひとまとめにして行う操作、例えば他の開発者との共有や、「ベースライン」をつけて管理するなどです。コンポーネントにベースラインを宣言してみましょう。
[チーム成果物]ビューの[マイ・リポジトリー・ワークスペース]のツリーを開いてみると、「HelloJazzWorldチームデフォルト・コンポーネント(1.初期ベースライン)」と表記されています(図4)。

この「(1:初期ベースライン)」がベースライン名称です。ここでコンポーネントを選択して右クリックし、[新規]-[ベースライン]を選択します(図5)。
ダイアログでベースライン名称を入力し、[OK]ボタンをクリックするとベースライン名を変更できます(図6)。

以上で、ベースライン宣言の終了です。「(1.初期ベースライン)」から「(2.単体テスト終了)」に変わっているのが、分かります(図7)。

RTCのソースコード管理はコンポーネントという概念を導入することで、次の2つのことを達成します。
その1:成果物の集合体をコンポーネントという論理的な入れ物で管理することによって、必要な「ひとかたまり」を明確に定義・管理することができる。例えば、一つのコンポーネントの中に、関連するソースコード、UMLによる設計モデル、JUnitプロジェクト等複数のEclipseプロジェクトを、ひとまとめに管理・操作できる。
その2:コンポーネントは言い換えれば、「チームごとの仕事の分担」「チームの成果物」である。例えば、「単体テスト終了」「マイルストーン1」「バージョン 1」などの開発途中の大きな節目にベースラインを宣言することで、チームの作業進捗が明確になり、多くのチームが共同開発する場合に、お互いの作業状況をより把握しやすくなる。
RTCでは、「プロジェクトは、コンポーネント化されたソフトウェアを、複数のチームで開発する」という開発スタイルを想定しており、それに合わせた管理のやりやすさを、コンポーネントという概念でサポートしているのです。


