Sun WorkShop TeamWare ユーザーズガイド ホーム目次前ページへ次ページへ索引


第 7 章

高度なファイル管理

この章では、以下のような高度なファイル管理機能について説明します。

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

ワークスペースの作成後は、ブリングオーバートランザクションを使用して定期的にワークスペースを更新する必要があります。

ワークスペースを更新する手順は次のとおりです。

1. 「ワークスペース管理」ウィンドウから「アクション」 「更新ブリングオーバー」を選択します。

2. 「トランザクション」ダイアログボックスの「更新ブリングオーバー」タブをクリックします。

3. 親および子ワークスペースのディレクトリ名を確認します。

4. 更新するディレクトリとファイルを選択します。

5. 「ブリングオーバー」をクリックします。

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

ファイルの履歴の表示

バージョン管理ツールでは、Sun WorkShop TeamWare ワークスペース内のファイルの履歴をグラフィカルに表示できます。ファイルを変更したユーザーや変更した日時を確認したり、変更理由などを記したコメントが追加されている場合に、そのコメントを表示したりできます。

「履歴」ウィンドウの 履歴グラフ区画には、選択されたファイルのデルタの分岐がグラフィカルに表示されます (図 7-1 を参照)。この履歴グラフによって、ファイルのデルタ構造とバージョン間の関係を知ることができます。履歴グラフ区画において、デフォルトで表示される破線は、その右側のデルタに左側のデルタの変更が反映されていることを示します。破線をたどることによって、時系列にデルタをたどることができます。

「履歴」ウィンドウでは、次のことを行うことができます。

ファイルの履歴を表示する手順は次のとおりです。

1. 「バージョン管理」ウィンドウからファイルをクリックして選択状態にします。

2. 「ファイル」 「ファイル履歴」を選択します。

「ファイル履歴」ウィンドウが表示されます (図 7-1 を参照)。

3. 同じファイルの別のデルタを表示する場合は、履歴グラフ区画からそのデルタ (1.2 などの番号で表示) をクリックします。


図 7-1   「ファイル履歴」ウィンドウ

「ファイル履歴」ウィンドウ

「ファイル履歴」ウィンドウは、表 7-1 に示す部分で構成されています。

表 7-1   「ファイル履歴」ウィンドウの各部
メニュー 説明
「表示」メニュー ファイルを管理するためのコマンドがあります。
「バージョン」メニュー 履歴グラフ区画のアイコンを管理するコマンドがあります。
「ファイル名」フィールド ファイルのパス名を表示します。
履歴グラフ区画 ファイルのデルタのアイコンを表示します。
デルタ情報区画 デルタの履歴情報を表示します。


ファイル履歴表示で使用されるシンボル

「ファイル履歴表示」ウィンドウでは、次のシンボルが使用されます。

表 7-2   ファイル履歴表示で使用されるシンボル  
シンボル 説明
バージョン番号の左横にあるファイルアイコンは、デフォルトのデルタを示します。
赤色のチェックマークは、そのファイルがチェックアウトされていることを示します。
×が付いているデルタは、マージされていないことを示します。
実線は、標準のデルタの流れを示します。
矢印付きの波線は、分岐がマージ済みであることを示します。
二重下線は、デフォルトのデルタを示します。デフォルトのデルタは、sccs-admin コマンドのフラグ d で設定されます。「SCCS ファイルの属性の設定」を参照してください


ファイルの履歴 (デルタ、分岐、バージョン)

バージョン管理ツールは、ファイルが存在している間のさまざまなバージョンの記録を取ります。ファイルがチェックインされるたびに、チェックインされたファイルとその前のバージョンとの間の行ごとの相違を記録します。この行ごとの相違情報全体をデルタと呼びます。

Sun WorkShop TeamWare に初めてファイルをチェックインすると、デフォルトでは、そのファイルには 1.1 というデルタが割り当てられます。これ以降のデルタには、1.2、1.3 という番号が割り当てられます。このようなデルタの縦構造が、SCCS ツリーのトランク (幹) を形成します。しかし、実際のソフトウェアの開発では、トランクからの枝分かれが必要になることがあります。これを、分岐と呼びます。分岐することによって、たとえば、同じファイルに対して、異なる 2 つのバージョンを並行して開発できます。たとえば、ソースコードのバグ修正などを行うときがそうです。分岐には、その分岐が発生した位置に基づいて、1.2.1.1 のような番号が割り当てられます。

