CVS の使い方
〜 ローカルサーバ・リモートサーバ 〜
2004-09-09 作成 福島
TOP > tips > cvs
ローカルの場合

CVSROOT を作成

$ vi .bash_profile
export CVSROOT=:local:$HOME/.cvs               CVS のワークを指定
export CVSEDITOR=/usr/local/bin/vi      checkout 等で起動するエディタを指定
$ mkdir $HOME/.cvs $ cvs init 最初に一度だけ実行する
モジュールの登録 module_1 という名前でモジュールを作成しました。 内容は、お馴染みの "Hello world." です。 重要なのはファイルの管理なので、内容はこの際どうでも良い。 $ cd module_1 module_1$ cat Makefile ; cat hello.c
Makefile
# $Revision$
# $Date$
# $Author$
hello : hello.c
	gcc -o hello hello.c
hello.c
// $Revision$
// $Date$
// $Author$
#include	<stdio.h>
main()
{
	printf("Hello world.\n") ;
}
CVS にボリュームを登録する (カレントのみ。ディレクトリ指定は出来ません) module_1$ cvs import module_1 vendor-tag release-tag
$CVSEDITOR で指定したエディタが自動的に起動します

CVS: ----------------------------------------------------------------------
CVS: Enter Log.  Lines beginning with `CVS:' are removed automatically
CVS:
CVS: ----------------------------------------------------------------------
バージョン 1 です     初版のコメントを記述する
module_1$ cd .. $ CVS に登録されたので、ディレクトリ "module_1" は削除しても構いません モジュールのメンテナンス (checkout,commit) CVS からボリュームを取り出してメンテナンス (バージョンアップ等) を行う (ディレクトリ "module_1" をまだ削除していないので、ここではディレクトリ "work" の中で作業します) $ mkdir work $ cd work work$ cvs checkout module_1 work/module_1$ cd module_1
ボリュームのメンテナンスを行う
work/module_1$ cd .. work$ cvs commit module_1 変更を反映する
$CVSEDITOR で指定したエディタが自動的に起動します

CVS: ----------------------------------------------------------------------
CVS: Enter Log.  Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in hello
CVS:
CVS: Modified Files:
CVS:    hello hello.c
CVS: ----------------------------------------------------------------------
バージョン 2 です     改版のコメントを記述する
work$ cd .. $ rm -Rf work 作業が終了したので削除しても構いません

リモートの場合 以下は、CVS サーバとクライアントの設定と操作です。 cvspserver の設定 192.168.0.1 (CVS サーバ) を cvspserver として以下の設定を行う $ su # useradd -s /bin/bash cvs CVS 用ユーザの作成 (cvs init するためにシェルを使います) # passwd cvs ---(a) # su - cvs cvs$ cvs -d :local:$HOME init cvs$ exit # usermod -s /sbin/nologin cvs シェルは不要になったので削ります # cat > /etc/xinetd.d/cvs
service cvspserver
{
	flags           = REUSE
	socket_type     = stream
	wait            = no
	user            = root
	server          = /usr/bin/cvs
	server_args     = -f --allow-root=/home/cvs pserver
	log_on_failure  += USERID
	disable         = no
	port            = 2401
}
# /etc/rc.d/init.d/xinetd restart xinetd を再起動 # vi /etc/hosts.allow
cvs: 192.168.0.0/255.255.255.0
# vi /etc/sysconfig/iptables
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 2401 --syn -j ACCEPT
# /etc/rc.d/init.d/iptables restart iptables を再起動
cvspserver への操作 192.168.0.2 (CVS クライアント) から以下の操作を行う (ポートはデフォルトの 2401 を使います) $ cvs :pserver:cvs@192.168.0.1:2401/home/cvs login CVS サーバへログイン $ cvs :pserver:cvs@192.168.0.1:2401/home/cvs import module_1 module_1 を CVS サーバへ登録 $ cvs :pserver:cvs@192.168.0.1:2401/home/cvs checkout module_1 module_1 を CVS サーバから取り出す $ cvs :pserver:cvs@192.168.0.1:2401/home/cvs commit module_1 module_1 を CVS サーバへ反映させる $ cvs :pserver:cvs@192.168.0.1:2401/home/cvs export -D now module_1 配布目的でモジュールを取り出す $ cvs :pserver:cvs@192.168.0.1:2401/home/cvs logout CVS サーバからログアウト ※ログイン時、パスワードを聞いてくるので (a) で設定したパスワードを入力する。