Sun WorkShop TeamWare ユーザーズガイド

第 6 章 ワークスペースの操作と設定

第 2 章「ワークスペース管理の概要」で説明したように、ワークスペースはワークスペース管理システムの基本となる概念です。個々の開発者に割り当てられるワークスペースによって、各開発者はほかの開発者の作業と並行して独自に作業を進めることができます。ワークスペースについての定義は、「ワークスペース」を参照してください。

この章では、ワークスペースの具体的な側面、およびワークスペースの構成、作成、操作、管理を行うためのワークスペース管理コマンドについて説明します。

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

ワークスペースのメタデータディレクトリ

ワークスペース管理ツールによって管理されているワークスペースとは、 Codemgr_wsdata というディレクトリを持つディレクトリ階層のことです。ワークスペース管理ツールは、該当ワークスペースに関連するデータ (メタデータ) を Codemgr_wsdata ディレクトリ下のファイルに格納します。ワークスペース管理コマンドは、Codemgr_wsdata ディレクトリの有無によって、ディレクトリがワークスペースであるかどうかを判別します。

TeamWare ワークスペース管理ツールには、Codemgr_wsdata ディレクトリに格納されている情報を管理するために必要なさまざまな機能が用意されています。通常、手動での変更はお勧めしませんが、まれに、特定のファイルを手動で変更することが必要になる場合があります。ただしその場合も、編集する各ファイルの形式を理解して、形式を変更することのないように注意してくだい。表 6-1 に、Codemgr_wsdata ディレクトリに含まれる各ファイルおよびディレクトリの概要を示します。これらのファイルの形式に関する詳細は、各ファイルの man(4) のマニュアルページを参照してください。

表 6-1 Codemgr_wsdata ディレクトリの内容

ファイル名またはディレクトリ名 

説明 

access_control

access_control ファイルには、あるワークスペースに対してワークスペース管理ツールのトランザクションやコマンドを実行できるユーザーを制限するための情報が収められています。ワークスペースが作成されると、同時にデフォルトのアクセス制御ファイル (access_control)も作成されます。詳細は、「ワークスペースへのアクセス制御」を参照してください。

args

args ファイルはブリングオーバーおよびプットバックトランザクションのコマンドによって管理するファイルです。この中にはファイル、ディレクトリ、および FLP 引数のリストが収められています。args ファイルには最初、ワークスペースの作成時に指定された引数が収められています。以降のブリングオーバーまたはプットバックトランザクションでユーザーが引数を明示的に指定すると、コマンドは args ファイルにすでに存在する引数よりも新しい引数のほうが広い範囲であるかどうかを判別し、広範囲であれば古い引数を新しい引数と置き換えます。

backup/

backup ディレクトリは、ワークスペース管理ツールがブリングオーバーあるいはプットバックトランザクションの実行結果を破棄して、実行前の状態に戻すときに使用する情報を格納する場所です。詳細は、「ブリングオーバーまたはプットバックの取り消し」を参照してください。

children

children ファイルには、該当ワークスペースの子ワークスペースのリストが格納されます。子ワークスペースの名前は作成ブリングオーバートランザクションの実行時に該当ワークスペースの children ファイルに書き込まれます。ワークスペース管理ツールは、このファイルを参照して子ワークスペースのリストを入手します。ワークスペースを削除または移動したり、あるいは親を変更した場合、ワークスペース管理ツールはその親ワークスペースに存在する children ファイルを更新します。

conflicts

conflicts ファイルは、その時点で衝突のあるワークスペースのファイルリストを保持するためのものです。衝突に関する詳細および衝突の解決方法については、第 8 章「衝突の解決」を参照してください。

history

history ファイルには、あるワークスペースに影響を与えたトランザクションや更新ファイルの処理記録が収められます。詳細は、「ワークスペースに関するコマンド履歴の表示」を参照してください。

locks

ワークスペースの一貫性を保持するため、ワークスペース管理ツールは、ブリングオーバー、プットバック、取り消しトランザクションの実行時に対象ワークスペースをロックします。ロックは各ワークスペースごとに locks ファイルに記録されます。ワークスペース管理ツールは、ワークスペースに何らかの操作を加えるときには、その前に locks ファイルを参照してロックの有無を確認します。「ワークスペースのロックによる整合性の保持」を参照してください。

