ノード:Global Options, 次:, 前:Date Formats, 上:Commands And Options



Global Options

CVS のすべてのグローバルオプションを以下に記します。

--allow-root=REPOSITORY

アルファベット順で最初に来るこのオプションは、実際にはコマンドラインで 使用されることはありません。-allow-root オプションは pserver コマンドと共に使用して、アクセスを許可するリポジトリを指定します。指定 は /usr/local/newrepos のようにリポジトリレベルで行います。 /usr/local/newrepos/myproj のようなプロジェクトサブディレクトリ の指定はできません。

このグローバルオプションがコマンドラインで使用されることはありません。 通常は /etc/inetd.conf ファイルの中でのみ用いられるものです (Repository Administration 参照)。pserver コマンドが使用 されるのもそこだけです。

cvs pserver 経由でアクセスするリポジトリについては、対応す る -allow-root オプションをそのホストの /etc/inetd.conf 中に 指定しておく必要があります。これはセキュリティのための仕組みで、プライ ベートなリポジトリに pserver 経由のアクセスをさせないようにするもので す。

(The Password-Authenticating Server と、Cederqvist マニュアルの Password Authentication Server ノードを参照してください。)

-a

サーバとの通信すべてを認めます。このオプションは GSSAPI サーバ (gserver) 経由で接続している場合以外には意味はありません。GSSAPI はま だあまり使われていないと思われますので、この本で説明していません(その うち使われるようになるとは思うのですが)。(詳細は Cederqvist マニュアル の Global OptionsGSSAPI Authenticated を参照のこと。)

-b (Obsolete)

以前はこのオプションで、RCS のバイナリファイルのあるディレクトリを指定 していました。現時点で CVS は RCS の機能を内部的に実装していますので、 このオプションに意味はありません(互換性のために残してあるだけです)。

-d REPOSITORY

リポジトリを指定します。絶対パスであったり、あるいは接続方法・ユーザ名・ ホスト名・パスを含んだ複雑なものである場合もあります。接続方法を指定す る場合、構文は次のとおりです:

:METHOD:USER@HOSTNAME:PATH_TO_REPOSITORY

各接続方法について例を示します:

-e EDITOR

コミットメッセージが -m オプションで指定されない場合、コミットメッセー ジを書くためのエディタとして EDITOR を起動します。普通は -m でのメッセ ージ指定を行わなかった場合、CVS は $CVSEDITOR$VISUAL$EDITOR 環境変数をこの順でチェックし、その結果に基づいてエディ タを起動します。これでうまくいかなかったときには Unix 上のポピュラーな エディタ、vi を起動します。

Invokes EDITOR for your commit message, if the commit message was not specified on the command line with the -m option. Normally, if you don't give a message with -m, CVS invokes the editor based on the $CVSEDITOR, $VISUAL, or $EDITOR environment variables, which it checks in that order. Failing that, it invokes the popular Unix editor vi.

コミット時に -e グローバルオプションと -m オプション両方を渡した場合に は、 コマンドラインで指定したコミットメッセージを優先し、-e は無視され ます(ですので .cvsrc ファイルで -e を指定しておいも安全です)。

-f

このグローバルオプションを指定すると .cvsrc ファイルを読みませ ん。

--help [COMMAND] or -H [COMMAND]

これら2つのオプションは同義のものです。 COMMAND が指定されない場合、基 本的な使用法が標準出力に出力されます。COMMAND が指定された場合はそのコ マンドの使用法が出力されます。

--help-options

CVS の全グローバルオプション一覧を短い説明つきで出力します。

--help-synonyms

CVS コマンドの一覧を省略形つきで出力します(update は up だとか、そうい うやつです)。

-l

このコマンドをリポジトリ内の CVSROOT/history ファイルに記録しま せん。コマンドは通常どおり実行されますが、history ファイルに記録が残り ません。

-n

作業コピー内、リポジトリ内のファイルを一切変更しません。つまりそのコマ ンドは「ドライラン」(dry run) で実行するということです。CVS はそのコマ ンドのほとんどの手順を踏みますが、実際に実行する手前で中止します。

そのコマンドが何をするのか、実際には実行しないで知りたい場合に便利です。 自分の作業ディレクトリ中でどのファイルを変更したんだったか知りたいけど、 アップデートしたいわけじゃない(リポジトリから変更分を持ってきちゃうか ら)、というような話はよくあることです。cvs -n update を実行 すれば、作業コピー中でファイルを変えることなく、ローカルで何をしたか 概要がわかります。

-q

あまり重要でないメッセージの出力を止めて、適当に静かに動作するよう CVS に指示します。何が「重要」かはコマンドによって違います。たとえば、アッ プデート中の作業コピーの各サブディレクトリへの移動(通常は出力される)に ついては出力されませんが、変更されたファイル、アップデートされたファイ ルについての情報は出力されます。

-Q

