kazmax - Linux で自宅サーバー

rcs - コマンド (プログラム) の説明 - Linux コマンド集 一覧表

  1. 名称
  2. 書式
  3. 解説
  4. オプション
  5. 互換性
  6. 関連ファイル
  7. 環境変数
  8. 診断
  9. 作者
  10. 関連項目
  11. バグ

名称

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

書式

rcs options file ...

解説

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

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

オプション

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

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

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

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

互換性

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

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

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

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

関連ファイル

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

環境変数

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

診断

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

作者

Author: Walter F. Tichy.
Manual Page Revision: (Rv; Release Date: (Dt.
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, r-A System for Version Control, "Software-Practice & Experience" 15 ,7 (July 1985), 637-654.

バグ

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

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

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