Sun WorkShop TeamWare ユーザーズガイド

第 1 章 TeamWare の各ツールの基本的な使用法

この章では、Sun(TM) WorkShop(TM) TeamWare (以降、TeamWare) を使用するための基本的な操作方法について説明しています。詳細は、第 2 章以降を参照してください。また、 TeamWare の操作方法については、オンラインヘルプを参照することもできます。

この章は、以下の節で構成されています。

TeamWare の基本概念

TeamWare はソース開発を管理するための製品で、次の機能を提供します。

TeamWare は、コマンド行インタフェース (CLI) または数種類のグラフィカルユーザーインタフェース (GUI) を使って実行できます。

TeamWare は、「コピー/変更/マージ」という並行開発の形態にもとづいています。TeamWare による開発は、開発者ごとに独立したワークスペースで構成されています。ワークスペースとは、特別に設計された UNIX ディレクトリとサブディレクトリのことです。TeamWare を使用して、開発者はソースファイルを中央のワークスペースから自分のワークスペースにコピーし、コピーしたソースファイルを自分のワークスペース内で必要に応じて変更できます。また、変更したファイルを中央のワークスペースに戻して、ほかの開発者が変更したファイルとマージすることができます。

TeamWare は、各開発者に独立したワークスペースを提供するだけでなく、ワークスペース間のファイルのコピーをより簡単な方法で機能的に行い、対応するファイル間に存在する変更内容をマージします。この機能により、開発者 (またはプロジェクト管理者) が定めた、論理的にリンクされたグループごとのプロジェクトファイルをコピーすることができます。また、元のワークスペースと転送先ワークスペースのファイルとの間に相違が存在するかどうかを検出します。

相違が検出された場合、開発者がこれらの変更をファイルに上書きできないようにロックします。開発者がこれらの変更をマージし、相違の衝突を容易に解決できるように、ファイルマージという GUI ツールが用意されています。このように、TeamWare は、中央のワークスペースと開発者のワークスペースの各ファイルの間に相違があるかどうかを検出することによって、並行的に開発プロセスを進めることができます。

親ワークスペースと子ワークスペース

中央のワークスペースからファイルをコピーしてワークスペースを新たに作成すると、中央のワークスペースと新しいワークスペースとの間に「親と子」という特別な関係ができます。中央のワークスペースは、新しく作成されたワークスペースの親と見なされ、新しいワークスペースは子と見なされます。この方法によって、任意のワークスペースからファイルを得ることができ、ワークスペースには複数の子ワークスペースを自由に作成することができます。親ワークスペースからファイルシステムのどの部分をコピーするかは、コピー時に決定します。親からすべての内容を子にコピーして親ワークスペースのクローンを作成したり、ファイルシステム中の必要な階層のみをコピーすることもできます。このように、ファイルを親ワークスペースから子ワークスペースへコピーするトランザクションを、ブリングオーバーと呼びます。

子ワークスペースでプログラムの開発およびテストを行なった場合は、変更および追加部分を親ワークスペースに戻します。変更されたファイルが親ワークスペースにコピーされると、それをほかの子ワークスペースにコピーしたり、さらに親ワークスペースの 1 つ上の親ワークスペースにコピーすることもできます。ファイルの変更内容を子ワークスペースから親ワークスペースへコピーするトランザクションを、プットバックと呼びます。

子ワークスペースで変更されたファイルを親ワークスペースへ戻そうとしたとき、そのファイルが親ワークスペースでも変更されていると、ファイル間に矛盾 (これを衝突と呼びます) が生じます。この場合、ワークスペース管理ツールは、トランザクションを中止します。開発者は、ブリングオーバートランザクションを実行して、変更された情報を親ワークスペースから引き出し、子ワークスペース内の矛盾 (衝突) を解決してから作業結果を親ワークスペースに戻さなければなりません。

ソースコード管理システム (SCCS)

ワークスペース管理ツールは、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

