co(1) FreeBSD 一般コマンドマニュアル

co

前のページ 上に戻る 次のページ

co



書式

       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-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    キーワード文字列としてキーワード値のみを生 成 し ま
       -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) が正しく動作しなくなるので、注意して使
              用する必要があります。

       -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: がなければ、それはバージョン
              詳細は 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 を指定した場合、数値によ
              る タイムゾーンオフセットが追加されます; 指定しない
              変 更   さ れ ま せ ん。 新たなログメッセージのみが
              $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
              \        \\

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


環境変数

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


診断

       RCS パス名、ワークファイルパス名、取り出されるリビジョンの
       番号を診断出力します。全ての処理が成功した場合のみ、終了ス
       テータス 0 を返します。


作者

       Author: Walter F. Tichy.
       Manual Page Revision: 1.6; Release Date: 1999/08/27.
       Copyright (C) 1982, 1988, 1989 Walter F. Tichy.
       Copyright (C) 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
       ではキーワード中にヌル文字 \& を埋め込むことにより展開を防
       ぐことができます。



GNU                         1999/08/27                      CO(1)

ABELNET VPSサービス