登録されているプロジェクトを呼び出す


nishi さんが登録したプロジェクトを nishitmp という人が 呼び出します。

普段、誰かが作ったファイルに手を加えるときは、もとの ファイルをこうやって丸ごとコピーするると思います。

cp ~nishi/どこどこ/* .
しかし、複数の人が自分の都合のよいようにプログラムを書き換えて いくと、バージョン管理が大変になります。最新バージョンが誰の手元にあるのかも わからなくなります。

CVS では、既存のプロジェクトを次のような操作で自分のホームディレクトリに 呼び出します。

cvs checkout (プロジェクト名)

または

cvs checkout -d (作業用ディレクトリ) (プロジェクト名)
作業用ディレクトリの指定を省略すると、プロジェクト名と同じ ディレクトリがカレントディレクトリの下に作成されます。

実際に使用してみましょう。

nishitmp@langue[135]% cvs checkout -d test-cvs test-cvs 
cvs checkout: Updating test-cvs
U test-cvs/Makefile
U test-cvs/file1.c
U test-cvs/file1.h
コマンドを実行したディレクトリの下に test-cvs というディレクトリが できて、そこに3つのファイルが置かれました。 さらに CVS というディレクトリも作られました。


nishi さんはプロジェクトを登録する前に、 file1.c の先頭にこんなコメントを書いていました。

/*
 * $Log: $
 */

#include "file1.h"

void func()
{
    int i;
}

void main()
{
    printf( "hello, world!\n" );
}

/* end of file */

CVS に登録されたファイルは $Log: $ という記号の部分に自動的に ファイル名・バージョン番号・更新日時および エディタで入力したコメントが追加されます。

nishitmp さんが checkout した file1.c をみてみましょう。

/*
 * $Log: file1.c,v $
 * Revision 1.1.1.1  1996/12/10 09:07:10  nishi
 * CVSで管理します。作りはじめたばかりです。
 *
 */

void func()
{
    int i;
}

void main()
{
    printf( "hello, world!\n" );
}

/* end of file */
時刻がへん、と思う人もいるかも知れません。が、どうやら GMT (世界標準時)を使っているらしいので、気にしないでください。

登録時に、なるべく丁寧にコメントを書いておけば、再利用する人に 対して親切になります。

なお、登録されたプロジェクトに、さらにサブディレクトリがあった場合は、 ディレクトリ階層をまとめて復元します。



(以下 [2000/04/18] 追加)

なお、作業が終わったら、rm -r する前に、
cvs release で「モジュールの放棄の表明」をするのがよいでしょう。
もし変更が登録されていないファイルがあれば、指摘してくれます。

cvs release -d で確認と同時に作業コピーを削除します。

(以下 [2000/09/28] 追加)

$Log:$ は複数行に展開されるキーワードなので扱いにくいかも知れません。
通常は下記のどれかを使うのがよいでしょう。

$Revision:$ ... リビジョン
$Date:$ ... 最終コミットの日付
$Id:$ ... ファイル名、リビジョン、日付、作者


Takuya NISHIMOTO
Last modified: 2009-09-05