フリーズポイント 

フリーズポイントツール 

フリーズポイント (ある時点のワークスペースのスナップショット) の取得 

TeamWare ワークスペース管理ツールの使用

TeamWare ワークスペース管理ツールは、グラフィカルユーザーインタフェース (GUI) とコマンド行インタフェース (CLI) のどちらを使用しても利用できます。次の手順は、GUI を使用した場合の例です。CLI での操作方法の詳細は、bringover(1) および putback(1) のマニュアルページを参照してください。

ワークスペース管理ツールの起動

ワークスペース管理ツールを起動するには、シェルコマンドプロンプトで、twconfig と入力し、その後にアンパサンド (&) を入力します。

Sun WorkShop の実行中には、次の方法でワークスペース管理ツールを起動できます。

ワークスペース管理ツールを起動すると、「ワークスペース管理」ウィンドウ (図 1-1 参照) が開きます。


注 -

ワークスペース管理ツールを起動する前に、作業ファイルのコピー元となるワークスペースのパス名を知っている必要があります。


図 1-1 「ワークスペース管理」ウィンドウ

Graphic

新しいワークスペースの作成

新しいワークスペースを作成するには、次の 3 つの方法があります。

既存のファイル階層からのワークスペースの作成

1 つのディレクトリに含まれる既存のファイルからワークスペースを作成する場合は、次の手順に従って新しいワークスペースを作成します。

  1. ワークスペース管理ツールを起動します。

  2. 「ファイル」⇒「ワークスペース作成」を選択します。

  3. 「ワークスペースディレクトリ」フィールドに、ワークスペースの元となるファイルを含むディレクトリのパス名を入力します。

  4. 「了解」ボタンをクリックします。

    指定したディレクトリにワークスペースが作成され、それに対応するアイコンが「ワークスペース管理」ウィンドウ内に自動的に作成されます。また、ワークスペースを作成したディレクトリには、Codemgr_wsdata という新しいディレクトリが作成されます。このディレクトリは、アクセス制御、通知リスト、トランザクション履歴などのワークスペース関連情報を TeamWare が保持するための専用のディレクトリです。

  5. TeamWare が認識できるのは、SCCS でバージョン管理されているファイルだけです。TeamWare でワークスペースを作成する前に、ワークスペースにコピーする既存のディレクトリツリーに含まれているファイルが SCCS でバージョン管理されていることを確認してください。

    ファイルが SCCS でバージョン管理されているかを確認するには、コマンド行で SCCS create コマンドを入力するか、TeamWare バージョン管理ツールを使用します。

空のワークスペースの作成

空のワークスペースを作成するには:

  1. TeamWare ワークスペース管理ツールを起動します。

  2. 「ファイル」⇒「ワークスペース作成」を選択します。

  3. 「ワークスペースディレクトリ」フィールドに、既存のディレクトリ名と新しいワークスペースの名前を入力します。

  4. 「了解」ボタンをクリックします。

    作成された新しいワークスペースに入っているのは、Codemgr_wsdata ファイルだけです。

子ワークスペースの作成

