Sun WorkShop TeamWare ユーザーズガイド

コピー/変更/マージの開発形態

TeamWare は、大規模なソフトウェア開発プロジェクトにおける開発およびリリース作業を支援するためのもので、「コピー/変更/マージ」という並行開発の形態にもとづいて開発された製品です。TeamWare による開発は、開発者ごとに独立したワークスペースで構成されています。ワークスペース管理ツールを用いた開発プロジェクトでは、開発者はまず自分のワークスペースに中央のワークスペースから必要なソースコードをコピーします。次に、自分のワークスペースでこのコピーに対して変更を加えます。最後に、変更したコピーを中央のワークスペースに戻しますが、このとき中央のワークスペースに存在する該当ファイルはほかの開発者によって変更されている場合があるので、単にコピーするのではなく中央のファイルと自分のファイルをマージします。


注 -

ワークスペースとは、通常の SunOS(TM) のディレクトリおよびサブディレクトリのことで、単に特別な呼び名として使用しています。


複数の開発者が並行して作業することで生産性は向上しても、変更内容のマージという作業は難しくなります。ワークスペース管理ツールは、こうした変更内容のマージ作業の不便さを最小限にとどめる、場合によっては完全に解消することができるように考えられています。

ワークスペース管理ツールは、個々に分離されたワークスペースを提供するほか、開発者が容易にかつ機能的にワークスペース間でファイルをコピーし、対応するファイルの変更内容を結合して、衝突のない 1 つのファイルを作成できるようにする機能を備えています。ワークスペース管理ツールのこのような機能によって、開発者は自分あるいはプロジェクト管理者が定めた、論理的にリンクされたグループ内でプロジェクトファイルをコピーすることができます。また、コピー元ワークスペース内のファイルとコピー先ワークスペース内のファイルとの間に相違点が存在するかどうかを自動的に判断する機能も備えています。

開発者は、中央のワークスペースから自分専用のワークスペースにプロジェクトファイルをコピーし、それらのファイル (あるいはファイルシステム) に変更を加え、結果を元の中央ワークスペースに戻します。ソースファイル、ヘッダーファイル、ライブラリなどは一括してコピーできる 1 つの論理的な単位にまとめておくことができます。ワークスペース管理ツールは並行開発作業がスムーズに流れるようにするため、コピー元ワークスペースのファイルとコピー先ワークスペースのファイルとの間に相違点が存在するかどうかを自動的に判別します。相違点が存在する場合には、開発者がそれらのファイルをそのままコピーできないようにします。またワークスペース管理ツールには、こうした相違点をマージするための GUI ツールが用意されています。

コピー/変更/マージの例

表 2-1 は、ワークスペース管理ツールを使用した、コピー/変更/マージの並行開発の一例です。この例は、2 名の開発者があるソフトウェア開発プロジェクトで同一ファイルあるいは関連するファイルに同時に変更を加える場合を想定したものです。

表 2-1 コピー/変更/マージの例

Graphic

  • 開発者 A と B は、プロジェクト統合領域から同じファイルをそれぞれの作業領域にコピーします。

Graphic

  • 開発者 B はこのファイルに変更を加え、変更後のファイルを統合領域に戻します。

Graphic

  • 開発者 A は自分の作業領域でコピーしてきたファイルに変更を加え、変更後のファイルを同様に統合領域にコピーしようとします。しかし、開発者 B によって変更されたファイルが統合領域に存在するため、これが書き換えられないよう開発者 A のコピー要求が拒否されます。

Graphic

  • 変更に衝突が存在することをワークスペース管理ツールは開発者 A に通知し、開発者 B の変更内容を含むファイルを開発者 A の作業領域にコピーするように指示します。

Graphic

  • 開発者 A は、ワークスペース管理ツールの機能を利用して衝突を解決し、双方の変更内容を統合したファイルを作成しテストを行なった後、プロジェクト統合領域にコピーします。