コマンドを実行完了するために絶対必要なもの以外は出力せず、非常に静かに 動作するよう CVS に指示します。出力を生成することが唯一の目的であるよ うなコマンド(diffannotate など)は出力をやめたりしま せんが、出力するメッセージとコマンドの効果が関係ないようなコマンド (updatecommit など)は何のメッセージも出力しません。

-r

新しく作る作業ファイルを読み込み専用にします($CVSREAD 環境変数 を設定するのと同様の効果)。

このオプションを指定した場合、チェックアウト・アップデートすると作業コ ピー中のファイルが読み込み専用になります(OSが許せば)。率直に言って筆者 はこのオプションを使いたいような理由を思いつきません。

-s VARIABLE=VALUE

変数名 VARIABLE の CVS の内部変数の値を VALUE に設定します。

リポジトリ側の CVSROOT/*info トリガファイルはこのような変数を -s オプションで代入された値に展開することができます。たとえば、 CVSROOT/loginfo に次のような行があったとします:

myproj  /usr/local/bin/foo.pl ${=FISH}

ここで誰かが myproj の作業コピーから、次のようにコミットしたとすると

floss$ cvs -s FISH=carp commit -m "fixed the bait bug"

foo.pl スクリプトは carp を引数として起動されます。ただ し書式には注意してください、ドルマーク、イコール、中括弧すべて必要です。 一つでも欠けると展開されません(少なくとも思ったようにはなりません)。変 数名には英数字とアンダスコアが使用できます。すべてを大文字にする必要は ないのですが、そのようにする人が大多数です。

ひとつのコマンド中に -s フラグを何回使ってもかまいません。しかし、トリ ガスクリプト中で参照されている変数を CVS の起動時に指定しなかった場合、 コマンド自体は成功したとしても変数展開は行われず、警告メッセージが出力 されます。たとえば loginfo にこのようなエントリがあって、

myproj  /usr/local/bin/foo.pl  ${=FISH}  ${=BIRD}

前述と同様のコマンドが実行された場合には

floss$ cvs -s FISH=carp commit -m "fixed the bait bug"

このコマンドを実行したユーザに対して次のような警告が出力され(最後のほ うに出力されます)、

loginfo:31: no such user variable ${=BIRD}

この後 foo.pl スクリプトが引数無しで起動されます。ですが、以下 のようにコマンドを実行した場合には

floss$ cvs -s FISH=carp -s BIRD=vulture commit -m "fixed the bait bug"

loginfo 中の ${=FISH}${=BIRD} は両方正しく展開さ れ、警告も出力されません。どちらの場合でもコミットそのものは成功するは ずです。

これらの例ではすべて commit を使用しましたが、変数展開は CVSROOT/ のトリガファイルで書ける CVS コマンドならどれでも変数 展開できます。ですから -s オプションはグローバルオプションなのです。

(このあとこの章に出てくる Repository Administrative Files の節で、 トリガファイル内での変数展開について詳しく述べます)

-T DIR

テンポラリファイルを、普通 CVS が置く場所ではなく DIR に置きます。(と りわけ $TMPDIR 環境変数の値より優先されることに注意してください) DIR は絶対パス指定でなければなりません。

このオプションは、通常のテンポラリディレクトリへの書込み権限をあなたが (and, therefore, CVS doesn't either)持っていない場合に便利です。

-t

CVS コマンドの実行をトレースします。そのコマンドを完遂するまでに通過す る各ステップについてのメッセージを出力します。-n オプションと合わせて 使うと、まだ良くわかっていないコマンドの動作を実際に動作させる前に確認 できて便利です。また、あるコマンドが失敗する時、その原因を調べたい場合 にも使えます。

-v or --version

バージョンと著作権情報を表示し、エラーなしで終了します。

-w

$CVSREAD 環境変数

作業ファイルを読み書きできるファイルとして生成します($CVSREAD 環境変数より優先されます)。デフォルトで読み書きできるファイルが生成さ れますので、このオプションはめったに使用されません。

-r と -w 両方を指定した場合には -w のほうが優先されます。

-x

サーバとの通信内容をすべて暗号化します。このオプションは GSSAPI サーバ (gserver) 経由で接続している場合以外は意味がありません。 GSSAPI 接続は まだめったに使われていませんので、この本では説明していません。 (詳しくは Cederqvist マニュアルの Global OptionsGSSAPI Authenticated を参照のこと)

-z GZIPLEVEL

サーバとの通信で使用する圧縮のレベルを指定します。GZIPLEVEL 引数は 1 から 9 の数字です。レベル1は最小限の圧縮(とても速いですがあまり圧縮さ れません)、レベル9は最大限の圧縮です(CPU時間を食いますがデータは確実に 圧縮されます)。レベル9はネットワーク接続が非常に遅い場合にしか役に立た ないでしょう。通常は3から5あたりが妥当だと思われます。

-z と引数の間の空白はあってもなくてもかまいません。