=begin
= cvs 管理用ディレクトリ CVSROOT の編集
((::))
* 編集者: 森川靖大、石渡正樹
* 最終更新: 2004/09/30 (森川靖大)
* 新規作成: 2004/09/30 (森川靖大)
((::))
((:
:))
((::))
Contents
<<< cvs-cvsroot.hindex.rd
((:
:))
((:
:))
(())や
((<バイナリファイルを安全に登録するために|URL:cvs-binary.htm>))、
(())、
((<コミットメッセージを euc コードのみにするには|URL:cvs-eucmsg.htm>))
などの cvs リポジトリ自体の動作設定を行なうためには、
リポジトリ以下の CVSROOT 内のファイルを編集する必要がある。
これは直接編集することも可能だが、checkout と commit
によって編集するのがお作法である。
== CVSROOT のチェックアウト
チェックアウトの方法はその他のプロジェクトと同様である。
ここではリポジトリがホスト 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 ディレクトリが展開される。
更新や編集の登録は普通にプロジェクトで行なうのと同様なので、
(())や
(())を
参照せよ。ただし、大きく異なる点は以下の(())である。
これは特に、CVSROOT 内に新たにファイルを追加する場合には重要である。
== checkoutlist
一旦 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 オプションを用いれば良く、
(())を
参照すれば良い。
ただしその後に (({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
内のファイルがリビルドされるまでは動作が回復するはずである。
もちろん、動作が回復した場合は真っ先に、動作不良の原因であった
ファイルを編集すべきである。
((:
:))
=end