SCCS のデルタ ID (SID) は、特定のデルタを表すために使用される番号です。この番号は、ドット (.) で区切られた 2 つの部分で構成されます。デフォルトでは、初期デルタの SID は 1.1 です。SID の前の部分はリリース番号、後の部分はレベル番号と呼ばれます。デルタをチェックインすると、レベル番号が自動的に大きくなります。分岐デルタに対する SID は、リリース番号とレベル番号、分岐番号、シーケンス番号 (リリース . レベル . 分岐 . シーケンス) の 4 つの部分で構成されます。分岐番号は、幹の特定のデルタから分かれた分岐に割り当てられる番号で、最初の分岐が 1、次の分岐が 2 というようになります。シーケンス番号は、特定の分岐上の各デルタに順に割り当てられる番号です。たとえば 1.2.1.1 という SID は、デルタ 1.2 から派生した最初の分岐の最初のデルタを示します。デルタ 1.2 に 2 つ目の分岐を追加すると、その分岐デルタに 1.2.2.1 という番号が割り当てられます。

分岐の概念は、ツリー上のあらゆるデルタに適用されます。分岐のコンポーネントは、トランクを基準にした位置とは関係なく、分岐上の作成順に番号が割り当てられます。 このため、すべての分岐のデルタはその番号によって特定できます。トランクのデルタは分岐のデルタの番号から特定できますが、トランクのデルタから分岐のデルタまでの完全なパスを特定することはできません。

たとえば、デルタ 1.3 に 1 つの分岐がある場合、その分岐上のすべてのデルタには 1.3.1.n という番号が割り当てられます。この分岐のデルタから別の分岐が発生している場合、その新しい分岐のデルタには 1.3.2.n が割り当てられます。デルタ 1.3.2.2 の番号から推測できることは、そのデルタが、トランクであるデルタ 1.3 から発生した 2 つ目の分岐の 2 つ目のデルタであるということだけです。デルタ 1.3.2.2 という番号から基、そのデルタとトランクの祖先デルタ (1.3) との間のすべてのデルタを知ることはできません。

デルタとバージョンという用語はしばしば同じ意味で使用されますが、実際には異なります。バージョン管理ツールは、集められたデルタの 1 つのまとまりからファイルの 1 つのバージョンを作成します。いくつかのデルタを除外したファイルのバージョンを取り出すこともできます。

デルタのマージ

開発を並行して進め、その時々に変更をマージしてトランクに戻すことが合理的である場合があります。分岐上のファイルをマージすると、その分岐は完結することになります。

2 つのデルタをマージする手順は次のとおりです。

1. バージョン管理ツールを起動し、作業用ディレクトリを選択します。

2. 「コマンド」 「チェックアウト」を選択し、ファイルをチェックアウトします。

3. 「ファイル」 「ファイル履歴」を選択し、ファイルの履歴を表示します。

4. 「履歴」ウィンドウの 履歴グラフ区画からデルタを 2 つを選択します。

5. 2 つのデルタ間の相違を調べるには、次のいずれかを選択します。

6. ファイルを変更します。

7. 必要なコメントを追加します。

8. 「コマンド」 「チェックイン」を選択して、ファイルをチェックインします。

ファイル名の変更とファイルの移動、削除

ファイル名を変更したり、ファイルを移動または削除した場合、ワークスペース管理ツールは、ブリングオーバーやプットバックトランザクションの処理中に、その変更を記録し、変更されたファイルを管理します。こうした処理はワークスペース管理ツールによって自動的に行われますが、ここでは、ワークスペース管理ツールの仕組みを理解するために、ファイル名の変更やファイルの移動、削除を行なったときに、ワークスペース管理ツールによってどのような処理が行われるのかを説明します。


