S-JIS[2003-06-22/2007-07-21] 変更履歴

CVS(for UNIX)

CVS:Concurrent Versions System。ソース等のバージョン管理を行うツール。


使い方概要

  1. ある程度作ったソース群をCVS(リポジトリ)に登録する。
  2. 登録したソース群から作業用ディレクトリにコピーする。
  3. 作業用ディレクトリ上でソースを修正してバージョンをチェックし、CVS(リポジトリ)に反映する。
  4. 作業用ディレクトリを削除する。

必要に応じて3を繰り返す。又は2〜4を繰り返す。

時には過去のバージョンに対して修正を行う事があるかも。


インストール

RedHat7.2の場合、デフォルトでインストールされていた。

アーカイブからのインストール [2004-01-18]


初期設定

環境変数等の設定やリポジトリの作成を行う。

  1. CVSの管理用ディレクトリを作成。このディレクトリには、CVSを使うユーザーの書き込み権限が必要
    $ mkdir /usr/local/cvs
  2. 環境変数CVSROOTに、上記のディレクトリを指定する。
    $ export CVSROOT=/usr/local/cvs
  3. CVSの初期化を実行する。
    $ cvs init			←正常に終わっても何も表示されない
    $ ls $CVSROOT/CVSROOT		←このディレクトリが出来ていればOK

サーバー用設定

リモートから接続できるCVSサーバーにするには、xinetd用の設定を行う。


ブランチトランク

例えば本番用に一旦リリースするなら、その状態にブランチ(枝:中心となるソースから派生させる)のタグを付けておくことが出来る。[2003-10-07]

$ cd 作業ディレクトリ
$ cvs tag -b ブランチ名

これは、現在の作業ディレクトリの状態を元にブランチ名を付けただけであり、この時の作業ディレクトリ自体がブランチ用の作業ディレクトリに変わるわけではない。

後から本番用だけに何か修正したい場合は、ブランチのソースを取り出して修正する。

$ cvs checkout -r ブランチ名 プロジェクト名

こうしてブランチ用に作られた作業ディレクトリでの修正は、通常の作業ディレクトリと同様にコミットすることも出来る。
この場合、トランク(幹:中心となっているソースのこと)には影響を与えない。

しかし、ブランチでの修正をトランクに反映させることも出来る。
ブランチ側でタグを付けておき、トランク側でマージのコマンドを実行することで反映させる。(通常の修正同様、コンフリクトが発生する可能性はあるが)

初回のマージの例)
$ cd ブランチの作業ディレクトリ
$ cvs tag -b タグ名1
$ cd トランクの作業ディレクトリ
$ cvs update -d -P -j ブランチ名 -j タグ名1
$ cvs commit
2度目以降のマージの例)
$ cd ブランチの作業ディレクトリ
$ cvs tag -b タグ名2
$ cd トランクの作業ディレクトリ
$ cvs update -d -P -j タグ名1 -j タグ名2
$ cvs commit

マージの際、ソース内に「$Id$」といったCVSキーワードが展開されていると、「その行が違う」としてコンフリクトが発生する。そうしない為には、kオプションでキーワード展開を止めておく必要がある。
(→CVSキーワードを無視して比較し、相違があるファイルのみコピーするantタスク

また、updateの「-d -P」は重要。これが無いと、ブランチ側でディレクトリを追加したり削除していたりした場合、反映されない。


技術メモへ戻る
メールの送信先:ひしだま