CVS/Subversionを使ったバージョン管理(中編:CVSを使ったバージョン管理) 3ページ

リポジトリの新規作成

 新たにCVSリポジトリを作成する手順は、以下のようになる。なお、この作業はすでにCVSリポジトリが用意されている場合は不要だ。

  1. CVSサーバーとなるマシンにCVSのルートディレクトリを作成する
  2. CVSクライアントとなるマシンでCVSROOT環境変数およびCVS_RSH環境変数を設定する
  3. CVSクライアントとなるマシンで「cvs init」コマンドを実行する

 「cvs init」コマンドは、CVSの初期化を行うコマンドだ。これを実行することにより、指定したCVSのルートディレクトリに「CVSROOT」というディレクトリが作成され、そこにCVSの管理データベースが保存される。

リポジトリに新たにファイル一式を登録する

 リポジトリに新たにディレクトリを作成し、そこにファイルを登録する(インポートする)には、cvsの「import」コマンドを使用する。importコマンドの書式は次のとおりだ。

 cvs import <登録先ディレクトリ> <ベンダータグ> <リリースタグ>

 これを実行すると、カレントディレクトリ内のファイルがCVSサーバー内の「/」以下に登録される。「ベンダータグ」は作者を表す文字列、「リリースタグ」は登録したファイル群の現時点のバージョンを表す文字列で、それぞれ任意の名称を利用できる。特に開発コミュニティなどで明確にルールが定められていなければ、ベンダータグとリリースタグは適当な名称でよい(ただし、ベンダータグとリリースタグを完全に同一の文字列にすることはできない)。

 たとえば、CVSリポジトリ以下の「foobar」というディレクトリに、カレントディレクトリ内のファイルを新たに登録するには、次のようにする。

$ cvs import foobar john foobar001

 この例では、ベンダー名を「john」、リリースタグ名を「foobar001」と指定している。

リポジトリ内のファイルを取り出す

 CVSリポジトリからファイルを取得する(チェックアウトを行う)には、cvsの「checkout」(co)コマンドを使用する。ただし、使用するプロトコルによって手順が若干異なるので注意してほしい。

 リポジトリに対してpserverプロトコルで接続する場合、まずloginコマンドでCVSサーバーにログインし、続けてcheckoutコマンドを実行する。

$ cvs login
$ CVS password:      ←パスワードを入力
$ cvs checkout <取得したいディレクトリ>

 いっぽう、extもしくはlocalプロトコルで接続する場合はloginコマンドは不要で、直接checkoutコマンドを実行すればよい。

$ cvs checkout <取得したいディレクトリ>
SourceForge.JPのCVSリポジトリの利用

 SourceForge.JPでは、匿名でチェックアウトする場合のみpserverプロトコルを使用し、それ以外の場合はSSH経由でのチェックアウトを利用する。匿名でチェックアウトする場合、次のようにすればよい。

$ export CVSROOT=:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/<プロジェクト名>
$ cvs login
 CVS password:      ←何も入力せずEnterキーを押す
$ cvs checkout <取得したいディレクトリ>

 SourceForge.JPでは匿名でのコミットは許されていないため、匿名でチェックアウトしたファイルに修正を加えた際、そのままではコミットを行えない。もし修正したファイルをコミットする可能性があるなら、次のようにextプロトコルを利用し、SSH経由での非匿名チェックアウトを使用する。

$ export CVSROOT=ext:@cvs.sourceforge.jp:/cvsroot/<プロジェクト名>
$ export CVS_RSH=ssh
$ cvs checkout <取得したいディレクトリ>

上記の例はsh系シェルでの実行例なので、環境に応じて適宜環境変数の設定行を読み替えてほしい