このページは、分散開発プロジェクト等に使用するバージョン管理システムCVS(Concurrent Versions System)利用環境作成のメモである。CVSについての説明は他のサイト・書籍を見ること。
複数箇所・複数メンバによる更新による競合の検出、及び変更箇所の管理。
現状は、WEBサイトのマスタデータをバラバラに管理している。
1台のLinuxPCをCVSサーバとして、サイト内の全データを一元管理する。
2台のWindowsPCは、CVSクライアントとして、マスタのコピーを持つ。 更新作業は、CVSクライアントで行い、一通り更新が終わった所で、サーバのマスタデータに反映する。
CVSサーバのLinuxPCには、CVSクライアントとしての機能も持たせ、他のクライアントと同様の作業を 可能とする。但し、基本的にアップロードの為の参照のみとする。例外としては、Windowsで作成したデータをLinuxのソフトで加工する場合が考えられる。
PC種類 | PC設置場所 | 操作者 | 操作対象 | 操作内容 |
---|---|---|---|---|
PC1(Linuxデスクトップ) | 研究室 | 管理者:わたし | (1)www.hop-penchan/jungle/のマスタデータ | |
(2)www.hop-penchan/yogawa/のマスタデータ | ||||
(3)(1)のコピーデータ | →アップロード ←同期→(1) |
|||
(4)(2)のコピーデータ | →アップロード ←同期→(2) |
|||
PC2(Windows重いノート) | リビング | 利用者:嫁 | (5)(1)のコピーデータ | ←更新 ←同期→(1) |
(6)(2)のコピーデータ | ←更新 ←同期→(2) |
|||
PC3(Windows軽いノート) | 出先 | 利用者:わたし | (7)(2)のコピーデータ | ←更新 ←同期→(2) 但し、同期は出先から戻ってから |
インストール済みで、即使用できる状態であった。
ユーザyogawaでPC1(IPアドレス:192.168.0.3)にログインし、マスタデータを格納するリポジトリ(repository:収納庫)を作成する。ここでは、リポジトリのディレクトリ名をpenchan_reposとしている。
cvs ... init コマンド実行により、penchan_repos下にCVSROOTというディレクトリが作成される。
$ cd /home/yogawa $ mkdir penchan_repos $ cvs -d /home/yogawa/penchan_repos init
これを先にしておかないと、バイナリファイルはことごとくテキストファイルとみなされて破壊(改行コード、キーワード変換)されてしまう。CVSコマンドで上書きしないよう、念のためオリジナルのファイルは、必ずバックアップをとっておいた方がよい。
バイナリファイルを定義する場所は、リポジトリ内に作成されたCVSROOTディレクトリ内のcvswrappersである。 cvswrappersは、書き込み保護されているので、一時的にこれを解除(chmod +w)する必要がある。
$ cd /home/yogawa/penchan_repos/CVSROOT/ $ chmod +w cvswrappers $ vi cvswrappers
cvswrappersに次の行を追加する。ここでは、WEBで使える主な画像フォーマットであるgif,jpeg,pngとMSのドキュメントからWORD,EXCEL,PowerPointを定義している。該当プロジェクトで使用するテキストで無い物はあらかじめ片っ端から登録しておく必要がある。
*.gif -k 'b' *.jpg -k 'b' *.png -k 'b' *.doc -k 'b' *.xls -k 'b' *.ppt -k 'b'
cvswrappersの修正が終わったら、書き込み保護を戻しておく。
chmod -w cvswrappers
クライアントPCからloginする為に必要なpserverの設定は、/etc/servicesと/etc/inetd.confであるが、 /etc/servicesは設定済みであった。/etc/inetd.confは未設定であったので1行(コメントと合わせて2行)追加した。
次の2行が設定済みであった。
cvspserver 2401/tcp # CVS client/server operations cvspserver 2401/udp # CVS client/server operations
未設定であったので次の行を追加した。Vine Linuxの場合、cvsは、/usr/bin/にインストールされている。
# CVS pserver cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/yogawa/penchan_repos pserver
設定が終わったら、スーパーサーバー(inetd)を再起動する。
サーバと同一PCである為、pserver使用のログインは不要である。
ユーザyogawaのログインスクリプト.bash_profileにCVSサーバの環境情報を定義する。定義後、定義内容を有効にする為、ユーザyogawaにログインしなおす。
# CVSサーバの定義 CVSROOT=/home/yogawa/penchan_repos export CVSROOT
/home/yogawa/WWW2に格納しているマスタデータを、CVSサーバのリポジトリに格納する。
$ cd /home/yogawa/WWW2 $ cvs import -m"cvs start" yogawa pen2 start
Peggy Proをインストールする時にいっしょにインストールされる。
PC起動時に、CVSサーバに自動的にログインするように、C:¥Autoexec.batにスクリプトを定義する。
Autoexec.bat更新後、更新内容を有効にする為、PCを再起動する。
ホスト名(pen2)は、予めDNS又はc:¥windows¥hostsに定義しておくこと。
rem ログイン先設定 set CVSROOT=:pserver:yogawa@pen2:/home/yogawa/penchan_repos set LOGNAME=yogawa rem パスワード(.cvspass)格納パス set HOME=c:¥cvswork rem CVSログイン cvs login
次の1行を追加する。ファイルが存在しない場合作成する。
192.168.0.3 pen2
初回ログイン時はマスタデータのインポートの前に、パスワードファイルを設定するため、手動でloginする。これ以降は、PC起動時に自動的にloginするので手動のloginは不要である。
cvs login
c:¥penchan¥jungleに格納しているマスタデータを、CVSサーバのリポジトリに格納する。 次の操作をMS-DOSプロンプトで行う。
cd c:¥penchan¥jungle cvs import -m"cvs start" jungle pen3 start
CVSサーバのリポジトリから、マスターデータのコピーをクライアントに格納する。
コピーデータの格納先は、c:¥cvsworkとする。cvsworkは予め作成しておく
次の操作をMS-DOSプロンプトで行う。コピーが完了すると、c:¥cvswork下にjungleというフォルダが作成される。
cd c:¥cvswork cvs checkout jungle
同様に、yogawaのマスタデータのコピーもクライアントに格納する。
cd c:¥cvswork cvs checkout yogawa
CVSサーバのリポジトリから、マスターデータのコピーをクライアントに格納する。
コピーデータの格納先は、/home/yogawa/cvsworkとする。cvsworkは予め作成しておく。
次の操作を行う。コピーが完了すると、/home/yogawa/cvswork下にjungleというフォルダが作成される。
cd /home/yogawa/cvswork cvs checkout jungle
同様に、yogawaのマスタデータのコピーもクライアントに格納する。
cd /home/yogawa/cvswork cvs checkout yogawa
CVSに対応しているPeggy Proというテキストエディタを使用する。Peggy Pro起動後、プロジェクトを作成し、上記フォルダ(c:¥cvswork¥jungleとc:¥cvswork¥yogawa)をこのプロジェクトにをドラッグ&ドロップする。
プロジェクトへの登録後は、Peggy Proの機能を使用して、コピーデータの更新や、マスターデータとの同期合わせを行う。
プロバイダにデータをアップロードする場合、CVSというフォルダを転送対象外にしておく。