EN JA
RCS(1)
RCS(1) FreeBSD General Commands Manual RCS(1)

名称

rcs - RCS ファイルの属性を変更する

書式

rcs options file ...

解説

rcs は、RCS ファイルの新規作成および RCS ファイルの属性変更を行います。 RCS ファイルは、複数のリビジョン、アクセスリスト、変更履歴、内容記述、制御属性からなります。 rcs コマンドが実行できるのは、実行したユーザが RCS ファイルのアクセスリストに登録されているか、アクセスリストが空であるか、ユーザが RCS ファイルの所有者であるか、スーパユーザであるか、あるいは -i オプションが指定されている場合に限られます。

RCS 拡張子にマッチするファイル名は RCS ファイルであるとみなし、その他のファイル名はワークファイルであるとみなします。詳しくは、 ci(1) を参照してください。リビジョン番号は ci(1) に記述されている形式を用います。

オプション

-i
新たな RCS ファイルを作成し、初期化します。ただし、リビジョンは作成しません。 RCS ファイルにパスプレフィックス (前置パス名) がない場合、まずカレントディレクトリにある ./RCS ディレクトリにファイルを作成しようと試みます。これに失敗したら、カレントディレクトリに作成しようと試みます。もしすでに RCS ファイルが存在した場合はエラーとなります。
-a logins
RCS ファイルのアクセスリストにコンマで区切ったリストで表される logins にログイン名を追加します。
-A oldfile
oldfile で指定した RCS ファイルのアクセスリストに登録されているユーザ名を、対象の RCS ファイルのアクセスリストに追加します。
-e[ logins]
logins で指定したユーザ名を、RCS ファイルのアクセスリストから消去します。 logins が省略された場合は、アクセスリスト全体を消去します。
-b[ rev]
rev をデフォルトの枝とします。 rev が省略された場合、デフォルト枝は幹上で最も大きな番号を持つ枝になります。
-c string
コメント開始文字列を string に設定します。最初に ci を起動した時、あるいは rcs -i-c オプションを指定しなかった時は、コメント開始文字列はワークファイルの拡張子から自動的に推測されます。

通常、RCS はチェックアウト ( co(1) 参照) 時の記録行を挿入する際に、 $Log$ 行の行頭部を使用するので、このオプションは現在廃止の方向にあります。しかしながら、RCS の古いバージョンでは、 $Log$ 行の行頭部ではなくコメント開始文字列を使用しているので、 RCS の新旧両方のバージョンのファイルを使用する場合は、そのコメント開始文字列が $Log$ 行の行頭部と一致するようにしなければなりません。

