CVS(Concurrent Versions System)は、ソースコードのヒステリーを管理します。また、複数のメンバーと共同で作業を行うことに適しています。ここでは、UNIX環境を中心にして、話を進めていきます。
公式のGNUツールとしてCVSを提供しています。
http://www.gnu.org/software/cvs/cvs.html
FTPサイト(ミラーを含む)のサブディレクトリである/non-gnu/cvsに置いております。
ここでは、ssh Unixで設定した公開鍵と秘密鍵を用いますので、一通りsshの設定を行います。設定方法はsshの設定を参考にして下さい。
initial import ↓ checkout update ↓ ↓ ↑ 変更 ←← ↑ ↓ ↑ commit →→ ↑
CVSをもちいた基本的なフローです。 まず、プロジェクトをリポジトリにimportします。次にcheckoutを行い、作業用コピーにプロジェクトをコピーします。そして、編集や追加などの変更を行い、commitします。updateは作業用コピーをリポジトリと比較し作業用コピーを更新します。
■ sshの設定 |
$ export CVS_RSH=ssh |
■ -dリポジトリの設定 |
$ CVSROOT=:ext:developername@cvs.sourceforge.jp:/cvsroot/globalbase $ export CVSROOT |
-dリポジトリの入力を省略できます。 |
■ gbsをチェックアウトする場合 | ||||||
$ cvs -z3 -d:ext:developername@cvs.sourceforge.jp:/cvsroot/globalbase checkout gbs | ||||||
|
これ以降2.2.2.で述べたように、-dオプションはCVSROOT環境変数を設定しているものとして説明します。
修正内容をリポジトリに送信することをコミットといいます。
■ commit | ||
$ cvs commit -m "comment" test.c | ||
| ||
ここでファイル名を省略すると、すべてのファイルに適用します。別名:ci |
■ update |
$ cvs update |
リポジトリの変更内容を作業用コピーに反映させます。また、作業用コピーの修正したファイルを示します。 |
■ diff |
$ cvs diff |
作業用コピー内の修正ファイルとリポジトリ内のファイルを比較し差分を表示します。 |
■ add(ファイルの追加) |
$ cvs add addfile.c |
addfile.cをリポジトリに追加します。 |
<手順> 1)リポジトリにファイルを追加します。 2)コミットします。 |
$ cvs add addfile.c $ cvs commit -m "added" |
■ remove(ファイルの削除) |
$ cvs remove removefile.c |
removefile.cをリポジトリから削除します。 |
<手順> 1)ディスクからファイルを削除します。 2)リポジトリから削除します。 3)コミットします。 |
$ rm removefile.c $ cvs remove removefile.c $ cvs commit -m "removed" |
このプロジェクトのSourceForge CVS リポジトリは匿名(anonymous)でCVS(pserver)にアクセスし、チェックアウトすることができます。チェックアウトの手順は次のとおりです。modulenameには、チェックアウトするモジュールの名前を指定します。のパスワードプロンプトが表示されたら、ENTERキーを押してください。
モジュールのディレクトリ内からアップデートする場合、-d オプションは必要ありません。
(sourceforge.jpより抜粋)