プログラミングユーティリティ

確定した変更を削除する

デルタを置き換える : sccs fix

入力ミスなどの、修正する必要はあるけれども修正したファイルを新たなデルタとして追加する必要はない、というような小さなバグを含むデルタをチェックインしてしまうことがあります。または、ファイルの内容は正しいけれど、デルタのコメントが不完全であるあるいは誤っている場合があります。いずれの場合も、sccs fix を使用してファイルに対して変更を行い、最新のデルタに対応するバージョンログのエントリを置き換えることができます。

$ sccs fix -r 1.2 program.c

このコマンドは、program.c のバージョン 1.2 をチェックアウトします。修正後にこのファイルをチェックインすると、履歴ファイル中のデルタ 1.2 がファイルに加えた変更に置き換えられ、(新しい) コメントを入力するプロンプトが表示されます。sccs fix を使用するときには、-r オプションを使用して末端の (最新の) デルタの SID を指定する必要があります。

以前にチェックインしたデルタ 1.2 は実質的には削除されますが、SCCS はそれを削除されたデルタとして履歴ファイル中で記録します。

sccs fix を使用する前に、現在のバージョンのコピーを作成しておいてください。

デルタを削除する : sccs rmdel

最新のデルタを完全に削除するには、rmdel サブコマンドを使用します。-r を使用して SID を指定する必要があります。fix は削除されたデルタの記録を保持していますが rmdel は保持しないので (詳細は、sccs rmdel(1) を参照してください)、通常は rmdel よりも fix を使用することをお勧めします。

以前のバージョンに戻す

以前のバージョンの書き込み可能なコピーを取り出すには、get -k を使用します。このコマンドは、過去の複数のデルタを調べる必要がある場合に便利です。

以前のバージョンのデルタを使用して新しいデルタを作成するには、以下の手順に従います。

  1. sccs edit を使用して ファイルをチェックアウトします。

  2. get -k を使用して、以前のバージョンの書き込み可能なコピーを取り出します。

    sccs get -k -r sid -Goldname filename
    

    oldname にはファイル名、filename には取り出した以前のバージョンを一時に保存するファイルの名前 (元のファイル名 oldname とは異なる名前) を指定します。

  3. 現在のバージョンを以前のバージョンに置き換えます。

    mv oldname filename

  4. ファイルをチェックインします。

    特定のデルタを削除した方が簡単な場合があります。また、SCCS を使用してファイルの複数の更新を管理する方法については、「分岐」を参照してください。

取り出したバージョンからデルタを削除する

デルタ 1.3 で行なった変更が、次のバージョンである 1.4 には適切でないとします。編集用のファイルを取り出す際に、-x オプションを使用して、作業用のコピーからデルタ 1.3 を削除することができます。

$ sccs edit -x1.3 program.c

デルタ 1.5 をチェックインする際には、そのデルタにはデルタ 1.4 での変更が含まれますが、デルタ 1.3 での変更は含まれません。さらに、削除するデルタをコンマで区切ったリストを -x に指定したり、あるいはハイフンで削除するデルタの範囲を指定して、複数のデルタを削除することができます。たとえば、1.3 と 1.4 を削除する場合は、以下のコマンドを使用できます。

$ sccs edit -x1.3,1.4 program.c
$ sccs edit -x1.3-1.4 program.c

次の例では、SCCS は 1.3 からリリース 1 において現時点で最新のデルタまでを削除します。

$ sccs edit -x 1.3-1 program.c

-x を使用する場合は、バージョン間で衝突が生じることがあります。たとえば、特定の行について挿入と削除の両方が指定されている場合があります。この場合は、SCCS は影響のある行の範囲を示すメッセージを表示します。このメッセージを十分に確認して、SCCS が取り出したバージョンが正しいかどうかを確認してください。

各デルタは、(「変更のセット」として) 削除できるため、関連する変更を各デルタごとにまとめると便利です。

バージョンを結合する : sccs comb

comb サブコマンドは、選択したデルタを結合または削除して新しい履歴ファイルを構成する Bourne シェルスクリプトを生成します。comb サブコマンドは、ディスク容量を節約したい場合に便利です。


注 -

複数のデルタを結合する際には、comb で生成したスクリプトは、ファイルのバージョンログ (コメントを含む) の一部を削除します。


-psid オプションでは、スクリプト実行後の再構成で保存する最も古いデルタを指定します。

-c sid-list

このオプションを使用して、含めるデルタのリストを指定できます。sid-list には、各デルタをコンマで区切ったリストを指定します。2 つの SID をハイフン (-) で区切って、範囲を指定することができます。-p-c を同時に使用することはできません。-o オプションは、再構成に含めるデルタの個数を最小限にします。

-s オプションは、再構成後の履歴と元の履歴のサイズ (ブロック数) を比較するスクリプトを生成します。比較結果では、再構成後の履歴が元の履歴の何パーセントであるかが表示されます。


注 -

comb を使用する際は、元の履歴ファイルを保存してください。comb はディスク容量を節約するためのコマンドですが、節約されない場合もあります。場合によっては、生成された履歴ファイルが元の履歴ファイルよりも大きくなります。


オプションが指定されていない場合は、comb はそれまでの変更を保持するために必要な最小限の祖先を保存します。