CI(1) — NEWS-OS Programmer’s Manual
名称
ci − RCS リビジョンを格納する
形式
ci [ options ] file ...
解説
ci は、新しいリビジョンを RCS ファイルに格納します。 ファイル名の最後に ‘,v’ を持つファイルは RCS ファイルとして、 そうでないファイルは新しいリビジョンが入った 作業ファイルとして取り扱われます。 ci は各作業ファイルの内容を、 対応する RCS ファイルに移しかえます。
作業ファイルと RCS ファイルの組は、 以下の 3つの方法で指定することができます (co(1)の例も参照してください)。
1) RCS ファイル、作業ファイル共、指定された場合。 RCS ファイル名は path1/workfile,v という形式であり、 作業ファイルは path2/workfile という形式です。 ここで、path1/ と path2/ はパス名 (2つが異なっていたり、空のパスであってもよい)、 workfile はファイル名です。
2) RCS ファイルのみが指定された場合。 作業ファイルはカレントディレクトリ内にあるものと仮定され、 ファイル名は RCS ファイル名から path1/ とサフィックス ‘,v’ を 取り去ったものが用いられます。
3) 作業ファイルのみが指定された場合。 RCS ファイル名は、作業ファイル名より path2/ を取り去り、 サフィックス ‘,v’ を補ったものが用いられます。
RCS ファイル名が省略されたり、パス名なしで指定された場合、 ci はまず、./RCS ディレクトリ、 続いてカレントディレクトリの順で、RCS ファイルを捜します。
ci を実行する時には、 実行者のログイン名がアクセスリスト上になければなりません。 ただし、アクセスリストが空の場合、 あるいは実行者がスーパーユーザまたはファイルの所有者 である場合はその限りではありません。 新しいリビジョンを既存のブランチ(枝)につけ加える場合には、 ブランチの先端(最近)のリビジョンは実行者によって ロックされていなければなりません。 ロックされていない場合には、新しいブランチのみが作成されます。 このような制限は、ロッキングパラメータが strict(rcs(1) を 参照してください)に設定されている場合を除いて、 ファイルの所有者には適用されません。 ファイルの所有者以外により施されたロックは、 rcs コマンドにより解除できます。
通常 ci は、格納されるべきリビジョンが直前に格納された リビジョンと異なっているかどうかを調べます。 もし相違がなければ ci コマンドは、 格納を中止するか(−q オプションが指定された場合)、 あるいは実行者に中止するかを尋ねます (−q オプションが指定されない場合)。 −f オプションを指定することによって、 強制的に格納させることができます。
リビジョンが格納されるにあたって、 ci コマンドはログメッセージの入力を促します。 このログメッセージは変更内容の要約となるもので、 1つのピリオド(.)または control-D(^D)を 含む行で終了していなければなりません。 もし複数のファイルを格納する場合、 ci コマンドはさきに使用されたログメッセージを 再使用するかどうかを尋ねます。 標準入力が端末ではない場合、 ci はプロンプトを抑制し、 全てのファイルに同じログメッセージを使用します。 −m オプションも参照してください。
格納されるリビジョンの数は、−r、−f、−k、 −l、−u、−q のどのオプションを使っても指定できます (−r オプションを参照してください)。
RCS ファイルが存在しない場合、 ci はこのファイルを新たに作成し、 作業ファイルの内容を初期リビジョンとして格納します(デフォルト値:1.1)。 また、アクセスリストは初期化され、空となります。 ci は、ログメッセージの代りに説明文を要求します (後述する −t オプションを参照してください)。
−r[rev] 格納されたリビジョンにリビジョン番号 rev を割り当て、 ロックを解除した後、作業ファイルを消去します。これはデフォルトです。
リビジョン番号 rev が省略された場合、 ci は新しいリビジョン番号を実行者が 最後に行ったロックから取り出します。 もしブランチの先端(最終)リビジョンがロックされている時には、 新しいリビジョンがそのブランチにつけ加えられます。 新しいリビジョン番号は、最終リビジョン番号を インクリメントすることにより得られます。 実行者が最終リビジョン以外のリビジョンをロックしていた時には、 そのリビジョンの最大ブランチ番号をインクリメントすることにより 新しいリビジョンが始まります。 ブランチの初期値および、レベル番号の初期値のデフォルトは、 それぞれ 1 です。 実行者がファイルの保有者であって、全くロックを行なわず、 またロックパラメータが strict にセットされていない場合、 格納されるべきリビジョンはトランク(幹)に付け加えられます。
rev がリビジョン番号を示す場合、 そのリビジョン番号はそのブランチにおける最新のリビジョン番号より 大きいか、あるいは新しいブランチの始まりでなければなりません。
rev がリビジョンではなくブランチを示す時には、 新しいリビジョンがそのブランチに付け加えられます。 レベル番号はそのブランチの最終リビジョン番号を インクリメントすることにより得られます。 rev が存在しないブランチを示す場合、 初期リビジョン番号 rev.1 をもつブランチが作られます。
例外: トランク(幹)において、リビジョンを最終部分に付け加えることはできますが、 途中に挿入することはできません。
−f[rev] 強制的に格納を行います。 最新のリビジョンが直前に格納されたリビジョンと同じであっても、格納します。
−k[rev] リビジョン番号をローカルに算出する代わりに、 作業ファイル中のキーワード値を探し、 リビジョン番号、作成日、著者、状態(co(1)を参照してください)を求め、 これらを格納するリビジョンに割り当てます。 コマンドオプションで与えられたリビジョン番号は、 作業ファイル内のリビジョン番号より優先します。 このオプションは、ソフトウェアの配布時に便利です。 いろいろなサイトに送られるリビジョンは、 それぞれのサイトで −k オプション付きで格納することにより、 そのソフトウェアのオリジナル番号、作成日、著者、状態を保存すべきです。
−l[rev] −r と同じですが、 格納されたリビジョンに対して直ちに co −l を行います。 従って、格納されたリビジョンは直ちに取り出され、ロックされます。 このオプションは、たとえ格納の後に編集を続けても、 リビジョンは保存するような場合に役立ちます。
−u[rev] 格納されるリビジョンがロックされないということ以外は、 −l オプションと同じ働きをします。 このオプションは、格納を行なった後すぐに処理(例えばコンパイル)を 行ないたいときに便利です。
−q[rev] 沈黙モードです。診断は出力されません。 −f オプションが指定された場合を除き、 格納されるべきリビジョンが直前に格納されたリビジョンと相違がなければ、 格納を行ないません。
−mmsg 格納するすべてのリビジョンに対し、 文字列 msg をログメッセージとして使用します。
−nname シンボリック名 name を格納されているリビジョン番号に割り当てます。 シンボリック名が既に他のリビジョン番号に割り当てられている場合、 ci はエラーメッセージを出力します。
−Nname −n オプションと同じですが、 name についての以前の割り当てを無効にします。
−sstate 格納するリビジョンの状態を、識別子 state にセットします。 デフォルトは Exp です。
−t[txtfile] RCS ファイルに説明文を書き込みます(以前の説明文は消去されます)。 txtfile が省略されると、 ci はユーザに標準入力からのテキストの入力を促します。 このテキストは、1つのピリオド(.)または control−D(^D)を 含む行で終了するものです。 省略されなかった場合には、 説明文はテキストファイル txtfile からコピーされます。 初期化時には、−t オプションが与えられていなくても 解説文を要求されます。 標準入力が端末ではない場合、 プロンプトは抑制されます。
診断
それぞれのリビジョンについて、ci は RCS ファイル、 作業ファイル、格納されたリビジョンと直前のリビジョン番号を出力します。 終了コードは、常に最後に格納されたファイルに依存し、 成功時には 0、そうでないときは 1 になります。
ファイルモード
ci によって作成された RCS ファイルは、 作業ファイルの読み出し許可と実行許可を引き継ぎます。 RCS ファイルが既に存在している場合、 ci はその読み出し許可と実行許可を保存します。 また、ci は RCS ファイルの書き込み許可をすべてオフにします。
関連ファイル
ci の実行者は、RCS ファイルと作業ファイルの存在するディレクトリに 対し読み出し/書き込み許可を、 RCS ファイル自身に対し読み出し許可を保有していなければなりません。 テンポラリファイルが数多く作成されます。 また、RCS ファイルの存在するディレクトリ内に セマフォファイルが作成されます。 ci は、常に新しい RCS ファイルを作成してから、 古い RCS とのリンクを切ります。 これにより、RCS ファイルに対するリンクは意味を持ちません。
識別
著者:Walter F. Tichy, Purdue University, West Lafayette, IN, 47907.
リビジョン番号: 4.300 ; リリース日付: 91/06/08 .
Copyright © 1982 by Walter F. Tichy.
関連事項
co(1), ident(1), rcs(1), rcsdiff(1), rcsintro(1), rcsmerge(1), rlog(1), rcsfile(5), sccstorcs(8)
Walter F. Tichy, "Design, Implementation, and Evaluation of a Revision Control System," in Proceedings of the 6th International Conference on Software Engineering, IEEE, Tokyo, Sept. 1982.
NEWS-OSRelease 4.1C