この章ではバージョン管理ツールを使用して基本的な SCCS 機能を実行する方法を示します。
この章は、以下の節で構成されています。
ソースファイルへの変更を複数の人が行う場合は、書き込みアクセスを調整することが重要です。ファイルの更新情報を記録しておくと、いつどんな理由で変更を加えたのかを知ることができます。
ソースコード管理システム (SCCS) を使用すると、ソースファイルへの書き込みアクセスを管理し、それらのファイルへの変更を監視できます。同じファイルを更新できるのは一度に 1 人だけで、加えられた変更はすべて履歴ファイルに記録されます。
バージョン管理ツールは SCCS 用の GUI です。このツールを使用すると、SCCS コマンドを知らなくても、ファイルを操作したり SCCS 関数を実行したりすることができます。ファイルのチェックインおよびチェックアウトや、履歴の分岐をたどる移動も、簡単に行うことができます。
バージョン管理ツールでは次の処理を実行できます。
SCCS にファイルをチェックインする
編集のためにファイルの 1 つのバージョンをチェックアウトするとともにロックする
SCCS 履歴からファイルの任意のバージョンのコピーを取り出す
SCCS 履歴ファイルの分岐を図で表示する
変更を取り消し、チェックアウトしたときの状態に戻す
ファイルの編集が可能かどうかを問い合わせる
ファイルマージを使用して選択されたファイル間の相違を問い合わせる
実行済みコマンドの要約が記録されたバージョンログを表示する
バージョン管理ツールを使用してこれらの処理を行うと、同時進行している複数の開発プロジェクトの円滑化を図ることができます。
SCCS ファイルに適用されているデルタは、初期バージョンをルートとしたツリーのノードとして表示します。デフォルトでは、ルートデルタは 1.1 と番号付けられます。この SCCS デルタ ID (SID) の 2 つの部分は、それぞれリリース番号とレベル番号です。1.1 の下のデルタ (ノード) は 1.2、その下は 1.3 となります。この縦の構造を、SCCS デルタツリーのトランクといいます。トランクは、SCCS ファイルの通常の開発過程を表します。
ただし、状況に応じて、ツリーの分岐が必要になる場合があります。たとえば、バグフィックスなどの目的で代替バージョンが並行して開発される場合に、それぞれのバージョンを追跡するために分岐を使用できます。
分岐デルタの SID は、リリース番号、レベル番号、分岐番号、およびシーケンス番号の 4 つの部分から構成されます。分岐番号は、特定のトランクデルタの子孫である各分岐に割り当てられます。最初の分岐は 1、次は 2 となります。シーケンス番号は、特定の分岐に属する各デルタに順番に割り当てられます。
つまり、1.3.1.1 は、デルタ 1.3 から派生した最初の分岐の最初のデルタであることを示します。デルタ 1.3 の 2 番目の分岐は 1.3.2.1 となります。
分岐の概念は、ツリーのすべてのデルタに適用されます。分岐コンポーネントは、トランクに対する位置と関係なく、その分岐での作成順に割り当てられます。このため、すべての分岐デルタが名前で識別されます。ただし、分岐デルタの名前からトランクデルタを識別することはできますが、トランクデルタから分岐デルタへのパス全体を特定することはできません。
たとえば、デルタ 1.3 に分岐が 1 つある場合、その分岐に属するすべてのデルタは、 1.3.n と名付けられます。この分岐上のデルタの 1 つから別の分岐が生じた場合、その新しい分岐に属するすべてのデルタは 1.3.2.n と名付けられます。1.3.2.2 というデルタ名からわかるのは、トランクの祖先である 1.3 というデルタにおける歴代 2 番目の分岐上の歴代 2 番目のデルタということだけです。1.3.2.2 というデルタ名から、このデルタとトランクの祖先 (1.3) との間にあるデルタすべてを知ることはできません。
ファイルをチェックインすると、SCCS では、そのファイルと前のバージョンのテキストを 1 行ごとに比較し、その相違だけを記録します。この相違の記録がいわゆるデルタです。最初にチェックアウトしたときのファイルバージョンは、一連のデルタの累積になっています。デルタとバージョンという 2 つの用語は、類義語のように使用される場合がありますが、正確な意味は異なります。特定のデルタを省いたバージョンを取り出すこともできます。
ファイルを初めて SCCS にチェックインすると、その新しい SCCS ファイルに対する履歴ファイルが作成されます。履歴ファイルの初期バージョンには、ソースファイルの完全なテキストが使用されます。この初期履歴ファイルは、2 番目以降のデルタの比較対象となるファイルです。そのプレフィックス (s.) から、履歴ファイルは s. ファイル (s ドットファイル) とも呼ばれます。
SCCS デルタ ID (SID) は、特定のデルタを識別するために使用される番号です。この番号は、ドット (.) で区切られた 2 つの部分から構成されています。デフォルトでは、初期デルタの SID は 1.1 です。SID の前の部分はリリース番号、後の部分はレベル番号です。デルタを 1 つチェックインするたびに、レベル番号は自動的に 1 増加します。
「バージョン管理」ウィンドウ (図 11-1) には、読み込んだディレクトリ内のディレクトリおよび SCCS ファイルが表示されます。
「ファイル」 メニュー |
ファイルを管理するためのコマンドが表示されます。 |
「表示」メニュー |
ファイル表示区画に表示されているアイコンを制御したり更新したりするためのコマンドが表示されます。 |
「コマンド」 メニュー |
ファイルをチェックインしたりチェックアウトしたりするためのコマンドが表示されます。 |
「ワークスペース」 メニュー |
SCCS で管理されているファイルの検索、削除、および移動を行うためのコマンドが表示されます。 |
「TeamWare」 メニュー |
ほかの TeamWare ツールを起動するためのコマンドが表示されます。 |
「ディレクトリ」フィールド |
表示するディレクトリを指定します。 |
ファイル表示区画 |
SCCS で管理されているすべてのディレクトリおよびファイルのアイコンが表示されます。 |
バージョン管理 メッセージ表示領域 |
「バージョン管理」ウィンドウでの操作に関するメッセージが表示されます。 |
SCCS からチェックアウトされたファイルにはチェックマークが付けられます。
各ディレクトリについて、そのディレクトリに SCCS で管理されているファイルが含まれているかどうかが表示で示されます。ディレクトリはファイルおよびディレクトリを格納するものであり、何階層も下に SCCS ファイルやディレクトリが含まれている可能性があります。「バージョン管理」ウィンドウに表示されるファイルは、SCCS で管理されているものだけです。ディレクトリ内の SCCS ファイル以外のファイルは、「コマンド」⇒「新たにチェックイン」を選択すると「新たにチェックイン」ウィンドウに表示されます。
「履歴」ダイアログには、選択したファイルの SCCS デルタ分岐が図で表示されます。この履歴グラフでファイルのデルタ構造を参照して、バージョン間の関係を評価できます。デフォルトで表示される破線は、その左にあるデルタからの変更が、右のデルタに含まれていることを示しています。破線をたどっていくと、作成された時間の順にデルタをたどることができます。
「履歴」ダイアログを使用すると、次の処理を実行することができます。
履歴グラフからデルタを選択すると、デルタ情報区画にそのデルタに関する情報が表示されます。
履歴グラフで選択したデルタを、現在の SCCS 状態に応じてチェックインまたはチェックアウトすることができます。
「表示」⇒「ファイルの内容を見る」を選択すると、選択したデルタの内容がエディタのウィンドウに表示されます。
デルタを 2 つ選択して「表示」⇒「差分をファイルマージで」を選択すると、「ファイルマージ」ウィンドウが開き、選択した 2 つデルタが左右に対比して表示されます。
デルタを 2 つ選択して「表示」⇒「差分をテキストエディタで」を選択すると、エディタのウィンドウが開き、SCCS の diff コマンドの出力と同様、相違がテキストで表示されます。
「表示」メニュー |
ファイルを管理するためのコマンドが表示されます。 |
「バージョン」メニュー |
履歴グラフ区画に表示されたアイコンを管理するためのコマンドが表示されます。 |
「ファイル名」 フィールド |
ファイルのパス名が表示されます。 |
履歴グラフ区画 |
ファイルのデルタのアイコンが表示されます。 |
デルタ情報区画 |
デルタの履歴情報が表示されます。 |
履歴メッセージ表示領域 |
「履歴」ダイアログでの操作に関するメッセージが表示されます。 |
バージョン管理ツールを使用した典型的な SCCS セッションを取り上げて、その概要を説明します。読者がすでに SCCS に精通していることを前提としています。ここでは次の事項について説明します。
SCCS の管理下にあるファイルがまだ存在しないときの初期セッション
プロジェクトがすでに SCCS の管理下にあるときのセッション
開発が始まっているプロジェクトのソースコードを、SCCS の管理下に置いて、ソースコード管理システムを使用できます。ここでは、プロジェクトがすでに進んでおり、プロジェクトの階層が確立されているものとします。
プロジェクトを SCCS の管理下に置くには:
次のうちのいずれかの方法でバージョン管理ツールを起動する。
シェルコマンドプロンプトで twversion と入力し、その後にアンパサンド (&) を入力する。または、シェルコマンドプロンプトで twversion と入力し、必要に応じてパス名を指定し、その後にアンパサンド (&) を入力する。たとえば、次のように入力する。
demo% twversion &
demo% twversion <ディレクトリ名> &
「ワークスペース管理」ウィンドウでワークスペースアイコンをダブルクリックする。
「バージョン管理」ウィンドウで、該当するプロジェクトディレクトリのアイコンをダブルクリックする。
選択したディレクトリに移動します。ここには SCCS の管理下にあるファイルがまだ存在しないため、ディレクトリだけが表示されます。
「コマンド」⇒「新たにチェックイン」を選択する。
「新たにチェックイン」ダイアログに、SCCS の管理下にないファイルのリストが表示されます。
SCCS の管理下に置きたいファイルを選択し、「初期コメント」区画にコメントを入力する。
「了解」ボタンをクリックして、選択したファイルをチェックインする。
SCCS の管理下に置かれたファイルは、「バージョン管理」ウィンドウに表示されます。
必要に応じて各プロジェクトディレクトリで同様の手順を繰り返します。SCCS の管理下に置かれたファイルの取り扱いは、次の「SCCS の管理下にあるプロジェクトの処理」を参照してください。
プロジェクトを SCCS の管理下に置いたら、バージョン管理ツールを使用して SCCS 機能を実行できます。基本的な SCCS 処理と、具体的なプロジェクトでの応用方法は以下のような手順になります。次の節以降で、それぞれの実行方法について詳しく説明します。
以下の説明は、手順の一例です。プロジェクトの目的や、プロジェクトに必要な作業内容によって、それぞれの手順は異なります。
作業用ディレクトリでバージョン管理ツールを起動する。
「コマンド」⇒「チェックアウト」または「コマンド」⇒「チェックアウトして、編集」を選択して、ファイルをチェックアウトする。
「ファイル」⇒「ファイル履歴」を選択して、ファイルの履歴グラフを表示する。
「履歴」ウィンドウの履歴グラフからデルタを 2 つ選択する。次に、「表示」⇒「差分をファイルマージで」または「表示」⇒「差分をテキストエディタで」を選択して、両デルタの相違を調べる。
ファイルに変更を加える。
必要なコメントを追加する。
「コマンド」⇒「チェックイン」を選択して、ファイルをチェックインする。
これらの手順は、プロジェクトの必要性に応じて繰り返して実行したり、別な方法となることもあります。以降では、バージョン管理ツールを使用してさまざまな SCCS 機能を実行する方法について詳細に説明します。
SCCS 処理は、各ファイル 1 つずつ、あるいは複数のファイル単位に対して、実行できます。機能を実行する対象となるファイルは単独または複数で選択できます。
「コマンド」メニューでは次の処理を実行することができます。
ファイルをチェックアウトする
ファイルをチェックインする
ファイルをチェックアウトして編集する
新しいファイルを SCCS にチェックインする
ファイルのチェックアウトを取り消す
すでに SCCS の管理下にあるファイルのチェックアウトとチェックインの手順について説明します。
ファイルをチェックアウトするには、次の 2 つの方法があります。
チェックアウトしたいファイルのアイコンを「バージョン管理」ウィンドウで選択する。次に、「コマンド」⇒「チェックアウト」を選択する。
選択したファイルがチェックアウトされ、ファイルのアイコンにチェックマークが表示されます。この方法は、複数のファイルを一度にチェックアウトしたいときに便利です。
「バージョン管理」ウィンドウに表示されているファイルアイコンをダブルクリックする (「オプション」ダイアログで設定している場合のみ)。
ファイルのアイコンにチェックマークが表示され、そのファイルは操作を行なったユーザを所有者としてチェックアウトされます。これはデフォルトの動作ではないため、このダブルクリックによる処理を使用するには設定を変更する必要があります。「表示」⇒「オプション」を選択し、「オプション」ダイアログの「ダブルクリックの動作」セクションで「SCCS 状態トグル」ラジオボタンを選択して、「チェックアウトをダブルクリックで確認」オプションを選択します (「バージョン管理ツール属性の変更」を参照)。
ファイルをチェックインするには、次の 2 つの方法があります。
「バージョン管理」ウィンドウでチェックインしたいファイルのアイコンを選択し、「コマンド」⇒「チェックイン」を選択する。「チェックイン」ダイアログに適切なコメントを入力してから、「適用」ボタンをクリックする。
「了解」ボタンを選択するまで、チェックインダイアログは表示されたままです。この方法は、複数のファイルに同じコメントを付けて同時にチェックインするときに便利です。
「バージョン管理」ウィンドウに表示されているチェックアウトされたファイルのアイコンをダブルクリックし、「チェックイン」ダイアログに適切なコメントを入力してから、「適用」ボタンをクリックする。
「了解」ボタンを選択するまで、チェックインダイアログは表示されたままです。これはデフォルトの動作ではないため、このダブルクリックによる処理を使用するには設定を変更する必要があります。「表示」⇒「オプション」を選択し、「オプション」ダイアログの「ダブルクリックの動作」セクションで「SCCS 状態トグル」ラジオボタンを選択して、「チェックアウトをダブルクリックで確認」オプションを選択します。
SCCS の管理下にあるファイルをチェックアウトし、エディタのウィンドウに表示する方法について説明します。「編集」メニューを使用して、次の 2 つの方法で編集することができます。
デフォルトでは、コマンドツールのウィンドウに vi エディタでファイルが表示されます。エディタの選択については、「バージョン管理ツール属性の変更」を参照してください。
SCCS の管理下にないファイルは「バージョン管理」ウィンドウに表示されません。
新しいファイルをチェックインするには:
「バージョン管理」ウィンドウでディレクトリアイコンをダブルクリックするか、「ディレクトリ」フィールドにディレクトリパスを入力する。
「コマンド」⇒「新たにチェックイン」を選択する。
「新たにチェックイン」ダイアログが開き、SCCS の管理下にないファイルのリストが表示されます。
「新たにチェックイン」ダイアログに表示されているファイルから、チェックインするファイルを選択する。
「初期コメント」区画に適切な初期コメントを入力し、「了解」ボタンをクリックする。
チェックインされたファイルは「新たにチェックイン」ダイアログから消去され、「バージョン管理」ウィンドウに表示されます。
間違ってファイルをチェックアウトして、そのファイルのチェックアウトを取り消したい場合は、チェックアウトを無効にします。チェックインしてコメントを入力する必要はありません。
ファイルのチェックアウトを取り消すには、チェックアウトを取り消すファイルを選択して、「コマンド」⇒「アンチェックアウト」を選択します。
「オプション」ダイアログ (図 11-3 参照) を使用して、現在のセッションで有効なバージョン管理ツール属性を設定できます。「オプション」ダイアログを開くには、「表示」⇒「オプション」を選択します。
メインのファイルリスト |
「バージョン管理」ウィンドウに表示する SCCS ファイルの種類を指定します。 |
ダブルクリックの動作 |
「バージョン管理」ウィンドウでダブルクリックしたときの動作を指定します。「SCCS 状態トグル」ラジオボタンを選択した場合は、「チェックアウトをダブルクリックで確認」オプションを指定すると、ダブルクリックでファイルのチェックアウトができます。 |
履歴グラフ |
履歴グラフの表示に関するオプションを定義します。 |
履歴情報 |
履歴グラフでデルタを選択したときに表示される情報の範囲を指定します。「全ファイル履歴を表示」オプションを選択した場合は、履歴を収集するためのコマンドも指定できます。 |
エディタの選択 |
デルタの内容を表示するときや、デルタを開いて編集するときに、自動的に起動されるエディタを指定します。「その他」オプションを選択した場合は、別のウィンドウでエディタを起動するためのコマンドを、テキストフィールドに入力する必要があります。 |