cvs にて commit するとメールで知らせるようにする設定や バイナリファイルを安全に登録するために、 euc コードのファイルのみリポジトリ管理させるには、 コミットメッセージを euc コードのみにするには などの cvs リポジトリ自体の動作設定を行なうためには、 リポジトリ以下の CVSROOT 内のファイルを編集する必要がある。 これは直接編集することも可能だが、checkout と commit によって編集するのがお作法である。
チェックアウトの方法はその他のプロジェクトと同様である。
ここではリポジトリがホスト www.gfd-dennou.org の
/GFD_Dennou_Club/ftp/arch/hoge/cvsroot
にあると仮定する。
$ export CVSROOT=:ext:www.gfd-dennou.org:/GFD_Dennou_Club/ftp/arch/hoge/cvsroot $ export CVS_RSH=ssh $ cd <適当なディレクトリ> $ cvs checkout CVSROOT
すると、CVSROOT ディレクトリが展開される。
更新や編集の登録は普通にプロジェクトで行なうのと同様なので、 cvs の使い方 -- 最低限編や cvs の使い方 -- 便利編を 参照せよ。ただし、大きく異なる点は以下のcheckoutlistである。 これは特に、CVSROOT 内に新たにファイルを追加する場合には重要である。
一旦 CVSROOT 内を見るため、CVSROOT のある場所まで移動し、 中身を眺めてみよう。
$ ssh www.gfd-dennou.org $ cd /GFD_Dennou_Club/ftp/arch/hoge/cvsroot $ ls -l CVSROOT Emptydir/ cvsform.pl,v loginfo,v taginfo checkoutlist cvswrappers modules taginfo,v checkoutlist,v cvswrappers,v modules,v val-tags commitinfo editinfo notify verifymsg commitinfo,v editinfo,v notify,v verifymsg,v config history rcsinfo config,v loginfo rcsinfo,v
このようにファイルの作業用コピーが RCS リビジョン (****,v)
ファイルと並んで含まれているのが分かる。CVSROOT という管理ディレクトリの
特殊機能として、RCS リビジョンを cvs コマンドによって更新すると
作業用コピーもアップデートされるようになっているのである。
明示的に表しているのが、CVSROOT 内に commit した際のメッセージである。 commit してみると以下のメッセージが表示されるのが分かるだろう。
cvs server: Rebuilding administrative file database
ファイルの追加自体は add と commit オプションを用いれば良く、 cvs の使い方 -- 最低限編を 参照すれば良い。
ただしその後に checkoutlist
にそのファイルに関する記述を
加える必要がある。例えば、cvscheck.pl というファイルを CVSROOT
に加えようとする場合、cvscheck.pl 自体の add と commit を終えたら、
checkoutlist に以下の一行を加える。
cvscheck.pl unable to check out / update cvscheck.pl in CVSROOT
行頭はファイル名、空白を挟んだ後半がチェックアウトできない場合に 表示されるエラーメッセージである。編集が終ったら commit する。
$ cvs ci -m "Add cvscheck.pl" checkoutlist
こうすることで、commit が完了されると共に、メッセージ
cvs server: Rebuilding administrative file database
が表示され、CVSROOT 以下のファイルがリビルドされ、 cvscheck.pl,v から cvscheck.pl が作成される。今後, cvscheck.pl を commit する毎に、CVSROOT 以下の cvscheck.pl も更新される。
CVSROOT 以下は cvs リポジトリ内のプロジェクトにおける checkout、 commit、add などなどの全ての動作を司る。そのため、うっかり CVSROOT 以下のファイルの編集を失敗すると cvs の動作が正常に行なわれなくなる 可能性がある。(これは CVSROOT 自体の編集のための動作も例外ではない)。
万が一編集などの動作が cvs 越しには不可能になった場合、CVSROOT 以下を 直接編集して CVSROOT 内の設定を修正する。そうすることで次に CVSROOT 内のファイルがリビルドされるまでは動作が回復するはずである。 もちろん、動作が回復した場合は真っ先に、動作不良の原因であった ファイルを編集すべきである。