TeamWare はソース開発を管理するための製品で、次の機能を提供します。
ソフトウェア構成の管理
バージョンの制御
変更の制御
統合のサポート
リリースのサポート
TeamWare は、コマンド行インタフェース (CLI) または数種類のグラフィカルユーザーインタフェース (GUI) を使って実行できます。
TeamWare は、「コピー/変更/マージ」という並行開発の形態にもとづいています。TeamWare による開発は、開発者ごとに独立したワークスペースで構成されています。ワークスペースとは、特別に設計された UNIX ディレクトリとサブディレクトリのことです。TeamWare を使用して、開発者はソースファイルを中央のワークスペースから自分のワークスペースにコピーし、コピーしたソースファイルを自分のワークスペース内で必要に応じて変更できます。また、変更したファイルを中央のワークスペースに戻して、ほかの開発者が変更したファイルとマージすることができます。
TeamWare は、各開発者に独立したワークスペースを提供するだけでなく、ワークスペース間のファイルのコピーをより簡単な方法で機能的に行い、対応するファイル間に存在する変更内容をマージします。この機能により、開発者 (またはプロジェクト管理者) が定めた、論理的にリンクされたグループごとのプロジェクトファイルをコピーすることができます。また、元のワークスペースと転送先ワークスペースのファイルとの間に相違が存在するかどうかを検出します。
相違が検出された場合、開発者がこれらの変更をファイルに上書きできないようにロックします。開発者がこれらの変更をマージし、相違の衝突を容易に解決できるように、ファイルマージという GUI ツールが用意されています。このように、TeamWare は、中央のワークスペースと開発者のワークスペースの各ファイルの間に相違があるかどうかを検出することによって、並行的に開発プロセスを進めることができます。
中央のワークスペースからファイルをコピーしてワークスペースを新たに作成すると、中央のワークスペースと新しいワークスペースとの間に「親と子」という特別な関係ができます。中央のワークスペースは、新しく作成されたワークスペースの親と見なされ、新しいワークスペースは子と見なされます。この方法によって、任意のワークスペースからファイルを得ることができ、ワークスペースには複数の子ワークスペースを自由に作成することができます。親ワークスペースからファイルシステムのどの部分をコピーするかは、コピー時に決定します。親からすべての内容を子にコピーして親ワークスペースのクローンを作成したり、ファイルシステム中の必要な階層のみをコピーすることもできます。このように、ファイルを親ワークスペースから子ワークスペースへコピーするトランザクションを、ブリングオーバーと呼びます。
子ワークスペースでプログラムの開発およびテストを行なった場合は、変更および追加部分を親ワークスペースに戻します。変更されたファイルが親ワークスペースにコピーされると、それをほかの子ワークスペースにコピーしたり、さらに親ワークスペースの 1 つ上の親ワークスペースにコピーすることもできます。ファイルの変更内容を子ワークスペースから親ワークスペースへコピーするトランザクションを、プットバックと呼びます。
子ワークスペースで変更されたファイルを親ワークスペースへ戻そうとしたとき、そのファイルが親ワークスペースでも変更されていると、ファイル間に矛盾 (これを衝突と呼びます) が生じます。この場合、ワークスペース管理ツールは、トランザクションを中止します。開発者は、ブリングオーバートランザクションを実行して、変更された情報を親ワークスペースから引き出し、子ワークスペース内の矛盾 (衝突) を解決してから作業結果を親ワークスペースに戻さなければなりません。
ワークスペース管理ツールは、SCCS で管理されているファイルに対してのみ動作します。ワークスペース管理ツールによるファイル転送トランザクションでは、ソースファイルが SCCS デルタから得られ、SCCS デルタ ID (SID) によって識別されます。ファイルをブリングオーバーあるいはプットバックのいずれかでコピーする場合、ワークスペース管理ツールが、そのファイルの SCCS 履歴ファイル (s ドットファイルとも呼ばれる) を操作 (コピー、マージなど) しています。SCCS 履歴ファイルを処理およびマージする方法についての詳細は、第 9 章「SCCS ファイルのマージ」を参照してください。
このリリースの TeamWare では、新しいコマンド名およびツール名を使用しています。 表 1-1 に新しいコマンドと以前のコマンドとの対応を示します。以前のコマンドは引き続き使用できますが、このマニュアルでは新しいコマンドおよびツール名を使用しています。
表 1-1 TeamWare の新旧コマンドとツール名
旧コマンド |
新コマンド |
旧ツール名 |
新ツール名 |
用途 |
---|---|---|---|---|
codemgrtool |
twconfig, teamware |
コードマネージャ |
ワークスペース管理ツール |
ソフトウェア構成の管理 |
vertool |
twversion |
バージョンツール |
バージョン管理ツール |
SCCS による バージョンの管理 |
filemerge |
twmerge |
ファイルマージ |
ファイルマージ |
2 つのファイルのマージ |
maketool |
twbuild |
メークツール |
構築ツール |
逐次、並列、または分散モードのメーク |
freezepttool |
twfreeze |
フリーズポイント |
フリーズポイントツール |
フリーズポイント (ある時点のワークスペースのスナップショット) の取得 |