nametable

nametable ファイルには、SCCS ファイル名 (該当ワークスペースからの相対パス名) と、32 ビット 16 進ワードで表現される一意の数が 4 つずつ登録されたテーブルが収められています。このテーブルの各エントリは改行文字で区切られています。ワークスペース管理ツールは、ブリングオーバーおよびプットバックトランザクションでこの nametable ファイルを使用することによって、名前が変更されているファイルに対する処理速度を向上させます。このファイルが利用できない場合には、次のプットバックまたはブリングオーバートランザクションの実行時に自動的に再作成されます。「ファイルの名前変更、移動、または削除」を参照してください。

notification

notification ファイルは、通知要求を登録するためのものです。この機能によって、ワークスペース管理ツールは、該当ワークスペースに関連するイベントの発生を検出し、電子メールメッセージを送信できます。「ユーザーへのワークスペース変更通知」を参照してください。

parent

parent ファイルには、ワークスペースの親ワークスペースのパス名が収められます。作成ブリングオーバートランザクション、または (該当ワークスペースがワークスペース作成コマンドで作成されたために親を持たない場合は) 親の変更によって作成されます。ワークスペース管理ツールは、このファイルを参照してワークスペースの親を判別します。ワークスペースの削除、移動、あるいは親の変更を行なった場合、ワークスペース管理ツールは、その子ワークスペースの parent ファイルを更新します。

putback.cmt

putback.cmt ファイルは、最後に中止されたプットバックトランザクションのコメントテキストを一時的に保持するキャッシュとして働きます。プットバックトランザクションが中止されると、コメントは廃棄されます。そこでワークスペース管理ツールは、トランザクションを再実行したときに元のテキストを取り出すことができるように、putback.cmt ファイルにコメントをキャッシュしておきます。

ワークスペースの作成

ワークスペースは次の 2 とおりの方法で作成できます。

ワークスペース作成ダイアログから

「ファイル」⇒「ワークスペース作成」を選択すると、新しいワークスペースを作成できます。「ワークスペースディレクトリ」フィールドに新しいワークスペースのルート (最上位) ディレクトリの名前を入力し、「了解」ボタンをクリックします。

作成しようとするワークスペースがすでにディレクトリ階層として存在している場合、ワークスペース管理ツールは最上位ディレクトリに Codemgr_wsdata ディレクトリを追加し、ワークスペース表示区画にそのアイコンを表示することで、その既存ディレクトリをワークスペースに変換します。

ディレクトリが存在しない場合には、ワークスペース管理ツールによって、最上位ディレクトリと Codemgr_wsdata ディレクトリの両方が新規に作成されます。

作成ブリングオーバートランザクションから

「トランザクション」メニューから「作成ブリングオーバー」を使用すると、親ワークスペースからまだ存在しない子ワークスペースにファイルをコピーすることができます。子ワークスペースはこのトランザクションで自動的に作成されます。詳細は、「新しい子ワークスペースの作成 (作成ブリングオーバー)」を参照してください。

オンラインヘルプの「新規ワークスペースの作成」でも、手順について説明しています。このヘルプ項目を参照するには、「ヘルプ」 ⇒ 「ヘルプの目次」⇒「プロジェクトの開始」を選択してください。

ワークスペースの削除

ワークスペースを削除するには、ワークスペース表示区画にあるアイコンを選択してから、「編集」⇒「削除」を選択します。

「削除」サブメニューを選択すると、ワークスペースを削除するための次の 2 つのメニューが表示されます。

いずれの場合もワークスペース管理ツールは、親および子ワークスペース内のレコードを自動的に更新して、該当ワークスペースの削除を反映させます。

ワークスペースの移動と名前変更

ワークスペースはディレクトリであるため、そのパス名を変更することによって、階層内での位置を移動することができます。ワークスペースの移動は、次の 2 とおりの方法で行うことができます。

