last modify [2001/02]
CVS NT をPserverでインストールする
- http://www.cvsnt.com/からCVS NTを入手する。
(2001/01/30現在の最新版は「cvs-1.10.8NT.exe.zip」)
- 入手したCVS NTを解凍し、適当なフォルダにコピーする。
- CVSインストールフォルダにパスを通す
- CVSの環境変数を設定する。
「CVSROOT」は必ず設定しておく。
例1 : CVSROOT=d:\cvs (ローカルの時)
例2 : CVSROOT=:pserver:USERNAME@IP_ADDRESS:d:\cvs (pserverの時)
以下CVSROOTの位置を「<CVSROOT>」と表記する。
「HOME」も設定しておいた方が良いかもしれない?
例 : HOME=c:\my_home ("\"で終わらない事)
- レポジトリを作成する
コマンドラインから「cvs -d <CVSROOT> init」と実行する。
例 : cvs -d :local:d:\cvs init
環境変数CVSROOTが設定されていれば、「cvs init」だけでもかまわない。
win9xの時は「cvs」コマンドの変わりに「cvs98」ってなるのかな?(未確認)
- CVS NTをPserverのサービスとして動かす
コマンドラインから「ntservice -i <CVSROOT>」を実行する
例 : ntservice -i d:\cvs
この時点ではサービスは開始していないので、手動で開始するか再起動する事。
(参考)
コマンドラインからのサービスの開始と停止は以下の通り
開始 : net start "CVS NT Service"
停止 : net stop "CVS NT Service"
(参考2)
通常は行わないが、サービスをアンインストールする時はコマンドラインから「ntservice -u」と入力する
この時点ではまだアンインストールされていないので、windowsを再起動する事。
- PServerの接続確認
telnetでポート2401に接続してテストする
例 : telnet servername 2401
foo
ここで
「cvs [pserver aborted]: bad auth protocol start: foo」
と表示されればCVSは正常に動いている
- 認証できるようにする
〇パスワード認証できる様にする場合
- CVSインストールフォルダにあるpwgen.exeを起動し、暗号化されたパスワードを作成する。
- <CVSROOT>\CVSROOT\passwdファイルを編集する。
ない時は新規作成する。
「<CVSROOT>\CVSROOT」の多くのファイルはCVS経由で編集をしますが、このpasswdファイルは経由ではなくて直接編集します。
これはセキュリティの問題によるものです。
passwdファイルの書式は以下の通り
ユーザ名:暗号化されたパスワード[:システムユーザ名]
ユーザ名:!暗号化されていないパスワード[:システムユーザ名]
例 : user:p2azi8bhDo1ZI
user:!password
システムユーザ名は使わなくてもかまいません
module毎に権限を替える場合に使用するみたいですが・・・
・PServerが起動しているマシンが参加しているドメインのパスワードじゃないと、マシンにログインできない?
〇システム認証できる様にする場合
- <CVSROOT>フォルダのCVSROOTフォルダをチェックアウト
例 : cd <CVSROOT>
cvs co CVSROOT
- チェックアウトしたCVSROOTフォルダのconfigファイルを編集する。
SystemAuth=yes
にする。
- レポジトリに反映する
例 : cvs commit
- リリースしておく
例 : cd .. # 作業ディレクトリのすぐ上で実行しなくてはいけない
cvs release -d CVSROOT
・パスワードはホームディレクトリ(?)の「.cvspass」ファイルに保存され、2回目以降は聞かれる事はない
- モジュールを作成する
〇コマンドラインから(超簡単な説明)
- インポートするファイルがあるフォルダに移動する
- インポートする
importコマンドは、カレントディレクトリの内容を指定モジュール名でimportする
コマンドは「cvs import -m "コメント" インポートするモジュール名 ベンダータグ リリースタグ」
例 : cvs import -m "最初のインポート" project my_name start
projectディレクトリ以下にある全てのファイルがインポートされる。
ここでインポートしてほしくないファイルがある時は「-l」オプションをつける。
例えば、「classes」ディレクトリ「*.jpx.local」ファイル、「*~」ファイルをインポートしたくない時は以下の様になる。
例2 : cvs import -l "classes" -l "*.jpx.local" -l "*~" -m "最初のインポート" project my_name start
(これは未確認だけどさぁ・・・)
〇JBuilder4.0からPServer経由で
- 「チーム」-「バージョンコントロールの設定」を実行
- 「バージョンコントロールの選択」を「CVS」に変更する
-
- 接続タイプ
- 「PServer」を選択する
- ログイン設定
- サーバ : 「ホスト名」か「IPアドレス」を入力する
- ユーザ名 : 「ユーザ名」を入力する
- モジュールの場所
- リポジトリパス : <CVSROOT>フォルダ(ドライブとパスのみでいい。「d:\cvs」など)
- モジュール名 : 作成したいモジュール名
- チェックボックス
- 「CVSの操作前に自動的にファイルを保存」と「コンソールメッセージを表示」にチェックをつける
- モジュール名 : 作成したいモジュール名
- 「OK」ボタンを押して決定する。
- 「チーム」-「モジュールの作成」を実行する
- 初めてPSErverに繋ぐ時はパスワードを聞いてくるのでパスワードを入力する
ここで、正しいパスワードを入力してもログインできない事があるみたいです。
CVSサーバ上で「cvs -d :pserver:user@localhost:<CVSROOT> login」を入力して一度ログインを成功させておくと、ログインできるようになる事があるみたい(?)
- 「classes」フォルダ、「*.jpx.local」ファイル、および「*~」ファイルを除いてインポートされる
・JBuilderですでにあるソースファイルをちょっときれいに(?)インポートするには・・・
- 作成したいモジュール名で空のプロジェクトを作成し、JBuilderを終了する
- 「プロジェクト名.jpx」と「プロジェクト名.html」以外を削除する
- すでにあるファイルを「src」フォルダにコピーする
- JBuilderを起動し、プロジェクトを起動する
- 上記「○JBuilder4.0から」を参考にモジュールを作成する
JBuilder4.0からPserverを使用してCVSを使用する
- 上記「CVS NT をPserverでインストールする」を参考にCVSを入手し、適当なフォルダに解凍しパスを通しておく。
- 「チーム」-「バージョンコントロールの設定」を実行
- 「バージョンコントロールの選択」を「CVS」に変更する
-
- 接続タイプ
- 「PServer」を選択する
- ログイン設定
- サーバ : 「ホスト名」か「IPアドレス」を入力する
- ユーザ名 : 「ユーザ名」を入力する
- モジュールの場所
- リポジトリパス : <CVSROOT>フォルダ(ドライブとパスのみでいい。「d:\cvs」など)
- モジュール名 : チェックアウトしたいモジュール名
- チェックボックス
- 「CVSの操作前に自動的にファイルを保存」と「コンソールメッセージを表示」にチェックをつける
- モジュール名 : 作成したいモジュール名
- 「OK」ボタンを押して決定する。
- 「チーム」-「プロジェクトのチェックアウト」を実行する
- 初めてPSErverに繋ぐ時はパスワードを聞いてくるのでパスワードを入力する
ここで、正しいパスワードを入力してもログインできない事があるみたいです。
CVSサーバ上で「cvs -d :pserver:user@localhost:<CVSROOT> login」を入力して一度ログインを成功させておくと、ログインできるようになる事があるみたい(?)
- チェックアウトされる
CVSでcommitメールの送り方
- JPerlをここを参考にインストールする。
Jperlにパスを通しておく事。
たいしたことは全然書いてないけどね・・・(^^;)。
- まず、コマンドラインからメールを送れるようにするためにBlatJをインストールする。
- http://www.piedey.co.jp/softs/tconv.htmlからtconv 0.8以上を入手する。
- tconvを解凍し「tconvlib.dll」をシステムフォルダ(WindowNT/2000の時はC:\WINNT\system32)にコピーする
- http://www.piedey.co.jp/softs/blat.htmlからBlatJを入手する。
- BlatJを解凍し、適当なフォルダに解凍する。
BlatJはどこにおいても良いが、今回は「c:\Program Files\blatj\」に置いてみる。
- BlatJにSMTPサーバーのホスト名と送り元メールアドレスを登録する
コマンドラインから「BlatJ -install SMTPサーバーのホスト名 電子メール送り元アドレス」と入力する
例 : Blatj -install smtp.foo.co.jp foo@foo.co.jp
これで、コマンドラインからメールを送る事ができるようになった
<BaltJでのメール送信方法>
BlatJ ファイル名 -t 送信先アドレス -s サブジェクト
・blatjではサブジェクトにスペースがあってはいけないみたい?(少なくとも、log.plから送信する時にサブジェクトにスペースがあると送信できなかった)
- コミットされた時にメールを送信するperlプログラム「log.pl」を入手する
http://www.cvsnt.org/からCVSのtarボールを入手する
(2001/02/10現在の最新版は「cvs-1.10.8NT.tar.gz」)
「log.pl」はCVSのソースを入手できれば、どこにでも入ってるみたい
- 解凍し、「/contrib/log.pl」を取り出す。
log.plはどこにおいても良いが、今回は「c:\contrib\log.pl」に置いてみる。
- log.plを以下の様に編集する
これはあくまでもBlatJ用の編集方法です
(編集前1)
if ($arg eq '-m') {
$users = "$users " . shift @ARGV;
(編集後1)
if ($arg eq '-m') {
if ($users ne '') { $users = "$users" . ","; } #メールアドレスをカンマ区切りで繋げる
$users = "$users" . shift @ARGV;
(編集前2)
$mailcmd = "| Mail -s 'CVS update: $modulepath'";
(編集後2)
$mailcmd = "| C:/Progra~1/blatj/blatj - -s 'CVS_update:$modulepath'";
-sオプションでサブジェクトを指定するが、このサブジェクトにスペースが入ると問題があるみたい。
(編集前3)
$mailcmd = "$mailcmd $users";
(編集後3)
$mailcmd = "$mailcmd" . " -t " . "$users";
この環境では日本語も問題なく通るはずであるが、だめな時はNKFを使用する
以下のを追加する(これは動作未確認)
-----
$NKF = "c:\nkf"; #日本語を通すため、NKFまでのパスとコマンド名
$mailcmd = "| $NKF | C:/Progra~1/blatj/blatj - -s 'CVS_update:$modulepath'";
-----
- loginfoを編集する
- <CVSROOT>フォルダのCVSROOTフォルダをチェックアウト
例 : cd <CVSROOT>
cvs co CVSROOT
- チェックアウトしたCVSROOTフォルダのloginfoファイルを編集する。
- すべてのコミットにメールを送る時
ALL jperl c:\contrib\log.pl -f "c:\cvsmsg.log" -m foo@foo.com -m boo@foo.com
ALLは『全モジュールに対してcommitされた時適用する』の意味
- モジュールmodulenameのコミットにメールを送る時(サブジェクトにモジュール名を入れる)
modulename jperl c:\contrib\log.pl -f "c:\cvsmsg.log" -m foo@foo.com -m boo@foo.com modulename
本来は第1パラメータは正規表現なので「^modulename$」の様に指定できるはずなんだけど、できなかったんだよねぇ・・・。なぜ?
-fオプション
コミット内容のログファイル名
(全員が書き込める所であれば何でもいいのかも)
-mオプション
送り先のメールアドレスを指定する
- レポジトリに反映する
例 : cvs commit
- リリースしておく
例 : cd .. # 作業ディレクトリのすぐ上で実行しなくてはいけない
cvs release -d CVSROOT
- 一応Windowsを再起動しておきましょう(必要ないかも?)
○パスの「\」と「/」について
CVS NTでは特にどちらを使っても良いみたい。
他のCVSの時は「/」を使った方がいいみたい。