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 を使用します.
export CVSROOT=:ext:cvs-server.jp:/home/cvs export CVS_RSH=ssh export EDITOR=vi
cvs -q diff -u up -dP
CVSファイルを共有するため,作成するファイルには必ずグループ書き込み権限をつけておく必要があります.
$HOME/.bash_profile (bash の場合)において,
umask 002
としておきます.
ここまで設定すると,ようやく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/ というディレクトリができているはずです.
$ 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 'コメント' # リポジトリにチェックイン