子ワークスペースを作成するには:

  1. TeamWare ワークスペース管理ツールを起動します。

  2. ファイルの取得先のワークスペースが自動的に読み込まれない場合は、「ファイル」⇒「ワークスペースの読み込み」を選択します。

  3. 「ワークスペース読み込み」ダイアログでワークスペースを選択し、「ワークスペースの読み込み」ボタンをクリックします。

    選択された親ワークスペースが読み込まれ、対応するアイコンが「ワークスペース管理」ウィンドウに表示されます。

  4. 親ワークスペースのアイコンを「ワークスペース管理」ウィンドウ内の空いているスペースにドラッグ & ドロップするか、「トランザクション」⇒「ブリングオーバー」⇒「作成」を選択すると、「トランザクション」ウィンドウの作成ブリングオーバーバージョン (図 1-2) が開きます。

  5. 作成ブリングオーバーの「トランザクション」ウィンドウの「先:子ワークスペースディレクトリ」フィールドに、子ワークスペースのパス名を入力します。

  6. 「ディレクトリとファイル」の区画に、親ワークスペースから自分のワークスペースにブリングオーバーするディレクトリおよびファイルのリストを作成します。

    「追加」ボタンをクリックして「ファイル追加」ダイアログを表示し、ブリングオーバーするファイルを選択します。Shift キーを押しながらクリックすると、一度に複数のファイルを選択できます。すべてのファイルを選択するには、「名前」フィールドにピリオド (.) を入力します。ブリングオーバーするファイルをすべて選択したら、「ファイル追加」ボタンをクリックします。


    注 -

    「プレビュー」ボタンを選択すると、ファイルを実際に転送する前にこのトランザクションの内容を確認できます。


  7. 「トランザクション」ウィンドウの「ブリングオーバー」ボタンをクリックし、作成ブリングオーバートランザクションを起動します。

  8. 「トランザクション出力」ウィンドウにトランザクションの出力結果が表示されます。

作成ブリングオーバートランザクションについての詳細は、「新しい子ワークスペースの作成 (作成ブリングオーバー)」を参照してください。

図 1-2 作成ブリングオーバーの「トランザクション」ウィンドウ

Graphic

子ワークスペース内のファイルの変更

子ワークスペース内のファイルに変更を加えるには、バージョン管理ツールを使用する必要があります (「バージョン管理ツールの起動」を参照)。

変更するファイルをチェックアウトしてから編集し、再度 SCCS にチェックインします (「SCCS ファイルのチェックインおよびチェックアウト」を参照)。

親ワークスペースへの変更内容のプットバック

変更内容を親ワークスペースに戻すことができます。このワークスペース管理トランザクションのことを、プットバックといいます。

変更内容を親ワークスペースにプットバックするには:

  1. 子ワークスペースのアイコンをドラッグして親ワークスペースのアイコン上にドロップするか、「トランザクション」⇒「プットバック」を選択して、プットバックトランザクションを起動します。プットバックの「トランザクション」ウィンドウが開きます。

    親ワークスペースおよび子ワークスペースの名前が自動的に表示され、子ワークスペースに作成されたファイルおよびディレクトリの名前が追加されます。

  2. 「コメント」区画にコメントを入力します。


    注 -

    「プレビュー」ボタンを選択すると、ファイルを実際に転送する前にこのトランザクションの内容を確認できます。


  3. 「プットバック」ボタンをクリックしてプットバックトランザクションを実行します。

  4. 「トランザクション出力」ウィンドウにトランザクションの出力結果が表示されます。

    プットバックトランザクションについての詳細は、「プットバックによる親ワークスペースの更新」を参照してください。

子ワークスペースの更新

ブリングオーバーした後に親スペースでファイルが変更されていた場合、ファイルのプットバックトランザクションはロックされます。このような場合は、更新ブリングオーバートランザクションを実行して、親ワークスペースでの変更のあったファイルを子ワークスペースにコピーする必要があります。

子ワークスペースを更新するには:

  1. 衝突がある場合は衝突を解決します (「衝突の解決」を参照)。

  2. ファイルを親ワークスペースにプットバックします。

    プットバックトランザクションがブロックされたことを示すポップアップウィンドウが表示されます。


    注 -

    「プレビュー」ボタンを選択すると、ファイルを実際に転送する前にこのトランザクションの内容を確認できます。


  3. ポップアップウィンドウで「ブリングオーバー実行」ボタンをクリックして、更新ブリングオーバートランザクションを起動します。更新ブリングオーバーの「トランザクション」ウィンドウが開きます。

    更新ブリングオーバーの「トランザクション」ウィンドウが開き、親ワークスペースおよび子ワークスペースの名前が表示され、子ワークスペースに作成されたファイルおよびディレクトリの名前が追加されます。

  4. 「ブリングオーバー」ボタンをクリックして、更新ブリングオーバートランザクションを実行します。

  5. 「トランザクション出力」ウィンドウにトランザクションの出力結果が表示されます。

    更新ブリングオーバートランザクションについての詳細は、「既存の子ワークスペースの更新 (更新ブリングオーバー)」を参照してください。