これらの方法では、ワークスペースのパス名を変更するほか、親および子ワークスペースに存在するいくつかのデータファイルが更新され、新しい名前が書き込まれます。これらのデータファイルについては、「ワークスペースのメタデータディレクトリ」を参照してください。


注意 - 注意 -

ワークスペースの名前変更や移動を行うときに、mv コマンドは使用しないでください。


ワークスペース管理ツールによる名前変更は、ワークスペースの親および子の中のファイルを移動し、Codemgr_wsdata/history ファイルにこのイベントを記録します。

mv コマンドを使用して誤ってワークスペースを移動あるいは名前変更した結果、そのワークスペースが本来の親または子から孤立してしまった場合、ワークスペース管理ツールの名前変更機能を使用して、これらのワークスペースを正しい関係に戻すことができます。

たとえば、mv コマンドを使用してワークスペースの名前を A から B に変更してしまった場合には、次の手順で元の関係に直します。

  1. ワークスペース管理ツールの名前変更コマンドを使用して、名前を B から C に変更する。

    ワークスペース管理ツールは、このワークスペースの新しい名前 (C) を親および子ワークスペースで更新します。このとき、時間を節約するために同じデバイス上のパス名を使用してください。

  2. 名前変更コマンドを使用して名前を C から B に戻す。

    これで、すべてが元の関係に戻ります。

ワークスペースの親子関係の変更

第 2 章「ワークスペース管理の概要」で説明したように、親子関係はワークスペース階層を結合する縦糸のようなものです。ワークスペース管理ツールを使用して、ユーザーが自由にこの関係を変更することができます。

この節では、ワークスペースの親を明示的に変更する方法について説明します。親の変更は、更新ブリングオーバーまたはプットバックトランザクションの実行時に、新しい親のパス名を指定することによって暗黙に行うことも可能です。詳細は、第 7 章「ワークスペース間でのファイルのコピー」の更新ブリングオーバーおよびプットバックトランザクションの説明を参照してください。

親子関係の変更方法

ワークスペースの親を変更する方法について説明します。

ワークスペースアイコンのドラッグ & ドロップ

ワークスペースの親をワークスペースアイコンの操作で変更できます。ワークスペース表示区画でワークスペースアイコンを選択し、Shift キーを押したまま新しい親ワークスペースのアイコン上にドラッグします。表示に新しい関係が反映されます。


注 -

変更を確認するメッセージが表示されます。


親の変更コマンド

ワークスペースの親は、ワークスペース表示区画でアイコンを選択して「編集」⇒「親の変更」を選択することによって、変更することもできます。このコマンドを実行すると、「親の変更」ダイアログが開きます。

このダイアログの「親ワークスペースディレクトリ」フィールドに新しい親ディレクトリの名前を入力して、「了解」ボタンをクリックします。ワークスペース表示区画に新しい関係が反映されます。

「親ワークスペースディレクトリ」フィールドに親ワークスペースの名前を指定しなかった場合、そのワークスペースは孤児、つまり親のないワークスペースになります。この場合も、ワークスペース表示区画には新しい状態が反映されます。

親子関係の変更が必要な場合

ワークスペースの親を一時的または永久的に変更する必要があるのは、次のような場合です。

親子関係の変更例

ソフトウェアの開発作業では、製品のあるバージョンでバグが修正され、修正済みコードを配布するためのパッチリリースが作成されることがよくあります。バグが修正されたコードは通常、製品の次回リリースにも組み込んでおかなければなりません。ワークスペース管理ツールを使用して製品の開発を行なっている場合には、親子関係の変更機能を使用して比較的容易にパッチを組み込むことができます。

