CO(1) | General Commands Manual | CO(1) |
co - RCS ファイルからリビジョンをチェックアウトする
co [options] file ...
co は、各 RCS ファイルからリビジョンを取り出し、 対応したワークファイルに格納します。
RCS 拡張子にマッチするファイル名は RCS ファイルであるとみなし、 その他のファイル名はワークファイルであるとみなします。 ファイル名の対応に関しては、 ci(1) を参照してください。
RCS ファイルのリビジョンは、ロックしてもしなくともチェックアウトできます。 リビジョンをロックすることにより、 同時に複数の更新が行われることを防止します。 内容を表示したり、読むだけの処理(たとえば、コンパイル)で用いたりする場合は ロックする必要はありません。 編集し後にチェックインするつもりで RCS ファイルから取り出す場合は、 通常、ロックしなければなりません。 他のユーザによってロックされているリビジョンを ロックしてチェックアウトしようとするとエラーになります(ロックは rcs(1) によって解除することができます)。 更に、リビジョンをロックしてチェックアウトするには、 チェックアウトする人が RCS ファイルのアクセスリストに登録されているか、 そのファイルの所有者もしくはスーパユーザであるか、 アクセスリストが空である必要が有ります。 ロックしないで取り出す場合は、 アクセスリストや他人のロックに影響されることはありません。
取り出されるリビジョンを、リビジョン番号、枝番号、 チェックイン日時、作者、状態によって指定するオプションが存在します。 複数のオプションが組み合わされて指定された場合、 co はすべての条件に合致するリビジョンのうちで最新のものを取り出します。 リビジョン指定オプションが指定されなかった場合、 co は、デフォルト枝(通常は幹: rcs(1) の -b オプションの項を参照)の最新のリビジョンを取り出します。 リビジョン番号あるいは枝番号は、 以下のオプションを使って指定することができます: -f, -I, -l, -M, -p, -q, -r, -u 。 オプション -d (日時)、 -s (状態)、 -w (作者)は、単一の枝から取り出します。 この枝は 選択された 枝であり、 -f, ..., -u オプションもしくはデフォルト枝により指定されます。
リビジョンを 1 つも持たない RCS ファイルに対して co コマンドを適用すると、長さ 0 のワークファイルが作成されます。 co は、つねにキーワード置換を行います (下記参照)。
8:00 pm lt 4:00 AM, Jan. 12, 1990 デフォルトは UTC 1990-01-12 04:00:00+00 ISO 8601 (UTC) 1990-01-11 20:00:00-08 ISO 8601 (ローカル時刻) 1990/01/12 04:00:00 伝統的 RCS 形式 Thu Jan 11 20:00:00 1990 LT ctime(3) + LT出力 Thu Jan 11 20:00:00 PST 1990 date(1)出力 Fri Jan 12 04:00:00 GMT 1990 Thu, 11 Jan 1990 20:00:00 -0800 インターネット RFC 822 12-January-1990, 04:00 WET
ほとんどの日付の項目にはデフォルト値があります。 デフォルトのタイムゾーンは UTC です。 これは -z オプションにて優先指定することが出来ます。 他のデフォルト値は、年、月、日、時、分、秒 の順番で決定されます。 これらの項目のうち、少なくとも 1 つが指定されなければいけません。 指定のある項目よりも先に決定される項目が省略されている場合には、 タイムゾーンにおける現在の値を使用します。 他の省略されたフィールドには最小値が採用されます。 たとえば、 -z 無しの 20, 10:30 の場合は、UTC タイムゾーンの現在の年月の 20 日 10:30:00 UTC が採用されます。 日付の指定に空白が含まれる場合には、 日付の指定をクオートでくくる必要があることに注意してください。
joinlist は rev2:rev3 形式のリビジョンの対をコロンで区切って並べたリストです。 ここで、 rev2 と rev3 は(シンボリックまたは数字の)リビジョン番号です。 以下の説明で、 rev1 は以下のリビジョンを示します: (1) joinlist に列挙さ れた対のうち、最初のものは、上記の -f, ..., -w オプションによって選択されたリビジョンです。 (2) それ以外の対に対しては、直前の対から作成されたリビジョン (すなわち、1 つの対によって作成されたリビジョンは次の結合 のための入力となります)。
それぞれの対に対して、 co は rev1 と rev3 を rev2 と比較しながら結合します。つまり、 rev2 を rev1 と同一にするための変更を、 rev3 のコピーに対して適用します。 rev2 を同一の祖先とする 2 つの枝の末端のリビジョン rev1 と rev3 を結合するのによく用いられます。もし、3 つのリビジョンが同一の 枝上にあり、リビジョン番号が rev1<rev2<rev3 ならば、結合の結果は、 rev3 の内容のうち、 rev1 から rev2 への変更を無効にしたものになります。 もし、 rev2 から rev1 への変更が rev2 から rev3 への変更と重複している なら、 co は merge(1) に示したような報告を行います。
最初に指定する対では rev2 を省略することができます。この場合は、 rev1 と rev3 の共通の祖先 リビジョンを rev2 として使用します。もし、いずれかの引数 がリビジョンではなく枝を示しているなら、その枝上の最新のリビジョンが用 いられます。同時に -l オプションや -u オプションを指定すると、 rev1 がロックまたはロック解除されます。
オプション時刻の出力 -z 1990/01/12 04:00:00 (デフォルト) -zLT 1990-01-11 20:00:00-08 -z+05:30 1990-01-12 09:30:00+05:30
-z オプションは RCS ファイルに格納されている日付(常に UTC です)には影響しません。
テキスト中に存在する $keyword$ または $keyword:...$ 形式の文字列は、 $keyword:value$ 形式の文字列に置換されます。 keyword と value の対については後述します。キーワードはリテラルな文字列として、あるいは リビジョンを特定するためのコメントとして埋められることがあります。
まず、ユーザは $keyword$ なる形式の文字列を入力します。 チェックアウト時に、 co はこの文字列を $keyword:value$ に置換します。 $keyword:value$ 形式の文字列を含むものがチェックインされた場合、 value の部分は次にチェックアウトされたときに新たな値に置換されます。 このように、チェックアウトを行うごとにキーワードの値は 更新されていきます。この自動更新は -k オプションにより変更することができます。
キーワードの種類とその値:
挿入される行の前には $Log$ の行の前のプレフィックス文字列が付きます。例えば、 $Log$ の行が “// $Log: tan.cc $” である場合、ログの各行の前の RCS プレフィックスは “// ” となります。 これはコメントが行末まで及ぶ言語にて便利です。 別の言語に対しては、複数行コメント内部にて “ ∗ ” プレフィックスを使用するのが慣例です。 例えば、C プログラムの最初のログのコメントは慣例的に以下の形式です:
/∗
∗ $Log$ ∗/
古いバージョンの RCS とのバックワードコンパチビリティのため、 ログのプレフィックスが /∗ または (∗ でありオプションの空白で囲まれている場合、挿入されるログの行は / や ( の代わりに空白が用いられます; しかしこの使用方法は古くさく、この動作に依存してはなりません。
キーワード文字列の体裁を整えるために、 以下の文字をキーワード中に用いるには、 エスケープシーケンスを使用します。
文字 エスケープシーケンス tab \t newline \n space \040 $ \044 \ \\
ワークファイルは、RCS ファイルの読み込みと実行の許可属性を受け継ぎます。 さらに、ユーザに対する書き込み権が設定されます。 -kv オプションが設定されている場合と、厳格ロックモード( rcs(1) 参照)にてロックせずに取り出した場合は、書き込み権が設定されません。
すでに、ワークファイルと同名の書き込み可能なファイルが存在していると、 co は取り出しを中断し、もし可能ならば削除するかどうかを問い合わせます。 もし、すでに存在するファイルが書き込み禁止であったり、 -f オプションが 指定されていた場合には、問い合わせを行わずに削除します。
co は ci とほぼ同じくらいのファイルにアクセスします。ただし、 $ が指定されていなければワークファイルを読むことはありません。
RCS パス名、ワークファイルパス名、 取り出されるリビジョンの番号を診断出力します。 全ての処理が成功した場合のみ、終了ステータス 0 を返します。
Author: Walter F. Tichy.
Manual Page Revision: 1.6; Release Date: 1999/08/27.
Copyright © 1982, 1988, 1989 Walter F. Tichy.
Copyright © 1990, 1991, 1992, 1993, 1994, 1995 Paul Eggert.
rcsintro(1), ci(1), ctime(3), date(1), ident(1), make(1), rcs(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 ファイル、ワークファイルのリンクは保存されません。
キーワードを $keyword:$
以外の形式に書換える以外に、一部のキーワードの
みを展開させる方法がありません。nroff
や troff
ではキーワード中にヌル文字
\&
を埋め込むことにより展開を防ぐことができます。
1999/08/27 | GNU |