create new | view all | RSS | FrontPage | search | recent changes

CVS - はじめに

diff


*はじめに

CVS は,バージョン管理システムの一つです.このページは,CVS の簡単な使い方について記したメモです.

*CVS リポジトリの設定

まずはじめにやることは,ファイルの貯蔵庫である''リポジトリ''を,サーバとなるマシン上に作成することです.

サーバのホスト名を,cvs-server,FQDN を cvs-server.jp としておきます.

----
 # apt-get install cvs      # ← これはDebian Linux の場合.
 # export CVSROOT=/home/cvs
 # cvs init
 # chmod a+w  /home/cvs/CVSROOT/history  # あまりよくないが,エラーが出るので仕方ない
 # mkdir -p /home/cvs/dir1/module1 
 # chmod a+w  /home/cvs/dir1/module1
 # chgrp mod1grp /home/cvs/dir1/module1  # mod1grp グループのユーザが使う
----

これで,/home/cvs にリポジトリが作成され,サブディレクトリ 'dir1' の下に モジュール 'module1' ができました.このモジュールは,mod1grp グループのユーザによって利用されます.

*クライアント側の設定

CVSを,リモートのクライアント上のユーザから利用することを考えます.クライアントのホスト名は cvs-client,FQDN を cvs-client.jp としておきます.mod1grp のユーザアカウント cvsuser1 から利用するものとします.通信プロトコルには ssh を使用します.

Hey hey hey, take a gadenr at what' you've done
**クライアント上のユーザの設定

-.bashrc などに書くもの.
----
 export CVSROOT=:ext:cvs-server.jp:/home/cvs
 export CVS_RSH=ssh
 export EDITOR=vi
----

-''$HOME/.cvsrc'' に書くもの
---- 
 cvs -q
 diff -u
 up -dP
---- 

-その他
--一度,ssh cvs-server.jp しておき,''.ssh/known_hosts'' にローカルホストの情報を入れておく

*サーバ側の設定

**サーバ上のユーザ・アカウントの設定

CVSファイルを共有するため,作成するファイルには必ず''グループ書き込み権限''をつけておく必要があります.

''$HOME/.bash_profile'' (bash の場合)において,

 umask 002 

としておきます.

*CVSを使う

ここまで設定すると,ようやくCVSを使うことができます.

**ファイルをインポートする

最初は,モジュールの中身は空なので,クライアントからインポートします.
インポートしたいファイルのあるディレクトリを,$CLIENT_WORK_DIR とします.

 $ cd $CLIENT_WORK_DIR
 $ cvs import -m 'initial' dir1/module1 semblog_org initial

**チェックアウトする

インポートしたら,''チェックアウト''します.チェックアウト先のディレクトリが,今後の作業ディレクトリとなります.なお,インポートに使用したディレクトリは,そのまま使えないので退避します.

----
 $ cd $CLIENT_WORK_DIR/../
 $ mv -f $CLIENT_WORK_DIR ${CLIENT_WORK_DIR}_old  # とりあえず,名前を変えておく
 $ mkdir $CLIENT_WORK_DIR     # 新しく,作業用ディレクトリを用意
 $ cvs co -d $CLIENT_WORK_DIR dir1/module1  # 作業ディレクトリにチェックアウト
----

作業ディレクトリの下のすべてのディレクトリに,''CVS/'' というディレクトリができているはずです.

**日々の作業の流れの例($CLIENT_WORK_DIR ディレクトリにて)

----
 $ cvs up                    # ← 重要.作業前には,必ずこれをする.
                             # ローカルの作業領域が最新に保たれる
      
 $ vi file1                  # 何らかの作業
 $ cvs add file_new          # 新しいファイルを追加
 $ cvs ci -m 'コメント'      # 編集や追加をリポジトリに反映
 
 $ vi file_new               # 何らかの作業
 $ cvs remove file_new       # でも,いらなくなったので削除
 $ cvs ci -m 'コメント'      # 削除をリポジトリに反映
 
 $ cvs log -h        # 気になったのでログを見てみる

 $ vi file2                  # 何らかの作業
 $ cvs diff                  # リポジトリとの差分を見る
 $ cvs ci -m 'コメント'      # リポジトリにチェックイン
----

*参考

-[[CVSを使ってみよう http://shimaki-hp.hp.infoseek.co.jp/cvs/book1.html]]
-[[バージョン管理システムCVSを使う http://www.radiofly.to/nishi/cvs/]]
-[[CVS(Japanese) http://www.linkclub.or.jp/~tumibito/soft-an/cvs/cvs-man/]]