=begin
=CVS リポジトリ作成
((::))
* 編集者: 森川靖大
* 最終更新: 2004/10/01 (森川靖大)
* 新規作成: 2004/09/28 (森川靖大)
((::))
((:
:))
((::))
Contents
<<< cvs-repository.hindex.rd
((:
:))
((:
:))
==リポジトリとは?
cvs で管理される資源の格納場所 (御本尊) はリポジトリと呼ばれる。
リポジトリの作成作業は最初に 1 回だけ行えば良く、編集・更新
作業は後述の「通常の編集作業」に記述されたことを行えば良い。
開発者はこのリポジトリ内で「プロジェクト (モジュールとも呼ぶ)」
を開始し、各プロジェクト単位で開発を行なう。
プロジェクトの開始については
(())
を参照して欲しい。
cvs リポジトリ内にはプロジェクトと同じ名前のディレクトリが
作成され、その中に RCS ファイルを置いてファイルのバージョンを管理する。
ファイルを編集または参照したいユーザが cvs checkout コマンドで
要求すると、そこからカレントプロジェクトに
作業用コピー((-プロジェクトに変更を加える際に編集するコピー。
1つのプロジェクトに対する作業用コピーが複数あることもあり得る。
通常は各開発者毎に1つづつ独自のコピーを持つ。-))が作られ、
適宜 cvs commit コマンドでリポジトリ内の RCS ファイルに履歴を
蓄積させてゆく。
従って、まずは何はともあれリポジトリを作らなければいけない。
また電脳サーバでは原則的にグループユーザ単位での開発をおこなうため、
リポジトリもそれに適したものでなければいけない。
既にリポジトリが存在してそれを利用する場合でも((<電脳リポジトリポリシー>))
と((<グループ書き込み許可の設定>))は参照して欲しい。
== 電脳リポジトリポリシー
以下は、電脳サーバにおけるリポジトリの一般的ルールである。
詳しくは各プロジェクト毎に詳細を決めると良い。
* hoge というプロジェクトのリポジトリはホスト www。gfd-dennou。org の
/GFD_Dennou_Club/ftp/arch/hoge/cvsroot に作成する。
* リポジトリ内のファイルを編集可能なのは、www.gfd-dennou.org に
アカウントを持ち (ssh で www.gfd-dennou.org にログインでき)、
hoge グループに入っているユーザのみとする。
* コミット時には hoge ユーザにメールを送信する。
* 本来は開発グループの全員にメールを送るべきであろう。
hoge ユーザにメールを送るのは、hoge に送られたメールが
hoge グループ全員に送られるような設定が別途なされている
からである。
* リポジトリ内のテキストデータの日本語文字コードは EUC、Shift-JIS、JIS
のどれかに固定するか、または日本語文字コードを含まないように指定
すべきである。異なる日本語文字コードを含めると、diff などの効果が
無くなったり、単体の RCS ファイルに 2 種類の日本語文字コードが含まれる
など、不便が起こる。
* 実際にこのポリシーを強制するためには設定が必要になる。
詳細は (())
を参照せよ。
* 上記と同様に、commit 時のログメッセージに関しても、日本語文字コードを
固定するか英字のみにするべきである。なお、この際の日本語文字コードは
上記のファイルの日本語文字コードと同じものにすべきである。
* 実際にこのポリシーを強制するためには設定が必要になる。
詳細は (())
を参照せよ。
== CVS リポジトリ cvsroot 作成
* 以下のリポジトリ作成に関しては一回こっきりで良いため,
既に作成済みである場合には
(())
を参照して欲しい.
ここでは, CVS リポジトリは www.gfd-dennou.org の
/GFD_Dennou_Club/ftp/arch/hoge/cvsroot に作成することとする.
そのためにはまず www.gfd-dennou.org へログインする.
$ ssh www.gfd-dennou.org
ログインしたら /GFD_Dennou_Club/ftp/arch/hoge/ まで移動する.
$ cd /GFD_Dennou_Club/ftp/arch/hoge/
ここで cvs コマンドを実行すれば cvsroot を作成可能であるが,
グループでの開発であることを考え, 作成するファイルのグループが
hoge となるように, そしてグループに書き込み権限を与えるように
グループと環境変数を変更する.
$ sg hoge
$ umask 002
現在のグループは id コマンドで, umask は umask コマンドで知ることが
できる. 準備が出来たら以下のコマンドを実行する.
$ cvs -d /GFD_Dennou_Club/ftp/arch/hoge/cvsroot init
これで cvsroot ディレクトリが作成されたはずである.
== グループ書き込み許可の設定
上記で umask などの設定をおこなったものの, s ビットを立てるなど,
パーミッションの設定が必要となる. また cvs init コマンドで
作成したディレクトリやファイルの中にはグループ書き込み権限が
無いものもあるので, 以下で設定する.
=== リポジトリ cvsroot パーミッションの設定
cvsroot 以下で作成されるファイル, ディレクトリのグループを
hoge にするため, cvsroot に s ビットを立て, 書き込み権限を
与える. 念のためにグループも hoge に設定する.
$ chmod g+s cvsroot
$ chmod g+w cvsroot
$ chgrp hoge cvsroot
=== 管理用ディレクトリ CVSROOT 内のパーミッションの設定
cvsroot が作成されれば, そのリポジトリに関する CVS の動作を
制御する CVSROOT ディレクトリも作成されているはずである.
このディレクトリ, およびそれ以下の特定のファイルに関して
グループの変更と書き込み権限変更をおこなう.
==== CVSROOT ディレクトリ本体
グループを hoge とし, グループに書き込み権限を与える.
(これは少しアンセキュアな方針かもしれない. よりセキュアな
方法として, 代表的な管理者 1 人にのみ書き込み権限を与える
という方針もあり得るだろう).
$ cd cvsroot
$ chgrp hoge CVSROOT
$ chmod g+s CVSROOT
$ chmod g+w CVSROOT
==== history, val-tags へグループ書き込み権限を与える
CVSROOT 以下にある history, val-tags にグループ書き込み権限
を与える. (グループは既に hoge であると仮定している).
なお, history とはこのリポジトリ以下のプロジェクトに対して
行なわれた checkout, commit, rtag, update, release を記録
しているファイルである. cvs history コマンドで見ることが出来る.
(動作の詳細は cvs history -x コマンドを参照のこと).
ここではグループ hoge で開発することを念頭に置くため,
グループに書き込み権限を与えておく.
$ cd CVSROOT
$ chmod g+w history
val-tags は検索を高速化するために, 有効なタグ名をキャッシュ
しているファイルである. HOGE プロジェクトではタグも使用するので,
これにもグループ書き込み権限を与える.
$ chmod g+w val-tags
== リポジトリの消し方
良く分からず. rm -rf かな?
=end