次の例は、ある製品のリリース 1.0 のバグを修正するパッチが作成され、すでに開発が開始されているリリース 2.0 にこのパッチを組み込む場合を想定しています。

  1. 作成ブリングオーバートランザクションを使用して、パッチが作成されたワークスペースのコピーを作成します (図 6-1)。これは、新しい親とのやりとりによって、そのワークスペースの内容が変更されるからです (ブリングオーバートランザクションにより、そのワークスペースと新しい親との間の同期がとられます)。

  2. 前述の親子関係変更方法を使用して、該当ワークスペースのコピーの親を 1.0patch から 2.0 に変更します (図 6-1 を参照)。

    図 6-1 patch ワークスペースの親を新規リリースに変更

    Graphic

  3. ワークスペースはこの後、新しい親から更新され、以後の作業には 2.0 からブリングオーバーしてきたコピーを使用します (図 6-2 の A を参照)。

  4. パッチに対して行われた修正を、2.0 からブリングオーバーしてきたファイルを持つ patch 内でマージした後、2.0 ワークスペースにプットバックします。これで、これらの修正を子ワークスペース 2.0child から利用することができます (図 6-2 の B を参照)。

    図 6-2 ファイルのブリングオーバー、マージ、新リリースへの統合

    Graphic

  5. ファイルを 2.0child にコピーした後、「編集」⇒「削除」⇒「ソースと Codemgr_wsdata ディレクトリ」を選択して patch を削除します (図 6-3 を参照)。

図 6-3 パッチファイルを 2.0child にコピーし、patch を削除

Graphic

ワークスペースへのアクセス制御

ワークスペース管理ツールでは、ワークスペースにアクセスするユーザーを制限できます。表 6-2 に、ユーザーが制御できるアクセスの種類 (9 種類) をまとめます。

表 6-2 アクセス制御が可能な操作

アクセスの種類 

説明 

bringover-from 

ワークスペースからファイルをブリングオーバーできるユーザーを制限する。  

bringover-to 

ワークスペースにファイルをブリングオーバーできるユーザーを制限する。  

putback-from 

ワークスペースからファイルをプットバックできるユーザーを制限する。  

putback-to 

ワークスペースにファイルをプットバックできるユーザーを制限する。  

undo 

ワークスペースで実行されたコマンドを取り消すことができるユーザーを制限する。  

workspace-delete 

ワークスペースを削除できるユーザーを制限する。 

workspace-move 

ワークスペースを移動できるユーザーを制限する。 

workspace-reparent 

ワークスペースの親を変更できるユーザーを制限する。  

workspace-reparent-to 

ワークスペースをほかのワークスペースの親に変更できるユーザーを制限する。 

これらの操作を行おうとすると、ワークスペース管理ツールは要求された操作を実行する前に、Codemgr_wsdata サブディレクトリ内のファイル access_control を調べて、そのユーザーに適切な権限があるかどうかをチェックします。access_control ファイルは、表 6-2 の 9 種類の操作と、その操作を行う権限を持つユーザーを表わす値からなるリストを収めたテキストファイルです。このファイルは、ワークスペースの作成時に自動的に作成され、ファイルの所有者はワークスペースの作成者になります。

アクセス権の表示や変更を行うときには、「オプション」⇒「ワークスペース」を選択し、「カテゴリ」リストボックスから「アクセス制御」を選択します (「アクセス制御の設定値の表示と変更」を参照)。

表 6-3 に、ワークスペース作成時の access_control のデフォルト設定を示します。

表 6-3 デフォルトのアクセス制御の権限

操作 

権限所有者 

bringover-from 

 

bringover-to 

作成者 

putback-from 

 

putback-to 

 

undo 

 

workspace-delete 

作成者 

workspace-move 

作成者 

workspace-reparent 

作成者 

workspace-reparent-to 

 


注 -

権限を所有する作成者は、作成者のログイン名で示されます。


ユーザーがワークスペースに対するアクセス権を持つかどうかを表わす方法はいろいろあります。表 6-4 に、ワークスペースへのアクセスを制御するときに指定できる値と、その意味を説明します。

表 6-4 ワークスペースのアクセス制御値

値 

意味 

@engineering 

ネットグループ engineering の全ユーザーに、この操作の実行権を与える 

-@engineering 

ネットグループ engineering のユーザーにはこの操作の実行権を与えない。"-" は否定の意味を表わす 

@special -user2 @engineering 

ネットグループ special および engineering の全ユーザーに、この操作の実行権を与える。ただし、user2 にはこの権限を与えない (user2 が special ネットグループに属していない場合)。"-" は否定の意味を表わす 

