グループ利用のCVS環境の作成

このページは、分散開発プロジェクト等に使用するバージョン管理システムCVS(Concurrent Versions System)利用環境作成のメモである。CVSについての説明は他のサイト・書籍を見ること。


目的

複数箇所・複数メンバによる更新による競合の検出、及び変更箇所の管理。


構成

現状

現状は、WEBサイトのマスタデータをバラバラに管理している。

CVS化後

1台のLinuxPCをCVSサーバとして、サイト内の全データを一元管理する。

2台のWindowsPCは、CVSクライアントとして、マスタのコピーを持つ。 更新作業は、CVSクライアントで行い、一通り更新が終わった所で、サーバのマスタデータに反映する。

CVSサーバのLinuxPCには、CVSクライアントとしての機能も持たせ、他のクライアントと同様の作業を 可能とする。但し、基本的にアップロードの為の参照のみとする。例外としては、Windowsで作成したデータをLinuxのソフトで加工する場合が考えられる。

CVS化後の構成
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)
但し、同期は出先から戻ってから

CVSホスト環境の設定(PC1 Linux)

前提条件

前提ディストリビューション
Vine Linux 2.0

CVSインストール

インストール済みで、即使用できる状態であった。

リポジトリ作成

ユーザ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

pserverの設定

クライアントPCからloginする為に必要なpserverの設定は、/etc/servicesと/etc/inetd.confであるが、 /etc/servicesは設定済みであった。/etc/inetd.confは未設定であったので1行(コメントと合わせて2行)追加した。

/etc/servicesの設定

次の2行が設定済みであった。

cvspserver      2401/tcp                        # CVS client/server operations
cvspserver      2401/udp                        # CVS client/server operations

/etc/inetd.confの設定

未設定であったので次の行を追加した。Vine Linuxの場合、cvsは、/usr/bin/にインストールされている。

# CVS pserver
cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/yogawa/penchan_repos pserver

設定が終わったら、スーパーサーバー(inetd)を再起動する。


CVSクライアント環境の設定(PC1 Linux)

CVSサーバの環境定義

サーバと同一PCである為、pserver使用のログインは不要である。

ユーザyogawaのログインスクリプト.bash_profileにCVSサーバの環境情報を定義する。定義後、定義内容を有効にする為、ユーザyogawaにログインしなおす。

.bash_profileの設定

# CVSサーバの定義
CVSROOT=/home/yogawa/penchan_repos
export CVSROOT

マスタデータのインポート

/home/yogawa/WWW2に格納しているマスタデータを、CVSサーバのリポジトリに格納する。

$ cd /home/yogawa/WWW2
$ cvs import -m"cvs start" yogawa pen2 start

CVSクライアント環境の設定(PC2 Windows)

前提条件

CVS対応テキストエディタ
Peggy Pro(参考文献参照)
OS
Windows95(98,ME,2000,NTは試していない)

CVSインストール

Peggy Proをインストールする時にいっしょにインストールされる。

CVSサーバへの自動ログインスクリプト定義

PC起動時に、CVSサーバに自動的にログインするように、C:¥Autoexec.batにスクリプトを定義する。

Autoexec.bat更新後、更新内容を有効にする為、PCを再起動する。

ホスト名(pen2)は、予めDNS又はc:¥windows¥hostsに定義しておくこと。

c:¥Autoexec.batの設定

rem ログイン先設定
set CVSROOT=:pserver:yogawa@pen2:/home/yogawa/penchan_repos
set LOGNAME=yogawa
rem パスワード(.cvspass)格納パス
set HOME=c:¥cvswork
rem CVSログイン
cvs login

c:¥Windows¥hostsの設定

次の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

マスタデータをクライアントPCに取込む

マスタデータをクライアントPC(Windows)に取込む

CVSサーバのリポジトリから、マスターデータのコピーをクライアントに格納する。

コピーデータの格納先は、c:¥cvsworkとする。cvsworkは予め作成しておく

次の操作をMS-DOSプロンプトで行う。コピーが完了すると、c:¥cvswork下にjungleというフォルダが作成される。

 cd c:¥cvswork
 cvs checkout jungle

同様に、yogawaのマスタデータのコピーもクライアントに格納する。

 cd c:¥cvswork
 cvs checkout yogawa

マスタデータをクライアントPC(Linux)に取込む

CVSサーバのリポジトリから、マスターデータのコピーをクライアントに格納する。

コピーデータの格納先は、/home/yogawa/cvsworkとする。cvsworkは予め作成しておく。

次の操作を行う。コピーが完了すると、/home/yogawa/cvswork下にjungleというフォルダが作成される。

 cd /home/yogawa/cvswork
 cvs checkout jungle

同様に、yogawaのマスタデータのコピーもクライアントに格納する。

 cd /home/yogawa/cvswork
 cvs checkout yogawa

Windows用CVS対応エディタへの登録

CVSに対応しているPeggy Proというテキストエディタを使用する。Peggy Pro起動後、プロジェクトを作成し、上記フォルダ(c:¥cvswork¥jungleとc:¥cvswork¥yogawa)をこのプロジェクトにをドラッグ&ドロップする。

プロジェクトへの登録後は、Peggy Proの機能を使用して、コピーデータの更新や、マスターデータとの同期合わせを行う。


アップロード

プロバイダにデータをアップロードする場合、CVSというフォルダを転送対象外にしておく。


参考文献・WEBサイト