注 - ワークスペースの名前変更や移動には、CDE (共通デスクトップ環境) のファイルマネージャや SunOS` オペレーティングシステムの mv コマンドではなく、この節で紹介する手順を使用してください。この手順を使用することによって、ワークスペースの親子関係が保持されます。

ファイル名の変更と移動

名前を変更したファイルや、移動したファイルをブリングオーバーまたはプットバックするとき、ワークスペース管理ツールは、そのファイルが新たに作成されたものか、すでに存在していたファイルが名前変更または移動されたものかを判断する必要があります。名前変更または移動されたファイルの場合、ワークスペース管理ツールはそのファイルのファイル名と履歴ファイルの両方を更新します。ファイル内容更新と衝突で使用されたのと同じ規則に基づいて、ワークスペース階層全体にその変更を反映させます。

トランザクション中、ワークスペース管理ツールはファイルを別々に処理します。ディレクトリ名を変更したり、ディレクトリを移動したりした場合は、その中のファイルが別々に名前変更または移動されたかのように、各ファイルは 1 つずつ評価されます。

ファイル名の変更例

図 7-2 は、親ワークスペース内のファイルの名前を "C" から "D" に変更している例を示しています。このファイルを子ワークスペースにブリングオーバーするとき、ワークスペース管理ツールは、次のどちらの場合であるのかを判断する必要があります。


図 7-2   ファイル "C" の名前を "D" に変更

この判断は、プットバックトランザクションでも同様に行われます。

ワークスペース管理ツールが行う処理は、ファイル "D" が新たに作成されたファイルなのか、名前が変更された既存のファイルなのかによって異なります。ファイル "D" が親ワークスペースの新規ファイルの場合は、子ワークスペースにそのファイルを作成します。ファイル "D" が、名前が変更されただけの既存ファイルの場合は、子ワークスペース内のファイル "C" の名前を "D" に変更します。

ワークスペース管理ツールは、名前が変更された場合でもファイルを特定できるよう、SCCS 履歴ファイルに変更情報を記録します。下記は、ブリングオーバーまたはプットバックの出力を表示するときに表示されるメッセージです。

検査したファイル数:   

更新ブリングオーバーまたはプットバックトランザクションを処理するとき、ワークスペース管理ツールは、そのトランザクションに関係するすべてのファイルについて、名前が変更されていないかどうかを調べてから、ファイルの転送を開始します。

名前が変更されているファイルを検出した場合、ブリングオーバーでは子ワークスペース、プットバックでは親ワークスペースにその名前変更を反映します。また、「トランザクション出力」ウィンドウには、次のようなメッセージによって名前の変更が通知されます。

名前変更    旧: old_filename
           新: new_filename

名前の履歴

ワークスペース管理ツールは、その SCCS 履歴ファイルにファイル名の履歴情報を記録します。 この名前の履歴は、ファイルが作成されてから、そのファイルに付けられた名前のリストであり、ワークスペースを基準にした相対ファイル名の形式になっています。ワークスペースは、この情報を利用して、名前が変更されたファイルか新規のファイルかを判断します。ファイル名が変更された場合、そのファイルを処理対象とする次のブリングオーバーまたはプットバックトランザクションで、そのファイルの名前履歴を更新します。名前履歴が更新されると、「トランザクション出力」ウィンドウにその情報が表示されます。

名前に関する要約:
        1   親の名前履歴を更新
        1   子の名前履歴を更新

名前変更の衝突

ごくまれに、親ワークスペースと子ワークスペースで同じファイルが同時に名前変更されることがあります (名前変更の衝突)。たとえば、図 7-3 の例では、親ワークスペースのファイル "C" の名前が "D" に変更されたのと同時に、子ワークスペースでファイル "C" のが "F" に名前変更されています。


図 7-3   親と子ワークスペースにおけるファイル "C" の名前変更の衝突例

この場合、ワークスペース管理ツールは、親ワークスペースのファイル "D" と子ワークスペースのファイル "E" が同じファイルで、名前が違うだけであることを検出します。名前変更の衝突がある場合、ワークスペース管理ツールは次のことを行います。

また、ワークスペース管理ツールは、「トランザクション出力」ウィンドウに次のメッセージを表示して、このことを通知します。

名前の衝突です: name_in_child
名前変更    旧: name_in_child
          新: name_in_parent

ファイルの削除

ワークスペースからファイルが削除されたときにワークスペース管理ツールが行う処理は多少複雑です。Sun WorkShop TeamWare のコマンドを使用しないでワークスペースからファイルが削除された場合、ワークスペース管理ツールは、そのファイルを、ワークスペースの親また子で新たに作成されたファイルとみなします。

たとえば、図 7-4 の例では、Solaris オペレーティング環境の rm コマンドを使用して、子ワークスペースからファイル "C" を削除した後で、更新ブリングオーバートランザクションでその子ワークスペースを更新しています。


図 7-4   rm コマンドで子から "C" を削除し、ブリングオーバーで再作成

ワークスペース管理ツールは 2 つのワークスペースを調べ、ファイル "C" が親ワークスペースには存在していて、子ワークスペースには存在しないと判断します。そして、通常のワークスペース管理ツールの規則に従って、子ワークスペースにファイル "C" を作成します。

ファイルおよびワークスペースを削除する場合は、必ず Sun WorkShop TeamWare のコマンドを使用してください。

Sun WorkShop TeamWare ファイルの削除

ファイルを削除する場合は、オペレーティングシステムのコマンドではなく、以下に説明する手順を使用してください。この手順を使用することによって、ファイルの関係と履歴が保持されます。

Sun WorkShop TeamWare ファイルを削除する手順は次のとおりです。

1. バージョン管理ツールを起動します。

2. ファイルをクリックして選択します。

3. 「ワークスペース」 「ファイル削除」を選択します。

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

バージョン管理ツールは、実際にはファイルを削除しないで、deleted_files ディレクトリにファイルを移動します。この変更は、ワークスペース階層全体に名前変更として伝えられ、すべてのワークスペースから該当するファイルが削除されます。

この手順を使用してファイルを削除した後でファイルが再び表われるという心配はありません。詳細は、「ファイルの削除」を参照してください。

カスタマイズメニューの作成

バージョン管理ツールでは、他のプログラムやよく使うコマンドにアクセスするための独自のプルダウンメニュー (カスタムマイズメニュー) を作成できます。

カスタマイズメニューを作成するには、次の手順に従います。

1. 「ワークスペース管理」ウィンドウから「TeamWare」 「バージョン管理」を選択して、「バージョン管理」ウィンドウを開きます。

2. 「バージョン管理」ウィンドウで「表示」 「オプション」を選択します。

3. 「カスタマイズメニュー」タブをクリックします。

4. 「コマンド」フィールドにコマンドのフルパス名を入力します。

例: /bin/grep

Sun WorkShop TeamWare には、コマンドの引数に使用できる、ARG および FILE という 2 つのマクロが用意されています。

/bin/grep $ARGS $FILES

5. 「メニューラベル」フィールドに、メニューに表示する項目名を入力します。

6. コマンドの出力を表示する場合は、「出力ウィンドウ」のチェックボックスを選択します。

7. ユーザーに入力を求めるメッセージを表示する場合は、「プロンプトウィンドウ」のチェックボックスを選択します。

8. 「プロンプト」フィールドに、プロンプトウィンドウに表示するテキストを入力します。

9. 「追加」をクリックし、定義したメニュー項目をリストに追加します。

10. 「テスト」をクリックし、定義したコマンドをテストします。

11. 問題がなければ、「了解」をクリックします。

「バージョン管理」ウィンドウに、「Customized」という見出しのメニューが表示されます。追加したコマンドがメニューに含まれていることを確認してください。

「読み込み」メニューへのパスの追加

プロジェクトによっては、階層構造がかなり複雑になることがあります。そうした場合、定期的に作業をするファイルにアクセスするために、何回もクリックして、いくつかのディレクトリをたどったり、長いパス名を入力したりする必要があります。ここで説明する、「読み込み」メニューにパスを追加する方法で、この作業を簡単にすることができます。

「読み込み」メニューにパスを追加する手順は次のとおりです。

1. 「ワークスペース管理」ウィンドウから「TeamWare」 「バージョン管理」を選択し、「バージョン管理」ウィンドウを開きます。

2. 「バージョン管理」ウィンドウから「表示」 「オプション」を選択し、「読み込みメニューのデフォルト」タブをクリックします。

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

例: /set/pubs/Work/Workspaces/TAZ/IntA/sig_team

4. 「メニューラベル」フィールドに「読み込み」メニューに表示する名前を入力します。

例: sigteam

5. 「追加」をクリックします。

「読み込みメニューのデフォルト」タブに指定した名前が表示されます。

6. 「了解」をクリックします。

「ファイル」 「読み込み」メニューに、指定した名前のメニュー項目が表示されます。この項目を選択すると、バージョン管理ツールによって、定義したディレクトリの内容が読み込まれます。

バージョン管理ツールの属性の設定

「オプション」ダイアログボックスを使用して、バージョン管理ツールの属性を設定できます (図 7-5 を参照)。「オプション」ダイアログボックスを開くには、「表示」 「オプション」を選択します。


図 7-5   バージョン管理ツールの「オプション」ダイアログボックス

バージョン管理ツールの「オプション」ダイアログボックスの「一般」タブには、表 7-3 に示す項目があります。

表 7-3   バージョン管理ツールの「オプション」ダイアログボックス
項目 説明
バージョン管理 現在は SCCS だけが選択できます。
メインのファイルリスト 「バージョン管理」ウィンドウに表示する SCCS ファイルの種類を指定できます。
ダブルクリックの動作 「ファイルの状態をトグル」を選択した場合は、「チェックアウトをダブルクリックで確認」チェックボックスも選択できます。この場合は、チェックインの際、ダイアログボックスの「了解」をクリックするまで、ファイルのアイコン上にチェックマークが表示されたままになります。
履歴グラフ 履歴グラフ区画に表示する項目を設定できます。
履歴情報 表示する履歴情報の種類を選択できます。「すべてのファイル履歴を表示」を選択した場合は、履歴を収集するコマンドを指定できます。
ファイル履歴コマンド 「すべてのファイル履歴を表示」属性を選択した場合に有効になるフィールドです。履歴ファイルの表示に使用する sccs prt コマンドのオプションを指定できます。デフォルトは、オプションなしの sccs prt コマンドです。
エディタの選択 デルタの内容を表示したり、編集するデルタを開いたりするときに自動的に起動するエディタを指定できます。「その他」を選択した場合は、独立したウィンドウでエディタを起動するコマンドをテキストボックスに入力する必要があります。ファイル名は指定したコマンドに付加されます。


SCCS ファイルの属性の設定

「SCCS ファイルの属性」ダイアログボックスを使用して、SCCS フラグの設定を変更できます。これらのフラグは、SCCS-admin コマンドに対するオプションになります。SCCS ファイル属性については、Solaris の『プログラミングユーティリティ』または sccs-admin のマニュアルページを参照してください。

SCCS ファイルの属性を設定する手順は次のとおりです。

1. 「バージョン管理」ウィンドウからファイルを 1 つ選択します。

2. 「ファイル」 「ファイル情報」を選択して、「SCCS ファイルの属性」ダイアログボックスを開きます。

3. 「SCCS ファイルの属性」ダイアログボックスでファイル属性を設定します。

「SCCS ファイルの属性」ダイアログボックスには、表 7-4 に示す項目 (フラグ) があります。

表 7-4   SCCS ファイルの属性  
フラグ 説明
エンコーディング使用
('e' フラグ)
読み取り専用で、値は「はい」または「いいえ」のいずれかです。
'No id keywords' の扱い
('i' フラグ)
ID キーワードがないファイルが検出されたときに「エラー」または「警告」のどちらを発行するかを指定します。
空のリリース
('n' フラグ)
リリースが省略されたときに空のリリースの作成を許可するかどうかを指定します。値は「使用する」、「使用しない」のいずれかです。
デルタの分岐
('b' フラグ)
分岐デルタを有効にするかどうかを指定します。値は「有効」または「無効」のいずれかです。
並行更新
('j' フラグ)
並行更新を許可するかどうかを指定します。値は「使用する」または 「使用しない」のいずれかです。
リリースの上限
('c' フラグ)
チェックアウト可能な最大リリース数を設定します。値は 1 〜 9999 の範囲で、デフォルトは 9999 です。
リリースの下限
('f' フラグ)
チェックアウト可能な最小リリース数を設定します。値は 1 〜 9999 の範囲で、デフォルトは 1 です。
デフォルト SID
('d' フラグ)
デフォルトのデルタ番号 (SID) を設定します。たとえば、1.6 というような番号を入力できます。SID については、「ファイルの履歴 (デルタ、分岐、バージョン)」を参照してください。
リリースをロック
('l' フラグ)
デルタからリリースを保護します。指定したリリースのファイルのチェックアウトや編集ができなくなります。リリース番号を入力します。複数のリリース番号を入力する場合は、2.1, 2.1.3 というようにコンマで区切って入力します。
'Q' キーワードの値
('q' フラグ)
ファイルを読み取り専用で開いたときにキーワード値を設定します。
モジュール名
('m' フラグ)
モジュール名キーワード値を設定します。デフォルトは、先頭の s が削除された SCCS ファイル名です。
モジュールの型
('t' フラグ)
モジュールタイプ値を設定します。
妥当性検査プログラム
('v' フラグ)
新しいデルタに対する変更要求 (MR) 番号用の妥当性検査用プログラムを指定します。ファイルをチェックインしようとすると、ファイルに対する MR 番号の入力が求められ、入力された MR 番号が妥当性検査用プログラムに渡されます。妥当性検査用プログラムが成功した場合に、チェックインが許可されます。



サン・マイクロシステムズ株式会社
Copyright information. All rights reserved.
ホーム   |   目次   |   前ページへ   |   次ページへ   |   索引