衝突の解決

開発者が子ワークスペースで変更したファイルが、親ワークスペースでも変更されている場合、これらのファイルが衝突したといいます。更新ブリングオーバーのトランザクション中に衝突が検出されると、衝突が生じていることを示すポップアップウィンドウが自動的に開きます。

衝突を解決するには:

  1. 表示されたポップアップウィンドウで「はい」ボタンをクリックして、衝突解決トランザクションを起動します。衝突解決の「トランザクション」ウィンドウが開きます。

    ワークスペース内に未解決の衝突があることを警告するため、ワークスペースのアイコンが変更されます。また、次のことも自動的に行われます。

    • 衝突解決の「トランザクション」ウィンドウに、衝突のあるファイルのパス名の一覧を表示します。

    • 「衝突をマージ」ボタンをクリックすると、ファイルマージを起動して、リストの最初のファイルを読み込みます。

    ファイルマージは、テキストファイル 2 つ (親ワークスペースと子ワークスペースの各ファイル) を比較しやすいように、横に並べて読み取り専用のサブウィンドウに表示します。各ファイルは、(グリフを使用して) 変更前のファイルと比較されます。ファイルマージは、これらのファイルの下に、マージ後のファイルの内容を示すサブウィンドウを表示します。マージ後のファイルは、両方またはどちらか一方のデルタから選択された行で構成されます。

  2. 表示されているファイルが下のウィンドウに自動的にマージされます。

    自動的にマージされたウィンドウは、「ナビゲート」メニューを使用して、左右のウィンドウに表示されている変更内容のうちから適切なものを選択して上書きできます。


    注 -

    解決処理中はいつでも「再読み込み」ボタンをクリックすることで、それまでに解決した衝突をすべて放棄して最初から解決を再開できます。ファイルがディスクから再度読み込まれ、「自動マージ」オプションを選択している場合は、衝突のない変更については解決されています。その他の変更については、2 つのバージョンのうちのいずれかを選択します。


  3. ファイルが適切にマージされたことを確認したら、「保存」ボタンをクリックしてファイルを保存します。

    「トランザクション」ウィンドウの衝突ファイルのリストにまだファイルがある場合は、自動的に次のファイルが読み込まれます。

    衝突の解決およびファイルマージについての詳細は、第 8 章「衝突の解決」を参照してください。

TeamWare バージョン管理ツールの使用

バージョン管理ツールは、SCCS の GUI です。ユーザーは、SCCS のコマンドを知らなくてもファイルを操作して SCCS 機能を利用できます。ファイルのデルタ履歴を表示したり、デルタ間の相違を示したり、ファイルのチェックイン、チェックアウトを行うこともできます。バージョン管理ツールでは、次のことが可能です。

バージョン管理ツールの起動

バージョン管理ツールを起動するには、次の 2 つの方法があります。

バージョン管理ツールを使用するには、「バージョン管理」ウィンドウ (図 1-3 参照) のファイル表示区画でファイルを選択し (複数選択可)、そのファイルに対して実行する処理のメニュー項目を選択します。メニュー項目は、次の場所から選択できます。

次の 2 つの例では、バージョン管理ツールを使用したファイルのチェックイン、チェックアウト、およびファイルのデルタ履歴の表示、比較を行う方法について説明します。

図 1-3 「バージョン管理」ウィンドウ

Graphic

SCCS ファイルのチェックインおよびチェックアウト

SCCS ファイルのチェックインとチェックアウトは、バージョン管理ツールを使用して行います。

ファイルのチェックアウト