user1 user2 

ユーザー user1 と user2 に、この操作の実行権を与える 

"-" 

この操作の実行権をどのユーザーにも与えない 

作成者 

該当ワークスペースを作成したユーザーのみに、この操作の実行権を与える。実際には、その作成者のログイン名が示される 

(エントリなし) 

この操作をすべてのユーザーが実行できるようにする 


注 -

あるユーザーがアクセス権とアクセス制限の両方を持つように指定されている場合には、最初にリストされている指定が有効になります。



注 -

ネットグループがアクセス制御ファイルに含まれている場合には、該当する操作の処理性能が低下することがあります。これは、グループのメンバーをチェックするために要する時間 (数秒) が、操作の実行に要する時間に加算されるためです。


アクセス制御の設定値の表示と変更

「ワークスペース属性」ダイアログでは、アクセス制御の設定を表示したり変更したりすることができます。

アクセス制御の設定の表示

ワークスペースのアクセス制御の設定を表示するには:

  1. ワークスペース表示区画でワークスペースアイコンを選択する。

  2. 「オプション」⇒「ワークスペース」を選択する。

  3. 「カテゴリ」リストボックスから「アクセス制御」を選択する。

アクセス制御の設定の変更

ワークスペースのアクセス制御の設定を変更するには:

  1. ワークスペース表示区画でワークスペースアイコンを選択する。

  2. 「オプション」⇒「ワークスペース」を選択する。

  3. 「カテゴリ」リストボックスから「アクセス制御」を選択する。

  4. アクセス制御リストから 1 行を選択して「編集」ボタンをクリックし、「アクセス制御属性」ダイアログを開く。

    「編集」ボタンをクリックする前に選択した操作が、「操作」リストボックス内で自動的に選択されます。

    「アクセス制御属性」ダイアログの「操作」リストボックスで操作の種類を選択することもできます。

  5. パーミッションのオプションを次のラジオボタンで選択する。

    • 「なし」−どのユーザーにもパーミッションを与えない。

    • 「全部」−すべてのユーザーにパーミッションを与える。

    • 「指定」−下のパーミッションリストを使用して、パーミッションを与える (または与えない) ユーザーおよびネットグループのリストを作成する。

  6. パーミッションを個別またはグループ単位に与える場合には、次の項目を指定してエントリを作成する。

    • ユーザーまたはネットグループの名前を入力する「名前」フィールド

    • エントリをユーザーとするかネットグループとするかを指定する「種類」のラジオボタン

    • 指定ユーザー/ネットグループにパーミッションを与えるか与えないかを指定する「アクセス」のラジオボタン

  7. 「前に挿入」ボタンまたは「後ろに挿入」ボタンをクリックして、エントリをパーミッションリストに挿入する。

  8. 「了解」ボタンをクリックして、変更内容を適用する。

  9. 「ワークスペース属性」ダイアログで「了解」ボタンをクリックすると変更内容が access_control ファイルに書き込まれます。

ユーザーへのワークスペース変更通知

ワークスペース管理ツールを使用して開発作業を進めていると、さまざまなイベントがワークスペースで発生します。こうしたイベントの発生を、ワークスペース管理ツールから電子メールでユーザーに通知するように設定できます。通知の設定内容は、Codemgr_wsdata ディレクトリ内の notification というファイルに登録しておきます。

通知の設定内容には、次の項目があります。

次に、3 つの通知要求を含む notification ファイルの例を示します。


chip@mach1 bringover-to
BEGIN
dir1/foo.cc
dir2
END
biff@mach2 bringover-to putback-to
BEGIN
.
END
biff@mach2 workspace-move

最初のエントリは、ユーザー chip@mach1 への通知を指定するもので、ファイル dir1/foo.cc およびディレクトリ dir2 内の任意のファイル (パス名は該当ワークスペースの最上位ディレクトリからの相対パス名) がワークスペースにブリングオーバーされたときに通知が行われます。


注 -