-k subst
デフォルトのキーワード展開方式を subst に設定します。キーワード展開の効果については co(1) に記述してあります。 co, rcsdiff, rcsmerge-k オプションを指定することで、デフォルトの展開方式を無効にすることができます。 rcs -kv を用いるときは注意してください。なぜなら、 -kv をデフォルトにすると co -l とあいいれなくなるからです。 rcs -kkv によって、通常のデフォルト値に戻すことができます。
-l[ rev]
リビジョン rev をロックします。枝が指定された場合、枝上の最新のリビジョンがロックされます。 rev が省略された場合、デフォルト枝上の最新のリビジョンがロックされます。ロックすることにより、そのリビジョンのファイルに対して複数の人が変更することを防止できます。別の人が既にロックしている場合、 rcs -u により、ロックを解除することができます (下記参照)。
-u[ rev]
リビジョン rev をロック解除します。枝が指定された場合、枝上の最新のリビジョンがロック解除されます。 rev が省略された場合、コマンドを実行したユーザがロックした最新のリビジョンがロック解除されます。通常、ロックしたユーザのみがロックを解除することができます。他のユーザがロックを解除しようとすると、ロックしたユーザへメールが送信されます。メールにはロックを解除する理由等を書いたコメントを付加します。コメントはロックを解除しようとしたユーザが入力し、ファイル終端あるいは . のみを含む行を入力することで終了します。
-L
ロックを 厳格 に行なうモード (以下、厳格モード) に設定します。厳格ロックを指定すると、RCS ファイルの所有者であっても、ロックしているファイルをチェックインすることができなくなります。複数のユーザで共有するようなファイルは本モードで利用すべきです。
-U
ロックを厳格には行なわないモード (以下、非厳格モード) に設定します。非厳格ロックを指定すると、RCS ファイルの所有者はロックすることなく、新しいリビジョンをチェックインすることができます。複数のユーザで共有するファイルは、本モードで使用すべきでは ありません。 デフォルトのロックモードを厳格にするか非厳格にするかは、RCS システムをインストールしたシステム管理者が決めますが、通常は厳格モードです。
-m rev : msg
リビジョン rev のログメッセージを msg に置換します。
-M
ロックしたユーザ以外のユーザがロックを解除した際に、メールを送りません。これは使用を簡便にする目的のオプションではありません。他の方法によりユーザに警告を行うようなプログラムを使用し、 rcs -u を単に低いレベルのロック解除の目的で使用するような場合のために用意されています。
-n name[ :[ rev]]
枝またはリビジョン rev にシンボリック名 name を関連付けます。 :rev も省略した場合、シンボリック名は削除されます。 name がすでに別のリビジョンに関連付けられていた場合はエラーとなります。 rev がシンボリック名の場合、関連付けの前に拡張されます。 rev が枝番号に . を付加したものは、その枝での最新のリビジョンを示します。 : だけで rev を省略した場合、デフォルト枝 (通常は幹) の最新のリビジョンが関連付けられます。たとえば、 rcs -n name : RCS/* はすべての RCS ファイルの最新のリビジョンに対してシンボリック名 name を関連付けます。一方、 rcs -n name :$ RCS/* は各 RCS ファイルに対応したワークファイル中のキーワードに含まれるリビジョン番号と name を関連付けます。
-N name[ :[ rev]]
-n と同様に動作します。ただし、同じ name が別のリビジョンに関連付けられていてもエラーとはせず、関連付けをしなおします。
-o range
range で指定したリビジョンを (“時代遅れ”) 削除します。 range がただ 1 つのリビジョン番号ならば、そのリビジョンを削除します。 range に枝番号が含まれれば、その枝の最新のリビジョンを削除します。 rev1 : rev2 形式の範囲指定では、同じ枝上の rev1 から rev2 までのすべてのリビジョンが削除されます。 : rev は枝の開始から rev を含んで rev までのリビジョンを、 rev : は同じ枝上の rev を含んで rev 以降のリビジョンのすべてを削除します。削除されるリビジョンにロックや枝があってはいけません。
-q
診断メッセージは表示されません。
-I
対話モードで動作します。たとえ標準入力が端末でなくても、ユーザに対して問い合わせを行います。
-s state[: rev]
リビジョン rev の状態を state にします。 rev が枝番号なら、その枝の最新のリビジョンの状態を変更します。 rev が省略されたなら、デフォルト枝の最新リビジョンを変更します。 state としては自由な識別子を指定できます。一般に用いられる識別子としては、 Exp (experimental: 実験的)、 Stab (stable: 安定した)、 Rel (released: リリースした) があります。デフォルトでは、 ci(1) は状態を Exp にします。
-t[ file]
RCS ファイルの内容記述テキストをファイル file の内容で置換します。すでに存在していた内容記述は削除されます。 file のパス名は - で始まってはいけません。 file が省略された場合、テキストは標準入力から読み込まれ、ファイル終端または . のみを含む行で終了します。可能ならば、テキストの入力を促すプロンプトが表示されます ( -I オプションの項を参照)。 -i オプションを指定すると、 -t オプションが指定されていなくても内容記述テキストの入力を求めます。
-t- string
RCS ファイルの内容記述テキストを文字列 string で置換します。すでに存在していた内容記述は削除されます。
-T
リビジョンが削除されない限り、RCS ファイルの変更時刻を保存します。このオプションを使うことにより、RCS ファイルの中のワークファイルのコピーによって生ずる make(1) の依存関係に伴う必要以上の再コンパイルを防ぐことができます。このオプションを使用する際には注意が必要です。本当に再コンパイルが必要な場合にも再コンパイルされない場合が生じます。つまり、RCS ファイルへの変更がワークファイル中のキーワードの変更を意味する場合があるからです。
-V
RCS システムのバージョン番号を表示します。
-V n
RCS システムのバージョン n のエミュレーションを行います。詳細は co(1) を参照してください。
-x suffixes
RCS ファイル拡張子を suffixes に指定します。詳しくは ci(1) を参照してください。
-z zone
デフォルトのタイムゾーンとして zone を使用します。このオプションは何の効果もありません。他の RCS コマンドとの互換性を保つために存在します。

rcs コマンドの将来予定されている拡張との互換性を維持するには、少なくともひとつのオプションを明示的に指定する必要があります。

互換性

-b rev オプションを指定すると、RCS バージョン 3 以前では処理できない RCS ファイルが生成されます。

-ksubst オプション ( -kkv を除く) を指定すると、RCS バージョン 4 以前では処理できない RCS ファイルが生成されます。

バージョン n の RCS で処理できる RCS ファイルを生成するために rcs -Vn を利用することができます。これにより、バージョン n で処理できない情報を削除することができます。

バージョン 5.5 以前の RCS は -x オプションをサポートしません。 RCS ファイルの拡張子としては ,v が用いられます。

関連ファイル

rcsci(1) とほぼ同様のファイル群にアクセスします。ただし、アクセスはすべて実効ユーザ ID によって行われます。また、ワークファイルやそのディレクトリには書き込みを行いません。リビジョン番号として $ を指定した場合を除き、ワークファイルを読むこともありません。

環境変数

RCSINIT
コマンドライン引数に先立って与えられるオプションを指定します。各オプションは空白で区切って指定します。詳しくは ci(1) を参照してください。

診断

RCS ファイル名およびひとつ古い (時代遅れ) リビジョン番号が診断出力として表示されます。すべての処理が成功した場合に限り終了ステータス 0 を返します。

作者

Author: Walter F. Tichy.
 
Manual Page Revision: 50472; Release Date: 1999-08-27.
 
Copyright © 1982, 1988, 1989 by Walter F. Tichy.
 
Copyright © 1990, 1991, 1992, 1993, 1994, 1995 Paul Eggert.

関連項目

rcsintro(1), co(1), ci(1), ident(1), rcsclean(1), rcsdiff(1), rcsmerge(1), rlog(1), rcsfile(5)
 
Walter F. Tichy, RCS--A System for Version Control, Software--Practice & Experience 15, 7 (July 1985), 637-654.

バグ

システムクラッシュ等の大惨事があると、RCS はセマフォファイルを残してしまうため、後に RCS を実行しようとすると、RCS ファイルが使用中であると警告します。これを直すにはセマフォファイルを消去する必要があります。通常、セマフォファイル名前は , で始まるか、 _ で終了します。

以前の版の rcs では -o オプションにおけるリビジョンの区切りは : ではなく - でした。しかし、これはシンボリック名が - を含んでいるときに混乱を生じます。従来の版との互換性のため rcs -o- を用いた記法もサポートしますが、この記法を用いた場合は警告メッセージを表示します。

シンボリック名が指しているリビジョンが存在するとは限りません。例えば、 -o オプションによってリビジョンが削除されてもそれを指すシンボリック名は削除されずに残っています。シンボリック名を削除するには -n オプションを用いる必要があります。

 
1999-08-27 GNU