CVS
Table of Contents
概要
- CVS(Concurrent Version System)は「バージョン管理システム」の1つである。
- 「バージョン管理システム」とは、ファイルの集合であるプロジェクトに対し、ファイルの変更内容と変更履歴、及びプロジェクトのファイル構成を管理する仕組みである。
- 主にソフトウェアのソースコードの管理に使われる。
- 下記ページは、バージョン管理システムCVSの概要、環境構築、基本操作が一通りまとまっており、わかりやすい。
- 【連載】CVS〜システム管理の観点からの利用〜第1回:CVSとは (スタックアスタリスク)
- 【連載】CVS〜システム管理の観点からの利用〜第2回:CVSの基本操作 前半 (スタックアスタリスク)
- 以降は、上記ページ等を参考に私が実際に行った作業に基づく環境構築、操作方法のメモである。
サーバー側(直接pserverを使う場合)
リポジトリの作成(cvs init)
- ここで行う作業は下記の通り。
- グループ cvsusers、ユーザ名 cvs を作成する。
- グループ cvsusers に作業を行うユーザを登録する。
- (groupadd の -r オプションを付けると作成されるグループのIDが101番から順番に割り振られる)
> groupadd -r cvsusers > useradd -G cvsusers cvs > passwd cvs > usermod -G cvsusers ユーザ名
- リポジトリを作成する(cvs init)
> cd / > mkdir /cvsroot > chgrp cvsusers /cvsroot > chmod g+srwx /cvsroot
- 次に、下記を実行する。
> cvs -d /cvsroot init
pserverの設定
- /etc/xinetd.d/cvspserver を下記の内容で作成する。
- –allow-root= で、ディレクトリを指定する。
service cvspserver { socket_type = stream wait = no user = root server = /usr/bin/cvs server_args = -f --allow-root=/cvsroot pserver }
- xinetdを起動しなおす
% ps auxw | grep xinetd (プロセスを調べて...) % kill -HUP 1234 # 1234 は上のコマンドで調べたプロセス番号
サーバー側(cvsdを使う場合)
- cvsd (1.0.15) をインストール(debian lennyの場合)
- Debconf で 「Configured cvsd」 のウィンドウが表示される
- 提供されるリポジトリ:は /demo:/myrepos になっている。リポジトリが一つであれば、そのままでOK
- ユーザ/グループ共に cvsd が作成される
- 下記が設定ファイルのようだ
- /etc/cvs-pserver.conf
- /etc/cvs-cron.conf
- /etc/cvsd/cvsd.conf
- 上記設定ファイルによると、cvsのルートディレクトリは /var/lib/cvsd である
- cvsd.conf の一番下にリポジトリの設定がされている
- これまでpserverで運用していたリポジトリがあった場合は /var/lib/cvsd/myrepos にコピーし、sudo chown -R cvsd.cvsd myrepos すればよい
# cvsd-passwd /var/lib/cvs/myrepos +ユーザ名 /usr/sbin/cvsd-passwd: adding user 'ユーザ名' to '/var/lib/cvs/myrepos/CVSROOT/passwd' Enter new password: Retype new password:
myserver:/var/lib/cvs# cvs -d /var/lib/cvs/demo init myserver:/var/lib/cvs# cvsd-passwd /var/lib/cvs/demo +ユーザ名 /usr/sbin/cvsd-passwd: adding user 'ユーザ名' to '/var/lib/cvs/demo/CVSROOT/passwd' Enter new password: Retype new password:
クライアント側
設定ファイル
- .bashrc の設定(pserverを使う場合のクライアントの設定)
export CVSROOT=:pserver:ユーザ名@IPアドレス:/cvsroot export CVSEDITOR="/usr/bin/emacs -nw"
- .bashrc の設定(サーバマシン=クライアントマシンの場合の設定)
export CVSROOT=/cvsroot export CVSEDITOR="/usr/bin/emacs -nw"
ログイン/ログアウト
- logoutはあまり使わないか
> cvs login
> cvs logout
プロジェクトの作成(cvs import)
- プロジェクトを作成する。
- ここでは、UNIXの設定ファイルを入れるプロジェクト conffile を作成する。
- ユーザのホームディレクトリに conffile というディレクトリを作成し、その中に .emacs 等のファイルを入れる。
- conffile のディレクトリの下で、cvs import を実行する。
- パラメータは、プロジェクト名、ベンダータグ、リリースタグを指定する。
- 下記の例では、プロジェクト名: conffile, ベンダータグ: cha, リリースタグ: start である。
- 実行するとコメントを入れるよう促すメッセージが表示され、エディタが起動するのでコメントを保存、終了する。
> cvs import conffile cha start
ファイルの取り出し(cvs checkout)
- ファイルを取り出してみる。
- conffile ディレクトリを一旦削除し、チェックアウトする。
- 適当なディレクトリで、下記コマンドを実行する。
> cvs checkout conffile
- ディレクトリ conffile が作成され、その中に .emacs と、CVS ディレクトリがチェックアウトされる。
- 下記を試してみる。
> cvs log .emacs
ファイルのチェックイン(cvs commit)
- .emacsを編集し、チェックインする。
> cvs commit .emacs
- .emacsを編集し、チェックインする。(コメントを付ける)
> cvs commit -m "コメント" .emacs
タグ付け(cvs tag)
- プロジェクトのトップディレクトリで、下記を実行する。
- 例:タグ 0101 を付ける場合
> cvs tag 0101
- タグ名は 0101 のファイル構成を取り出す場合には、下記のように実行する。
> cvs co -r 0101 プロジェクト名
参考にしたページ
- 全般
- pserver
- RCS
- Web I/F