Sun Studio 12: Fortran プログラミングガイド

3.2 SCCS によるバージョンの追跡と管理

SCCS とは、ソースコード管理システム (Source Code Control System) のことです。SCCS には次のような機能があります。

SCCS の基本操作は次の 3 つです。

この節では、SCCS を使用してこれらの操作を行う方法を説明し、前のプログラムを使用した簡単な例を示します。ここでは基本的な SCCS についてだけ説明し、3 つの SCCS コマンド、createedit、および delget だけを紹介します。

3.2.1 SCCS によるファイルの管理

ファイルを SCCS の管理下に置くには、次の処理を行う必要があります。

3.2.1.1 SCCS ディレクトリの作成

まず最初に、プログラム開発を行なっているディレクトリに SCCS サブディレクトリを作成しなければいけません。次のコマンドを使用します。


demo% mkdir SCCS

なお、SCCS は必ず大文字にします。

3.2.1.2 SCCS ID キーワードの挿入

ファイルごとにいくつかの SCCS ID キーワードを挿入する開発者もいますが、これは必須ではありません。あとで、SCCS の get または delget コマンドによってファイルがチェックインされるたびに、キーワードはバージョン番号によって識別されます。キーワードの文字列は次の 3 か所によく置かれます。

キーワードを使用する利点は、ソースリストの中にも、コンパイルされたオブジェクトプログラムの中にも、バージョン情報が現れることです。文字列 @(#) を前に付けておけば、what コマンドを使用して、オブジェクトファイル中のキーワードを出力できます。

パラメータとデータの定義文だけを含むヘッダーファイルをインクルードした場合は、初期化データの生成は行われず、ファイルに対するキーワードは、通常コメントの中か PARAMETER 文に付けられます。ASCII データファイルやメイクファイルのようなファイルの場合には、SCCS 情報はコメントに現れます。

SCCS キーワードは % キーワード % の形式で現れ、SCCS の get コマンドによって本来の値に展開されます。頻繁に使用されるキーワードは、次のとおりです。

%Z% は、what コマンドで認識される識別子文字列 @(#) に展開されます。%M% は、ソースファイルの名前に展開されます。%I% は、この SCCS が管理するファイルのバージョン番号に展開されます。%E% は、現在の日付に展開されます。

たとえば、make のコメント中で次のようなキーワードを使用すると、メイクファイルを指定することができます。


#      %Z%%M%       %I%       %E%

ソースファイルの startupcore.fcomputepts.f、および pattern.f は、次の形式の初期化データによって指定できます。


      CHARACTER*50 SCCSID
      DATA SCCSID/"%Z%%M%       %I%       %E%\n"/

このファイルを SCCS で処理し、コンパイルし、SCCS の what コマンドでオブジェクトファイルを処理すると、次のように表示されます。


demo% f95 -c pattern.f
...
demo% what pattern
pattern:
      pattern.f 1.2 96/06/10

また、get でファイルに探査するたびに自動的に更新される、CTIME という名前の PARAMETER も作成できます。


      CHARACTER*(*) CTIME
      PARAMETER ( CTIME="%E%")

INCLUDE ファイルは、SCCS スタンプが入っている Fortran のコメントで注釈できます。


C       %Z%%M%       %I%       %E%

注 –

Fortran 95 ソースコードファイルから取得した 1 文字の型成分名を使用すると、SCCS キーワード認識と競合する可能性があります。たとえば、Fortran 95 構造体成分参照 X%Y%Z は、SCCS から渡された場合、SCCS の get を実行したあとに XZ となります。ここで、Fortran 95 プログラムで SCCS を使用するとき、構造体成分を定義するのに 1 文字の英字を使用しないように注意します。たとえば、Fortran 95 プログラムの構造体参照が X%YY%Z の場合、%YY% は SCCS によりキーワード参照として解釈されません。そのほかの方法としては、SCCS で get -k オプションを指定すると、SCCS キーワード ID を拡張しなくてもファイルが取得されます。


3.2.1.3 SCCS ファイルの作成

これで、SCCS の create コマンドによって、これらのファイルを SCCS の管理下に置くことができます。


demo% sccs create makefile commonblock startupcore.f \
  computepts.f pattern.f
demo%

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

ソースコードを SCCS 管理下に置いたあとは、ユーザーは SCCS を 2 つの主な作業に使用します。 編集を可能にするためにファイルをチェックアウトすることと、編集の完了したファイルをチェックインすることです。

ファイルのチェックアウトには、sccs edit コマンドを使用します。たとえば、次のようにします。


demo% sccs edit computepts.f

この例では、SCCS は computepts.f の書き込み可能なコピーを現在のディレクトリに作成し、ユーザーのログイン名を記録します。あるユーザーがファイルをチェックアウトしている間、ほかのユーザーはそのファイルをチェックアウトできません。 しかし、ほかのユーザーは、誰がそのファイルをチェックアウトしているかを知ることはできます。

編集が完了したら、sccs delget コマンドを使用して、修正したファイルをチェックインします。たとえば、次のとおりです。


demo% sccs delget computepts.f

このコマンドを実行すると、SCCS システムは次の作業を行います。

sccs delget コマンドは、より簡単な SCCS の 2 つのコマンド、deltaget を組み合わせたものです。delta コマンドが前述の項目のうちの最初の 3 つを実行し、get コマンドが最後の 2 つの作業を実行します。