各イベントに対応するファイルおよびディレクトリのエントリは BEGIN 文と END 文で囲みます。空のリスト、抜けのあるリスト、ピリオド "." だけしか含まないリストは、該当ワークスペース内のファイルとディレクトリすべてが通知の対象となることを示します。


2 番目のエントリは、ユーザー biff@mach2 への通知を指定するもので、該当ワークスペース内の任意のファイルがブリングオーバーまたはプットバックされたときに通知が行われます。ここで、ピリオド "." はワークスペース内のすべてのファイルを表しています。

3 番目のエントリは、ユーザー biff@mach2 への通知を指定するもので、該当ワークスペースが移動されたときに通知が行われます。なお、ワークスペース全体に関係するイベント (削除、移動、親の変更) の通知については、ディレクトリやファイルのリストを指定することはできません。

表 6-5 は、通知イベントの名前とその内容の一覧です。

表 6-5 通知イベント

イベント名 

説明 

bringover-from 

通知ファイルが存在するワークスペースからファイルがブリングオーバーされたときにメールが送信されます。 

bringover-to 

通知ファイルが存在するワークスペースにファイルがブリングオーバーされたときにメールが送信されます。 

putback-from 

通知ファイルが存在するワークスペースからファイルがプットバックされたときにメールが送信されます。 

putback-to 

通知ファイルが存在するワークスペースにファイルがプットバックされたときにメールが送信されます。 

undo 

通知ファイルが存在するワークスペースでトランザクションの実行結果が取り消されたときにメールが送信されます。 

workspace-delete 

通知ファイルが存在するワークスペースが削除されたときにメールが送信されます。 

workspace-move 

通知ファイルが存在するワークスペースが移動されたときにメールが送信されます。 

workspace-reparent 

通知ファイルが存在するワークスペースの親が変更されたときにメールが送信されます。 

workspace-reparent-to 

該当ワークスペースが別の既存ワークスペースの新しい親になったときにメールが送信されます。 

変更通知エントリの表示と変更

通知エントリを表示および変更するには、ワークスペース表示区画でワークスペースアイコンを選択し、「オプション」⇒「ワークスペース」を選択します。次に「カテゴリ」リストボックスから「通知」を選択します。notification ファイルに指定された内容が、「ワークスペース属性」ダイアログにも表示されます。

通知エントリの変更、作成、削除には、「エントリ作成」ボタンまたは「エントリ編集」ボタンを使用します。これらのボタンをクリックすると、「通知入力」ダイアログが開きます。

新しい通知エントリの作成

新しい通知エントリを作成するには:

  1. 何も選択しない状態で「エントリ作成」をクリックする。

  2. 「通知入力」ダイアログが開くので、このダイアログで各項目を次のように指定する。

    1. 「メールの宛先」フィールドに、通知メールを送信する宛先アドレスを入力する。

      有効なメールアドレスであればどのアドレスでも指定できます。エイリアスでの指定も可能です。

    2. 通知メールの送信に関するイベントのラジオボタンを選択する。

    3. 通知イベントを適用するファイルのラジオボタンを選択する。

      • 「全部」−ワークスペース内のすべてのファイル

      • 「指定」−ディレクトリまたはファイルを指定する

  3. ファイルまたはディレクトリを指定することを選択した場合は、「ファイル」テキスト区画にディレクトリおよびファイルのリストを作成する。

    • リストにファイルを追加するには、「リストに追加」ボタンをクリックして「通知ファイル追加」ダイアログでファイルを選択します。

    • リストからファイルを削除するには、「削除」ボタンまたは「すべてを削除」ボタンをクリックします。

  4. 「了解」ボタンをクリックすると、新しいエントリが通知のリストに追加される。

  5. 「ワークスペース属性」ダイアログで「了解」ボタンをクリックすると、変更内容が notification ファイルに適用される。

既存の通知エントリの変更

