最終更新日: 2016-06-26 日 01:23
ホーム | 文書トップ | 目次

CVS

Table of Contents

cvs.gif

概要

  • CVS(Concurrent Version System)は「バージョン管理システム」の1つである。
  • 「バージョン管理システム」とは、ファイルの集合であるプロジェクトに対し、ファイルの変更内容と変更履歴、及びプロジェクトのファイル構成を管理する仕組みである。
  • 主にソフトウェアのソースコードの管理に使われる。
  • 下記ページは、バージョン管理システム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 プロジェクト名

参考にしたページ

ホーム | 文書トップ | 目次
Created by Emacs 27.1 (Org mode 9.3)