=begin
= davis プロジェクトレポジトリ作成メモ
# * 森川 靖大
# * 2006/08/04 (森川 靖大) 最終更新
== 前提
* リポジトリを作成するホストには cvs ソフトウェアが入っている必要がある.
== 手引き
基本的には
(())
を参考にして作業を行なう.
== CVS リポジトリ作成
ここでは www.gfd-dennou.org の /GFD_Dennou_Club/ftp/arch/davis 以下に
レポジトリを作成する.
* まず www.gfd-dennou.org へログインする.
$ ssh www.gfd-dennou.org
* ログインしたら /GFD_Dennou_Club/ftp/arch/davis/ まで移動する.
$ cd /GFD_Dennou_Club/ftp/arch/davis/
* 開発グループメンバーに書き込み権限を与えるように,
グループと環境変数を変更する.
$ sg davis
$ umask 002
ちなみに, 現在のグループは id コマンドで, umask は umask コマンドで
知ることができる.
* 準備が出来たら以下のコマンドを実行する.
これで cvsroot ディレクトリが作成される.
$ cvs -d /GFD_Dennou_Club/ftp/arch/davis/cvsroot init
== グループ書き込み許可の設定
上記の umask 設定に加え, s ビットを立てるなどのパーミッションの設定が
必要となる. また cvs init コマンドで作成したディレクトリやファイルの中
にはグループ書き込み権限が無いものもあるので, 以下のように再設定する.
* リポジトリ cvsroot パーミッションの設定
cvsroot 以下に作成されるファイル, ディレクトリのグループを davis に
するため, cvsroot に s ビットを立て, 書き込み権限を与える.
念のためにグループも davis に設定する.
$ chmod g+s cvsroot
$ chmod g+w cvsroot
$ chgrp davis cvsroot
* 管理用ディレクトリ CVSROOT 内のパーミッションの設定
* (()):
グループを davis とし, グループに書き込み権限を与える.
$ cd cvsroot
$ chgrp davis CVSROOT
$ chmod g+s CVSROOT
$ chmod g+w CVSROOT
* 注) これは少しアンセキュアな方針かもしれない.
よりセキュアな方法として, 代表的な管理者 1 人にのみ書き込み権限を
与えるという方針もあり得るだろう.
* (()):
CVSROOT 以下にある history, val-tags にグループ書き込み権限を与える.
$ cd CVSROOT
$ chmod g+w history
$ chmod g+w val-tags
* history とはこのリポジトリ以下のプロジェクトに対して行なわれた
checkout, commit, rtag, update, release を記録しているファイルである.
cvs history コマンドで見ることが出来る
(動作の詳細は cvs history -x コマンドを参照のこと).
ここではグループ davis で開発することを念頭に置くため,
グループに書き込み権限を与えておく.
* val-tags は検索を高速化するために, 有効なタグ名をキャッシュしている
ファイルである.
davis プロジェクトではタグも使用するので, これにもグループ書き込み
権限を与える.
== プロジェクトの開始
* リモートホストで作業する場合, cvsroot を指定する環境変数 CVSROOT と
www.gfd-dennou.org へのアクセス方法を指定する環境変数 CVS_RSH を設定する.
$ export CVSROOT=:ext:www.gfd-dennou.org:/GFD_Dennou_Club/ftp/arch/davis/cvsroot
$ export CVS_RSH=ssh
www.gfd-dennou.org 内で作業をおこなう場合には, 以下のみでも構わない.
$ export CVSROOT=/GFD_Dennou_Club/ftp/arch/davis/cvsroot
* 次に, プロジェクトとして含むファイル群の位置まで移動する.
ここでは /home/morikawa/davis 以下にプロジェクトのソースが展開されているとする.
$ cd /home/morikawa/davis
* 余計なファイルを全て消す
( .??* ファイルは ls では見えないので ls -a でちゃんと探すこと).
* 掃除が終ったらプロジェクトを開始させる. 開始は以下のコマンドでおこなう.
$ cvs import -m \
"gfdnavi (Geophysical Fluid Data Navigator)" gfdnavi davis Initial
↑ ↑ ↑ ↑
コメント プロジェクト名 | リリースタグ
|| |
ディレクトリ名 |
ベンダー
*「No conflicts created by this import」 というようなメッセージが出れば, インポート成功.
== プロジェクトのパーミッションの確認
* プロジェクトのディレクトリのパーミッションを確認しておく.
$ ssh www.gfd-dennou.org
$ cd /GFD_Dennou_Club/ftp/arch/davis/cvsroot
$ ls -l
drwxrwsr-x 3 morikawa davis 53 8月 31 19:40 davis/
上記のようにグループが davis で権限が rws の場合は問題ない.
もしそうでないのなら, 以下のコマンドでグループとパーミッションを
変更すること.
$ chgrp davis hogehoge
$ chmod g+s hogehoge
$ chmod g+w hogehoge
* なお, もしも hogehoge が上記のようなパーミッションになっていなかった場合,
それよりも下層ディレクトリのパーミッションもそれと同様な可能性がある.
それらに関してもグループとパーミッションを設定すること.
* プロジェクト以下にある「ファイル」に関しては (グループは davis で
ある必要があるが) パーミッションは -r--r--r-- で問題ない.
cvs コマンドを介せば, 正しく commit, add, remove などが可能である.
== コミット時に davis ユーザにメールを送信するための設定
* (())参照.
== バイナリデータの扱い
* (())参照.
== ファイルの文字コードチェック
* (())参照.
* 文字コードは Shift-JIS に固定する.
== ログメッセージの文字コードチェック
* (())参照.
* 文字コードは Shift-JIS に固定する.
=end