既存の通知エントリを変更するには:

  1. 「ワークスペース属性」ダイアログの通知のリストで変更するエントリを選択し、「エントリ編集」ボタンをクリックする。

  2. 「通知入力」ダイアログでエントリに変更を加える。

  3. 「了解」ボタンをクリックすると、通知のリスト内の当該エントリが変更される。

  4. 「ワークスペース属性」ダイアログで「了解」ボタンをクリックすると、変更内容が notification ファイルに適用される。


    注 -

    次のイベントはワークスペース全体に関わるため、ディレクトリやファイルを指定する必要はありません。

    workspace-delete

    workspace-move

    workspace-reparent

    workspace-reparent-to



    注 -

    リストにディレクトリを指定した場合、その下に存在するすべてのファイルが自動的に登録されます。


ワークスペースに関するコマンド履歴の表示

ワークスペース管理コマンドが実行されると、Codemgr_wsdata/history というファイルに記録が書き込まれます。あるワークスペースだけに適用されるコマンドは、そのワークスペースにのみ記録され、ワークスペース間でのトランザクションはソースと宛先の両方のワークスペースに記録されます。


注 -

コマンドはソースと宛先の両ワークスペースに記録されますが、変更されたファイルのリストは宛先ディレクトリのみに記録されます。


この履歴ファイルの内容を参照して、ある期間にわたってワークスペースにどのような変更がされてきたかを追跡できます。履歴ファイル中のエントリは、コマンド行に入力された内容で構成され、GUI のメニュー項目名には対応していません。コマンドの意味や構文については、マニュアルページで確認できます。表 6-6 は、GUI での操作と、履歴ファイルに記録される CLI コマンドとの対応表です。

表 6-6 GUI メニュー項目と CLI コマンドの対応

GUI メニュー項目 

対応する CLI コマンド 

ワークスペース作成 

workspace create

名前変更 

workspace move

親の変更 

workspace parent

作成ブリングオーバー 

bringover

更新ブリングオーバー 

bringover

プットバック 

putback

取消し 

ws_undo

衝突解決 

resolve


注 -

開発作業が活発に行われているワークスペースでは、Codemgr_wsdata/history ファイルが短期間で非常に大きくなってしまいます。このような場合は、定期的に不要なファイルの内容を削除して、サイズを小さくしてください。


次に挙げる履歴ファイルの一部は、更新ブリングオーバートランザクションが実行された場合の例です。各エントリ項目の意味については、表 6-7 で説明しています。なお、このエントリは子ワークスペースの履歴ファイルから取り出したもので、親ワークスペース内の対応するエントリは、ファイルのステータスメッセージが含まれていない点を除けば同じです。


COMMAND bringover -w /home/sponge3/larryh/ws/man_pages -p
	/home/sponge3/larryh/ws/manpages man trans/man 
 update: man/Makefile
 update: man/man5/access_control.5
 create: man/man5/notification.5
 create: man/man1/codemgr.1
 rename from: man/man1/def.dir.flg.1
        to: man/man1/def.dir.flp.1
 update: man/man1/def.dir.flp.1
 create: man/man1/codemgrtool.1
 rename from: man/man1/fileresolve.1
        to: deleted_files/man/man1/fileresolve.1
 update children's name history:
	deleted_files/man/man1/fileresolve.1
 rename from: man/man1/resolve_tty.1
         to: deleted_files/man/man1/resolve_tty.1
 update: deleted_files/man/man1/resolve_tty.1
 create: trans/man/man1/codemgr_acquire.1
 create: trans/man/man1/codemgr_prepare.1
CWD /tmp_mnt/home/sponge3/larryh/temp
RELEASE Beta 1.0 
HOST croak
USER larryh
PARENT_WORKSPACE  (/home/sponge3/larryh/ws/manpages) (sponge:/export/home/sponge3/larryh/ws/manpages)
CHILD_WORKSPACE  (/home/sponge3/larryh/ws/man_pages) (sponge:/export/home/sponge3/larryh/ws/man_pages)
START (Mon Jul 13 13:31:16 1992 PDT) (Mon Jul 13 20:31:16 1992 GMT)
END (Mon Jul 13 13:32:08 1992 PDT) (Mon Jul 13 20:32:08 1992 GMT)
STATUS 0

表 6-7 履歴ファイルのエントリ

エントリ 

説明 

COMMAND

