last modify [2001/02]

CVS NT をPserverでインストールする


  1. http://www.cvsnt.com/からCVS NTを入手する。
    (2001/01/30現在の最新版は「cvs-1.10.8NT.exe.zip」)

  2. 入手したCVS NTを解凍し、適当なフォルダにコピーする。

  3. CVSインストールフォルダにパスを通す

  4. CVSの環境変数を設定する。
    「CVSROOT」は必ず設定しておく。
    例1 : CVSROOT=d:\cvs (ローカルの時)
    例2 : CVSROOT=:pserver:USERNAME@IP_ADDRESS:d:\cvs (pserverの時)
    以下CVSROOTの位置を「<CVSROOT>」と表記する。
    「HOME」も設定しておいた方が良いかもしれない?
    例 : HOME=c:\my_home ("\"で終わらない事)

  5. レポジトリを作成する
    コマンドラインから「cvs -d <CVSROOT> init」と実行する。
    例 : cvs -d :local:d:\cvs init
    環境変数CVSROOTが設定されていれば、「cvs init」だけでもかまわない。
    win9xの時は「cvs」コマンドの変わりに「cvs98」ってなるのかな?(未確認)

  6. CVS NTをPserverのサービスとして動かす
    コマンドラインから「ntservice -i <CVSROOT>」を実行する
    例 : ntservice -i d:\cvs
    この時点ではサービスは開始していないので、手動で開始するか再起動する事。

    (参考)
    コマンドラインからのサービスの開始と停止は以下の通り
    開始 : net start "CVS NT Service"
    停止 : net stop "CVS NT Service"

    (参考2)
    通常は行わないが、サービスをアンインストールする時はコマンドラインから「ntservice -u」と入力する
    この時点ではまだアンインストールされていないので、windowsを再起動する事。

  7. PServerの接続確認

    telnetでポート2401に接続してテストする
    例 : telnet servername 2401
         foo
    ここで
    「cvs [pserver aborted]: bad auth protocol start: foo」
    と表示されればCVSは正常に動いている

  8. 認証できるようにする

    〇パスワード認証できる様にする場合
    1. CVSインストールフォルダにあるpwgen.exeを起動し、暗号化されたパスワードを作成する。
    2. <CVSROOT>\CVSROOT\passwdファイルを編集する。
      ない時は新規作成する。
      「<CVSROOT>\CVSROOT」の多くのファイルはCVS経由で編集をしますが、このpasswdファイルは経由ではなくて直接編集します。
      これはセキュリティの問題によるものです。
      passwdファイルの書式は以下の通り
        ユーザ名:暗号化されたパスワード[:システムユーザ名]
        ユーザ名:!暗号化されていないパスワード[:システムユーザ名]
      例 : user:p2azi8bhDo1ZI
           user:!password
      システムユーザ名は使わなくてもかまいません
      module毎に権限を替える場合に使用するみたいですが・・・

    ・PServerが起動しているマシンが参加しているドメインのパスワードじゃないと、マシンにログインできない?

    〇システム認証できる様にする場合
    1. <CVSROOT>フォルダのCVSROOTフォルダをチェックアウト
      例 : cd <CVSROOT>
           cvs co CVSROOT
    2. チェックアウトしたCVSROOTフォルダのconfigファイルを編集する。
      SystemAuth=yes にする。
    3. レポジトリに反映する
      例 : cvs commit
    4. リリースしておく
      例 : cd ..           # 作業ディレクトリのすぐ上で実行しなくてはいけない
           cvs release -d CVSROOT

    ・パスワードはホームディレクトリ(?)の「.cvspass」ファイルに保存され、2回目以降は聞かれる事はない

  9. モジュールを作成する

    〇コマンドラインから(超簡単な説明)
    1. インポートするファイルがあるフォルダに移動する
    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経由で
    1. 「チーム」-「バージョンコントロールの設定」を実行
    2. 「バージョンコントロールの選択」を「CVS」に変更する
    3. 接続タイプ
      「PServer」を選択する
      ログイン設定
      サーバ : 「ホスト名」か「IPアドレス」を入力する
      ユーザ名 : 「ユーザ名」を入力する
      モジュールの場所
      リポジトリパス : <CVSROOT>フォルダ(ドライブとパスのみでいい。「d:\cvs」など)
      モジュール名 : 作成したいモジュール名
      チェックボックス
      「CVSの操作前に自動的にファイルを保存」と「コンソールメッセージを表示」にチェックをつける
      モジュール名 : 作成したいモジュール名
    4. 「OK」ボタンを押して決定する。
    5. 「チーム」-「モジュールの作成」を実行する
    6. 初めてPSErverに繋ぐ時はパスワードを聞いてくるのでパスワードを入力する
      ここで、正しいパスワードを入力してもログインできない事があるみたいです。
      CVSサーバ上で「cvs -d :pserver:user@localhost:<CVSROOT> login」を入力して一度ログインを成功させておくと、ログインできるようになる事があるみたい(?)
    7. 「classes」フォルダ、「*.jpx.local」ファイル、および「*~」ファイルを除いてインポートされる

    ・JBuilderですでにあるソースファイルをちょっときれいに(?)インポートするには・・・
    1. 作成したいモジュール名で空のプロジェクトを作成し、JBuilderを終了する
    2. 「プロジェクト名.jpx」と「プロジェクト名.html」以外を削除する
    3. すでにあるファイルを「src」フォルダにコピーする
    4. JBuilderを起動し、プロジェクトを起動する
    5. 上記「○JBuilder4.0から」を参考にモジュールを作成する


JBuilder4.0からPserverを使用してCVSを使用する


  1. 上記「CVS NT をPserverでインストールする」を参考にCVSを入手し、適当なフォルダに解凍しパスを通しておく。

  2. 「チーム」-「バージョンコントロールの設定」を実行

  3. 「バージョンコントロールの選択」を「CVS」に変更する

  4. 接続タイプ
    「PServer」を選択する
    ログイン設定
    サーバ : 「ホスト名」か「IPアドレス」を入力する
    ユーザ名 : 「ユーザ名」を入力する
    モジュールの場所
    リポジトリパス : <CVSROOT>フォルダ(ドライブとパスのみでいい。「d:\cvs」など)
    モジュール名 : チェックアウトしたいモジュール名
    チェックボックス
    「CVSの操作前に自動的にファイルを保存」と「コンソールメッセージを表示」にチェックをつける
    モジュール名 : 作成したいモジュール名

  5. 「OK」ボタンを押して決定する。

  6. 「チーム」-「プロジェクトのチェックアウト」を実行する

  7. 初めてPSErverに繋ぐ時はパスワードを聞いてくるのでパスワードを入力する
    ここで、正しいパスワードを入力してもログインできない事があるみたいです。
    CVSサーバ上で「cvs -d :pserver:user@localhost:<CVSROOT> login」を入力して一度ログインを成功させておくと、ログインできるようになる事があるみたい(?)

  8. チェックアウトされる


CVSでcommitメールの送り方


  1. JPerlをここを参考にインストールする。
    Jperlにパスを通しておく事。
    たいしたことは全然書いてないけどね・・・(^^;)。

  2. まず、コマンドラインからメールを送れるようにするためにBlatJをインストールする。

  3. http://www.piedey.co.jp/softs/tconv.htmlからtconv 0.8以上を入手する。

  4. tconvを解凍し「tconvlib.dll」をシステムフォルダ(WindowNT/2000の時はC:\WINNT\system32)にコピーする

  5. http://www.piedey.co.jp/softs/blat.htmlからBlatJを入手する。

  6. BlatJを解凍し、適当なフォルダに解凍する。
    BlatJはどこにおいても良いが、今回は「c:\Program Files\blatj\」に置いてみる。

  7. BlatJにSMTPサーバーのホスト名と送り元メールアドレスを登録する
    コマンドラインから「BlatJ -install SMTPサーバーのホスト名 電子メール送り元アドレス」と入力する
    例 : Blatj -install smtp.foo.co.jp foo@foo.co.jp

    これで、コマンドラインからメールを送る事ができるようになった

    <BaltJでのメール送信方法>
    BlatJ ファイル名 -t 送信先アドレス -s サブジェクト

    ・blatjではサブジェクトにスペースがあってはいけないみたい?(少なくとも、log.plから送信する時にサブジェクトにスペースがあると送信できなかった)

  8. コミットされた時にメールを送信するperlプログラム「log.pl」を入手する
    http://www.cvsnt.org/からCVSのtarボールを入手する
    (2001/02/10現在の最新版は「cvs-1.10.8NT.tar.gz」)
    「log.pl」はCVSのソースを入手できれば、どこにでも入ってるみたい

  9. 解凍し、「/contrib/log.pl」を取り出す。
    log.plはどこにおいても良いが、今回は「c:\contrib\log.pl」に置いてみる。

  10. 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'";
    -----

  11. loginfoを編集する

    1. <CVSROOT>フォルダのCVSROOTフォルダをチェックアウト
      例 : cd <CVSROOT>
           cvs co CVSROOT
    2. チェックアウトした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オプション
        送り先のメールアドレスを指定する

    3. レポジトリに反映する
      例 : cvs commit
    4. リリースしておく
      例 : cd ..           # 作業ディレクトリのすぐ上で実行しなくてはいけない
           cvs release -d CVSROOT

  12. 一応Windowsを再起動しておきましょう(必要ないかも?)




○パスの「\」と「/」について
CVS NTでは特にどちらを使っても良いみたい。
他のCVSの時は「/」を使った方がいいみたい。