Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all bug

名称

       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 は、つねにキーワード置換を行います (下記参照)。

オプション

       -r[rev]
              リビジョン番号  rev  以前(  rev と同じものも含む)で最新のリビジョンを取り出します。
              rev がリビジョンではなく枝を指定している場合、その枝上の最新 のリビジョンが取り出さ
              れます。  rev が省略された場合、デフォルト枝 ( rcs(1) の -b オプションの項を参照)の
              最新のリビジョンが取り出されます。 rev$  の場合、  co  はリビジョン番号をワーク
              ファイルのキーワードから  取り出します。これら以外の場合、 rev はリビジョンを示すピ
              リオドで区切られた数字またはシンボルの列です。 rev がピリオドで始まる場合、デフォル
              トの枝(通常は幹)が設定されます。  rev  がピリオドを後ろに付けた枝番号であるならば、
              その枝の最新のリビジョンが使われます。 シンボルは、 ci(1) や rcs(1)  によりリビジョ
              ン番号と結びつけることができます。

       -l[rev]
              -r と同様の動作ですが、取り出したリビジョンを呼び出したユーザにてロックします。

       -u[rev]
              -r  と同様の動作ですが、取り出したリビジョンが呼び出したユーザによって ロックされて
              いたならば、そのロックを解除します。 rev が省略された場合、  co  を起動したユーザが
              ロックしたリビジョンが   1  つあれば、  そのリビジョンを取り出します;  そうでなけれ
              ば、デフォルト枝の最新のリビジョンを取り出します。

       -f[rev]
              ワークファイルの上書きを強制します; 後述の -q オプションを使用する場合、いっしょに
              -f  オプションも 指定すると便利な場合があります。 ファイルモード の項も参照してくだ
              さい。

       -kkv   ワークファイルにデフォルト形式のキーワード文字列を埋め込みます。たとえば、 キーワー
              ド  Revision  に対しては、文字列  $Revision: 1.6 $ を生成します。 ci -lco -l で
              ファイルがロックされる時のみ、 Header, Id, Locker  キーワードにロック者名を挿入しま
              す。これがデフォルトの動作です。

       -kkvl  -kkv  とほぼ同様ですが、指定されたリビジョンがロックされていた場合にはいつも、 ロッ
              ク者名を挿入します。

       -kk    キーワード文字列中のキーワード名のみの文字列を生成し、値は省略します。 後述の  キー
              ワード置換   を参照して下さい。  たとえば、キーワード  Revision  に対しては、通常の
              $Revision: 1.6 $ のかわりに、 $Revision$ を生成します。これは、異なるリビジョンの内
              容を比較する場合、キーワード  値の違いを無視できるので、便利です。 -kk が指定されて
              も、キーワード $Log$ の後にはログメッセージが挿入されます。これはリビジョンを統合す
              る変更に、 より便利であることを意図しています。

       -ko    チェックインされる前の ワークファイル中のキーワード文字列をそのまま出力します。たと
              えば、 キーワード $Revision$ に対しては、  チェックインされる前に展開されていた文字
              列 $Revision: 1.1 $ が、 $Revision: 1.6 $ の代わりに展開されます。 キーワード文字列
              の形式を取るバイト列が置換されてしまっては困るような     場合(訳注:バイナリファイル
              等)に便利でしょう。

       -kb    元のキーワード文字列のバイナリイメージを生成します。これは、   -ko   とほぼ同じです
              が、入出力する全てのワークファイルをバイナリモードで         扱う点が違います。これ
              は、Posix と Unix のホスト間ではたいした違いでは ありません。が、DOS のようなシステ
              ムではバイナリファイルを扱う場合、 RCS ファイルの初期化には rcs -i -kb を使わねばな
              らないでしょう。 また、全ての環境において、 rcsmerge(1) は通常、 -kb が働いている場
              合はファイルの統合を受け付けません。

       -kv    キーワード文字列としてキーワード値のみを生成します。たとえば、キーワード   Revision
              に対して、通常の  $Revision: 1.6 $ のかわりに 1.6 を生成します。 これは、キーワード
              文字列から $Revision: $ のようなキーワード区切りを取 り除くことが困難なプログラミン
              グ言語用のファイル等を生成するために 使用します。しかしながら、キーワード名が取り除
              かれてしまうと、それ以降に キーワード置換を行うことができないので、注意が必要です。
              キーワードを失うことはこのように危険であるため、本オプションを  -l オプションと組み
              合わせて使うことはできません。また、ワークファイルの 書き込み権はオフになります; 後
              でワークファイルを編集する場合は、 -kv オプションを指定せずにワークファイルを取り出
              してから行います。

       -p[rev]
              ワークファイルに格納する代わりに、   対象となるリビジョンを標準出力に書き出します。
              co をパイプの一部として使用する場合に便利です。

       -q[rev]
              静かなモード; 診断メッセージを表示しません。

       -I[rev]
              対話モード; たとえ標準入力が端末でなくても、ユーザに対して 問い合わせを行います。

       -ddate 選択された枝上の、 date 以前の登録日付を持つ、最新のリビジョンを取り出します。 日付
              と時刻は自由形式で指定します。タイムゾーンとして LT  を指定することにより、ローカル
              タイムを使用することができます;  他の一般的なタイムゾーンも使用することができます。
              たとえば、以下に挙げるいくつかの date 指定は、 太平洋標準時における 1990 年 1 月 11
              日午後  8  時と同時刻を示します (太平洋標準時は協定世界時 (UTC) よりも 8 時間遅れで
              す)。

                     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 が採用されます。 日付の指定に空白が含まれる場合
              には、 日付の指定をクオートでくくる必要があることに注意してください。

       -M[rev]
              作成されるワークファイルの最終更新日付を、取り出されるリビジョンの日付に します。本
              オプションを指定すると make(1) が正しく動作しなくなるので、注意して使用する必要があ
              ります。

       -sstate
              選択された枝上の、状態 state を持つ最新のリビジョンを取り出します。

       -T     RCS   ファイルの変更日付を変更しません。  ロックされたりロック解除されたりして  RCS
              ファイルが変更された場合でもです。 このオプションは、コピーした RCS  ファイルのワー
              クファイルを使って  make(1)  をかける際に再コンパイルをさせたくない場合に便利でしょ
              う。 このオプションは必要であるにもかかわらず再コンパイルを行なわないことに  なって
              しまう場合があるので注意が必要です。 それは、ロックの変更が別のワークファイルのキー
              ワード文字列の変更を行う時です。

       -w[login]
              選択された枝上の、ユーザ名 login によって登録された最新のリビジョンを取り出します。
              login が省略された場合は、 co を起動したユーザ名を使います。

       -jjoinlist
              joinlist  で指定されたリビジョンを結合した新しいリビジョンを作成します。 本オプショ
              ンは、旧バージョンとの互換性のために残されています。     通常、リビジョンの結合には
              rcsmerge(1) を用います。

              joinlistrev2:rev3 形式のリビジョンの対をコロンで区切って並べたリストです。 ここ
              で、 rev2rev3  は(シンボリックまたは数字の)リビジョン番号です。  以下の説明で、
              rev1  は以下のリビジョンを示します:  (1) joinlist に列挙さ れた対のうち、最初のもの
              は、上記の -f, ..., -w オプションによって選択されたリビジョンです。 (2)  それ以外の
              対に対しては、直前の対から作成されたリビジョン  (すなわち、1 つの対によって作成され
              たリビジョンは次の結合 のための入力となります)。

              それぞれの対に対して、 corev1rev3rev2  と比較しながら結合します。つま
              り、 rev2rev1 と同一にするための変更を、 rev3 のコピーに対して適用します。 rev2
              を同一の祖先とする 2 つの枝の末端のリビジョン rev1rev3 を結合するのによく用いら
              れます。もし、3  つのリビジョンが同一の 枝上にあり、リビジョン番号が rev1<rev2<rev3
              ならば、結合の結果は、 rev3 の内容のうち、 rev1 から rev2  への変更を無効にしたもの
              になります。 もし、 rev2 から rev1 への変更が rev2 から rev3 への変更と重複している
              なら、 comerge(1) に示したような報告を行います。

              最初に指定する対では rev2 を省略することができます。この場合は、 rev1rev3  の共
              通の祖先  リビジョンを rev2 として使用します。もし、いずれかの引数 がリビジョンでは
              なく枝を示しているなら、その枝上の最新のリビジョンが用 いられます。同時に  -l  オプ
              ションや -u オプションを指定すると、 rev1 がロックまたはロック解除されます。

       -V     RCS's のバージョン番号を表示します。

       -Vn    バージョン  n の RCS システムの動作をエミュレートします。 n3, 4, 5 のいずれかで
              す。これは、古い RCS を使っているユーザと RCS ファイルを交 換するときに便利です。使
              用している  RCS  がどのバージョンかを調べるには、 rcs -V を実行します; これは最近の
              バージョンの RCS では動作します。 これが動作しない場合は適当な RCS ファイルに対して
              rlog  を起動します; 最初の数行に文字列 branch: がなければ、それはバージョン 3 です;
              また、日付に現れる年が 2 桁の数字ならば、それはバージョン 4 です;  どちらでもなけれ
              ば、バージョン  5 です。 RCS バージョン 3 をエミュレートして作成された RCS ファイル
              からはデフォルト 枝の情報が失われます。 バージョン 4 またはそれ以前のバージョンをエ
              ミュレートして作成された リビジョンは、最大 13 時間ずれた日付を持つことになります。
              バージョン 4 またはそれ以前のバージョンをエミュレートして取り出された  ファイルには
              yy/mm/dd  形式の日付がキーワード中に展開されます。また、 $Log$ キーワードでは空白の
              入り方が異なります。

       -xsuffixes
              RCS ファイルの拡張子として suffixes を使用します。詳細は ci(1) を参照して下さい。

       -zzone キーワード置換での日付の出力書式の指定を行い、また、 -ddate オプションでの date  の
              デフォルトのタイムゾーンの指定を行います。  zone は、省略する事も、UTC からの数値差
              で指定する事も、特別な文字列 LT を使ってローカル時間で指定する事もできます。 デフォ
              ルトでは zone は空であり、 この場合は伝統的な RCS フォーマット、 すなわちタイムゾー
              ン無しの UTC であり日付をスラッシュで区切ります; そうでない場合は時刻はタイムゾーン
              付の ISO 8601 フォーマットです。 例えば、ローカルタイムが 1990 年 1 月 11 日 太平洋
              標準時間 (UTC の 8 時間西)午後 8 時の場合、時間の出力は次のようになります:

                     オプション時刻の出力
                     -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$  形式
       の文字列に置換されます。 keywordvalue の対については後述します。キーワードはリテラルな
       文字列として、あるいは リビジョンを特定するためのコメントとして埋められることがあります。

       まず、ユーザは $keyword$ なる形式の文字列を入力します。 チェックアウト時に、 co はこの文字
       列を $keyword:value$ に置換します。 $keyword:value$ 形式の文字列を含むものがチェックインさ
       れた場合、 value  の部分は次にチェックアウトされたときに新たな値に置換されます。  このよう
       に、チェックアウトを行うごとにキーワードの値は  更新されていきます。この自動更新は -k オプ
       ションにより変更することができます。

       キーワードの種類とその値:

       $Author$
              リビジョンを登録したユーザのログイン名。

       $Date$ リビジョンが登録された日時。 -zzone  を指定した場合、数値によるタイムゾーンオフセッ
              トが追加されます; 指定しない場合は、日時は UTC です。

       $Header$
              標準的なヘッダ。RCS ファイルのフルパス名、リビジョン番号、日時、作者、 状態、ロック
              者(ロックされている場合)が含まれます。 -zzone  を指定した場合、数値によるタイムゾー
              ンオフセットが追加されます; 指定しない場合は、日時は UTC です。

       $Id$   $Header$ とほぼ同様です。RCS ファイル名はパスをつけずに埋め込まれます。

       $Locker$
              リビジョンをロックしたユーザのログイン名(ロックされていない場合は空です)。

       $Log$  チェックイン時に与えたログメッセージ。その前に、RCS ファイル名、リビジョン 番号、作
              者、日時が埋め込まれます。 -zzone  を指定した場合、数値によるタイムゾーンオフセット
              が追加されます;  指定しない場合は、日時は UTC です。 すでに埋め込まれているログメッ
              セージは変更 されません。 新たなログメッセージのみが  $Log:...$  のあとに追加されま
              す。 ソースファイルの完全なログを記録するときに便利です。

              挿入される行の前には $Log$ の行の前のプレフィックス文字列が付きます。例えば、 $Log$
              の行が “// $Log: tan.cc $” である場合、ログの各行の前の RCS プレフィックスは  “// ”
              となります。  これはコメントが行末まで及ぶ言語にて便利です。 別の言語に対しては、複
              数行コメント内部にて “  ” プレフィックスを使用するのが慣例です。 例えば、C  プログ
              ラムの最初のログのコメントは慣例的に以下の形式です:

                     /∗
                       $Log$
                      ∗/

              古いバージョンの  RCS とのバックワードコンパチビリティのため、 ログのプレフィックス
              が /∗ または (∗ でありオプションの空白で囲まれている場合、挿入されるログの行は /(  の代わりに空白が用いられます; しかしこの使用方法は古くさく、この動作に依存しては
              なりません。

       $Name$ 存在する場合、リビジョンをチェックアウトするために使用したシンボリック名。   例えば
              co -rJoe$Name: Joe $ を生成します。 単に co を指定した場合は、 $Name:  $ となり
              ます。

       $RCSfile$
              パス名を含まない RCS ファイル名。

       $Revision$
              リビジョン番号。

       $Source$
              RCS ファイルのフルパス名。

       $State$
              リビジョンに rcs(1) か ci(1) の -s オプションにより割り付けられた状態。

       キーワード文字列の体裁を整えるために、  以下の文字をキーワード中に用いるには、  エスケープ
       シーケンスを使用します。

              文字     エスケープシーケンス
              tab      \t
              newline  \n
              space    \040
              $        \044
              \        \\

ファイルモード

       ワークファイルは、RCS  ファイルの読み込みと実行の許可属性を受け継ぎます。 さらに、ユーザに
       対する書き込み権が設定されます。  -kv  オプションが設定されている場合と、厳格ロックモード(
       rcs(1) 参照)にてロックせずに取り出した場合は、書き込み権が設定されません。

       すでに、ワークファイルと同名の書き込み可能なファイルが存在していると、 co は取り出しを中断
       し、もし可能ならば削除するかどうかを問い合わせます。  もし、すでに存在するファイルが書き込
       み禁止であったり、  -f  オプションが  指定されていた場合には、問い合わせを行わずに削除しま
       す。

関連ファイル

       coci とほぼ同じくらいのファイルにアクセスします。ただし、 $ が指定されていなければワー
       クファイルを読むことはありません。

環境変数

       RCSINIT
              本変数に空白で区切ったオプションを設定することで、 コマンドライン引数に先立って処理
              されます。 詳しくは ci(1) を参照してください。

診断

       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 ではキーワード中にヌル文字 \&  を埋め込むことにより展開を防ぐ
       ことができます。