[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3. CVS でプロジェクトを始める

ファイルの改名とディレクトリ間の移動はうまくできないので、 新しいプロジェクトを始めるときには、 最初にファイルの構成をよく考えておく必要があります。 ファイルの改名や移動は、 不可能ではありませんが非常にやっかいです。 特にディレクトリの改名に関して、 CVS は癖のある動作をします (see section 7.4 ファイルの改名と移動)。

次に何をするかは、始める状況に依ります。

3.1 ファイルの準備  ファイルをリポジトリに加える
3.2 モジュールの定義  ファイルからモジュールを作る


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1 ファイルの準備

始めの一歩は、リポジトリ中にファイルを生成することです。 これには幾つか異なる方法があります。

3.1.1 存在するファイルからディレクトリを生成する  既存のプロジェクトに便利な方法
(既にファイルが存在する場合)
3.1.2 他のバージョン管理システムからファイルを作成する  古いプロジェクトの、他の システムでの履歴を保存する
3.1.3 ゼロからディレクトリを作る  ゼロからディレクトリを作成する


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1.1 存在するファイルからディレクトリを生成する

CVS を使い始める場合に、 おそらく CVS を使用できるプロジェクトが 既に幾つかあるでしょう。 この場合 import コマンドを使用するのが最も簡単です。 例を挙げて説明します。 CVS に組み込みたいファイルが `wdir' にあり、 それを `$CVSROOT/yoyodyne/rdir' に置きたい時、 次のようにします。

 
$ cd wdir
$ cvs import -m "Imported sources" yoyodyne/rdir yoyo start

`-m' フラグでログ・メッセージを与えなかった場合、CVS により エディタが開かれ、メッセージの入力が促されます。文字列 `yoyo' は ベンダー・タグと呼ばれるものであり、 `start' はリリース・タグと呼ばれるもの です。この文脈では意味をなさないかもしれませんが、CVS はそれらの 存在を要求します。詳しくは See section 13. サード・パーティーのソースの追っかけ.

では実際に動作したことを確かめた後、元のソースディレクトリを削除します。

 
$ cd ..
$ mv dir dir.orig
$ cvs checkout yoyodyne/dir       # 下で説明
$ diff -r dir.orig yoyodyne/dir
$ rm -r dir.orig

誤って CVS を通さないで編集してしまわないように、下のソースを削除 すると良いでしょう。もちろん削除する前に、ソースのバックアップを取るの が賢明です。

checkout コマンドはモジュールの名前 (以前の全ての例のように)、 または $CVSROOT からの相対パス (上の例のように) を引数に取りま す。

CVS が $CVSROOT 中のディレクトリに設定した 使用許可とグループ属性が、 適切かどうか調べると良いでしょう。See section 2.2.2 ファイル使用許可.

取り込みたいファイルの中にバイナリ・ファイルが含まれる場合、 wrapper 機能を用いて、どのファイルがバイナリなのか 明示するとよいでしょう。See section C.2 cvswrappers ファイル.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1.2 他のバージョン管理システムからファイルを作成する

RCS 等の、 他のバージョン管理システムで保守されてきたプロジェクトがあり、 そのプロジェクトのファイルを CVS に移管する場合、 各ファイルの修正履歴の維持を望むでしょう。

RCS から
RCS を使用してきた場合、RCS ファイルを見付けて下さい--- 通常 `foo.c' という名前のファイルには、 `RCS/foo.c,v' という RCS ファイルが対応します (他の場所にあるかもしれませんので、 詳細は RCS の文書を調べて下さい)。 次に、CVS リポジトリに適当なディレクトリを作成して下さい。 そして CVS リポジトリの当該ディレクトリに、 ファイルをコピーして下さい (リポジトリ中のファイル名は、 ソース・ファイルに `,v' が付加されたものでなくてはならず、 またファイルは `RCS' サブディレクトリではなく、 当該ディレクトリに直接置いて下さい)。 この例のように、CVS コマンドを利用せず、 CVS リポジトリを直接利用するほうが適当な場合が稀にあります。 以上で作業コピーを新たに取り出す準備ができました。

RCS ファイルを CVS に移動するときに、 ロックされていてはいけません。 ロックされている場合には、CVS での操作に支障を来します。

他のバージョン管理システムから
多くのバージョン管理システムは、 標準形式の RCS ファイルを出力する機能を持っています。 これが可能ならば、RCS ファイルを出力して、 前項の説明に従って下さい。

それが駄目なら、おそらく一番良いのは他のシステムのコマンド行のインター フェースを使って一回に一つのリビジョンを取り出し、それを CVS に格 納するスクリプトを書くことでしょう。下の `sccs2rs' スクリプトはそ のために役に立つ例でしょう。

From SCCS
SCCS から
CVS のソース配布物の中の `contrib' ディレクトリの中に、 `sccs2rcs' という名前のスクリプトがあります。 これを用いて SCCS ファイルを RCS ファイルに変換できます。 注意: SCCS と RCS の両方を持つマシンで実行する必要があり、 また `contrib' 内の他の全てと同様に動作保証はされません (使用者によって評価は異なるでしょう)。

From PVCS
CVS のソース配布物の中の `contrib' ディレクトリの中に、 `pvcs_to_rcs' という名前のスクリプトがあります。 これを用いて PVCS アーカイブを RCS ファイルに変換できます。 PVCS と RCS のあるマシンで実行する必要があり、 また `contrib' 内の他の全てと同様に動作保証はされません (使用者によって評価は異なるでしょう)。 詳細はスクリプト中のコメントを読んでください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1.3 ゼロからディレクトリを作る

新しいプロジェクトを始める場合、 まず次のように空のディレクトリを作ります。

 
$ mkdir tc
$ mkdir tc/man
$ mkdir tc/testing

その後 import コマンドを使って、 リポジトリに各々の (空の) ディレクトリを登録(作成)します:

 
$ cd tc
$ cvs import -m "Created directory structure" yoyodyne/dir yoyo start

これは yoyodyne/dir$CVSROOT の下にディレクトリとして追加します。

そして add コマンドで、 ファイル (と新しいディレクトリ) を加えていきます。

その時、 $CVSROOT の中のファイルの使用許可が、 正しいものかどうかを確認すると良いでしょう。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2 モジュールの定義

二歩目は `modules' ファイルにモジュールの定義をする事です。 必ずしも必要ではありませんが、 関連するファイルやディレクトリをグループ化するのに便利です。

モジュールを定義する簡単な手順を示します。

  1. ファイル modules の作業コピーを取ってきます。

     
    $ cvs checkout CVSROOT/modules
    $ cd CVSROOT
    

  2. ファイルを編集し、モジュールの定義を加えます。 導入は See section 2.4 管理用ファイルの紹介. 詳細な記述は C.1 The modules file 参照。 モジュール `tc' を定義するには次の行を加えます:

     
    tc   yoyodyne/tc
    

  3. modules ファイルに変更を格納します。

     
    $ cvs commit -m "Added the tc module." modules
    

  4. モジュール modules をリリースします。

     
    $ cd ..
    $ cvs release -d CVSROOT
    


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Yoshiki Hayashi on October, 13 2004 using texi2html