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

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

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

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


3.1 ファイルの準備

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


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 サード・パーティーのソースの追っかけ.

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

 
$ 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 ファイル使用許可.

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


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 ファイルに変換できます。 注意: SCCSRCS の両方を持つマシンで実行する必要があり、 また `contrib' 内の他の全てと同様に動作保証はされません (使用者によって評価は異なるでしょう)。

From PVCS

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


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

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

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

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

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

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

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


3.2 モジュールの定義

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

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

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

     
    $ cvs checkout CVSROOT/modules
    $ cd CVSROOT
    
  2. ファイルを編集し、モジュールの定義を加えます。 導入は See section 管理用ファイルの紹介. 詳細な記述は 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 Akihiro Sagawa on June, 15 2005 using texi2html 1.70.