SCCS ファイルをチェックアウトするには:

  1. チェックアウトするファイルを含むディレクトリが自動的に読み込まれない場合は、ディレクトリのパス名を「ディレクトリ」フィールドに入力し、Return キーを押します。

  2. ファイルのアイコンをクリックしてファイルを選択します。複数のファイルを選択したい場合、2 つ目のアイコンから Shift キーを押しながらクリックするか、ダイアログ内の空いている場所でマウスの左ボタンを押しながら、表示される長方形の枠内に目的のアイコンが収まるようにドラッグします。マウスの左ボタンを放すと、この枠内に囲まれたファイルがすべて選択されます。

  3. 「コマンド」⇒「チェックアウトして編集」または「コマンド」⇒「チェックアウト」を選択し、「ファイル」⇒「編集」を選択します。チェックアウトされたファイルのアイコンにはチェックマークが表示されます。

ファイルのチェックイン

SCCS ファイルをチェックインするには:

  1. ファイルをチェックインする準備ができたら、ファイルを選択し、「コマンド」⇒「チェックイン」を選択して、「チェックイン」ダイアログを開きます。

  2. コメント区画にコメントを入力し、「了解」ボタンをクリックしてチェックインを終了します。

    ファイルがチェックインされると、ファイルのアイコンからチェックマークが消えます。

ファイルのデルタ履歴の表示および比較

ファイルのデルタ履歴を図表示するには:

  1. 「バージョン管理」ウィンドウでファイルのアイコンを選択し、「ファイル」⇒「ファイル履歴」を選択します。

  2. 図の中からデルタを 2 つ選択します。

  3. 「表示」⇒「差分をファイルマージで」を選択します。

    「ファイルマージ」ウィンドウに、2 つのデルタが横に並べて表示されて、2 つのファイル間の相違がグリフ (印) で示されます。バージョン管理ツールについての詳細は、 第 9 章「SCCS ファイルのマージ」を参照してください。

前回マージされなかった分岐デルタのマージ

ファイルのバージョン履歴を表示するには:

  1. 「バージョン管理」ウィンドウでファイルのアイコンを選択し、「ファイル」⇒「ファイル履歴」を選択します。

  2. 「履歴」ウィンドウで、マージする 2 つのバージョンを選択します。

  3. マウスを右クリックすると、「枝のマージ」コマンドを含むダイアログが開きます。

  4. ダイアログから「枝のマージ」を選択します。

    TeamWare バージョン管理ツールについての詳細は、第 11 章「バージョン管理ツールの使用」を参照してください。

TeamWare フリーズポイントツールの使用

ソフトウェアの開発では、重要な時点でプログラムのフリーズポイントを作成すると便利です。これらのフリーズポイントは、開発プロジェクトの「スナップショット」の役割を果たし、プロジェクト全体の重要な時点での状態を再現できます。フリーズポイントツールを使用することにより、わずかな記憶資源で、これらのフリーズポイントを保存できます。フリーズポイントツールには、機能的に同等のユーザーインタフェースが 2 つあります。

この章で説明する概念は、GUI および CLI の両方に適用できますが、ここでは GUI について説明および例を示します。CLI 特有の説明については、オンラインマニュアルページの twfreeze(1)freezept(1)freezepointfile(4) を参照してください。

フリーズポイントツールを使用すると、ワークスペース管理ツールのワークスペースからフリーズポイントファイルを作成することができます。フリーズポイントファイルとは、ワークスペースに含まれる SCCS 履歴ファイルのデルタを一覧にしたテキストファイルです。ファイルを後で再作成 (抽出) する場合、フリーズポイントツールはフリーズポイントファイルの各エントリを、元の履歴ファイルと、フリーズポイントファイルの作成時点にデフォルトだったデルタへのポインタとして使用します。

フリーズポイントファイルからワークスペースを作成することもできます。その場合は、凍結されたファイルのセット全体を抽出するか、その一部を抽出するかを選択できます。