実行されたコマンド。「トランザクション出力」ウィンドウに表示されるファイルステータスメッセージは、宛先ワークスペースの履歴ファイルにのみ記録される。 

CWD

コマンドが実行された現在の作業ディレクトリの名前。 

RELEASE

TeamWare ソフトウェアのリリース番号。 

HOST

コマンドが実行されたシステムのホスト名。 

USER

コマンドを実行したユーザーのログイン名。 

PARENT_WORKSPACE

親ワークスペースのパス名。2 種類の形式 (ホスト固有のパス名と、マシン:パス名)で表示される。 

CHILD_WORKSPACE

子ワークスペースのパス名。2 種類の形式 (ホスト固有のパス名と、マシン:パス名) で表示される。 

START

コマンドの実行開始時刻。現地時間とグリニッジ標準時 (GMT) の両形式。 

END

コマンドの実行終了時刻。現地時間とグリニッジ標準時 (GMT) の両形式。 

STATUS

コマンドの終了ステータス。0 は正常終了、その他の値はエラー条件、警告、またはその他のステータスを表わす。 

ワークスペースのロックによる整合性の保持

整合性を保つために、ワークスペース管理ツールのトランザクション (ブリングオーバー、取り消し、プットバック) は、対象ワークスペースをその処理が完了するまでロックします。これらのロックは、ワークスペース管理ツールのトランザクションのみに適用され、SCCS プログラムなどその他のコマンドには影響しません。ロックは、各ワークスペースの Codemgr_wsdata/locks ファイルに記録されます。ワークスペース管理ツールのトランザクションコマンドはワークスペースに対して処理を開始する前に、このファイルを参照してロックの有無を確認します。ロックには、次の 2 種類があります。

ワークスペース管理コマンドの実行後にロックが解除されなかった場合 (たとえば、システムクラッシュなどで)、このロックは手作業で削除してください。ロックが解除されないとほかのコマンドでそのワークスペースに対する読み取りや書き込みを行うことはできません。ワークスペース管理ツールの GUI を使用すれば、ワークスペースにその時点でかけられているロックを表示したり削除したりすることができます。また、ロックファイルを直接編集することも可能です。

ワークスペース管理ツールの GUI を使用してロックの表示や削除を行うには、ワークスペース表示区画からワークスペースアイコンを選択し、「オプション」メニューから「ワークスペース」を選択します。次に、「カテゴリ」リストボックスから「ロック」を選択します。

ロックの削除は、該当ロックが記述されている行を選択して「削除」ボタンをクリックします。最後に、「了解」ボタンを押します。

ワークスペース管理ツールの環境変数

ワークスペース管理ツールは、処理を実行する際に環境変数を参照します。ワークスペース管理ツールで使用する環境変数には、CODEMGR_WSCODEMGR_WSPATH があります。

CODEMGR_WS 環境変数

ワークスペース管理コマンドの実行対象としてワークスペースを明示的に指定しなかった場合、多くのコマンドはシェル環境変数 CODEMGR_WS を参照して、処理対象としてのデフォルトのワークスペースを判別します。自分の作業の大部分をある特定のワークスペースで行うのであれば、この変数をあらかじめ設定しておくことで、コマンド実行のたびにワークスペースを指定するという手間を省くことができます。

CODEMGR_WSPATH 環境変数

ワークスペース管理ツールは起動の際に、CODEMGR_WSPATH 変数に指定されているディレクトリパス名から自動的にワークスペースを読み込みます。CODEMGR_WSPATH は、ワークスペースディレクトリを含む 1 つ以上のディレクトリに対して設定できます。たとえば、/export/home/ws および ‾/projects/ws の 2 つのディレクトリに対してこの変数を設定するには、次のようなコマンドを使用します。


% setenv CODEMGR_WSPATH“/export/home/ws ‾/projects/ws”


注 -

CODEMGR_WS 環境変数は CODEMGR_WSPATH 環境変数に上書きされます。つまり、ワークスペース管理ツールで実行するコマンドでは、CODEMGR_WS 環境変数に定義されたデフォルトのワークスペースが使用されます。