注 -

フリーズポイントツールには、抽出されたすべてのファイルに関する SCCS 履歴を含むワークスペースを再作成するオプションが用意されています。このオプションを使用しない場合は、派生ファイルのみを抽出することを選択できます。これは、オプションを指定せずに SCCS の get コマンドを使用してデフォルトのデルタを取り出すことを意味します。この場合、SCCS 履歴は再作成されず、ワークスペースも作成されません。


フリーズポイントツールの起動

フリーズポイントツールを起動するには、次の 2 つの方法があります。

図 1-4 「フリーズポイント」ウィンドウ

Graphic

フリーズポイントの作成および抽出

フリーズポイントの作成および抽出は、「フリーズポイント」ウィンドウ (図 1-4 参照) で行います。作成区画と抽出区画は、「カテゴリ」リストボックスの該当する項目を選択して切り替えます。デフォルトでは作成区画が表示されます。

フリーズポイントファイルの作成

フリーズポイントファイルを作成するには:

  1. 「カテゴリ」リストボックスで「作成」を選択します。

  2. 「フリーズポイントファイル」フィールドにフリーズポイントファイルのパス名を入力します。

    デフォルトでは、freezepoint.out ファイル名が自動的に表示されます。フリーズポイントファイルの名前を変更したい場合は freezepoint.out を削除して、新しいファイル名を入力します。

  3. 「ワークスペース」フィールドに、ソースワークスペースのパス名を入力します。これがフリーズポイントするワークスペースです。

  4. 「ディレクトリとファイル」区画で、フリーズポイントするディレクトリおよびファイルのいずれかまたは両方のリストを作成します。

    「ファイル追加」ボタンをクリックして「ファイル追加」ダイアログを表示し、フリーズポイントするファイルを選択します。Shift キーを押しながらクリックすると、一度に複数のファイルを選択できます。すべてのファイルを選択するには、「名前」フィールドにピリオド (.) を入力します。フリーズポイントするファイルをすべて選択したら、「リストにファイルを追加」ボタンをクリックします。

  5. 「作成/更新」ボタンをクリックして、フリーズポイントを作成します。

ソース階層の抽出

フリーズポイントからソース階層を抽出するには:

  1. 「カテゴリ」リストボックスで「抽出」を選択します。

    作成区画が抽出区画に変わります。

  2. 「フリーズポイントファイル」フィールドに、既存のフリーズポイントファイルのパス名を入力します。

  3. 「抽出先ディレクトリ」フィールドに、抽出先ディレクトリのパス名を入力します。

    抽出されたファイルはこのディレクトリに入れられます。

  4. 「抽出」ボタンをクリックしてフリーズポイントを抽出します。

    フリーズポイントツールについての詳細は、第 14 章「フリーズポイントツールの使用」を参照してください。

分散メーク (dmake) について

分散メーク (dmake) は、ネットワークおよびマルチプロセッサの能力を充分に利用できるように、make ユーティリティを拡張したツールです。dmake を使用すると、多数のプログラムから構成される大規模なプロジェクトなどを構築する処理を、複数のワークステーション上、またはマルチプロセッサシステムの複数の CPU 上に分散させることができます。

dmake ホストで dmake コマンドを実行すると、構築サーバーにジョブが分散されます。dmake ホストにもジョブを分散することができます。この場合、dmake ホストも構築サーバーと見なされます。dmake は、(ユーザーが作成したメークファイルに従って) 並列構築が可能であると判断したメークファイルターゲットに基づいて、ジョブを分散します。次の条件を満たしているマシンを、構築サーバーとして使用することができます。

dmake ホストから、使用される構築サーバーと各構築サーバーに割り当てられる dmake ジョブの数を制御できます。特定の構築サーバーで実行できる dmake ジョブの数は、当該サーバー上で制御することもできます。

dmake についての詳細は、第 17 章「分散メーク (dmake) ユーティリティの使用」を参照してください。