edit for admin | edit | diff | create new | view all | RSS | FrontPage | search | recent changes

CVS - はじめに

edit

はじめに

edit

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

CVS リポジトリの設定

edit

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

サーバのホスト名を,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 グループのユーザによって利用されます.

クライアント側の設定

edit

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

クライアント上のユーザの設定

edit


export CVSROOT=:ext:cvs-server.jp:/home/cvs
export CVS_RSH=ssh
export EDITOR=vi


cvs -q
diff -u
up -dP

サーバ側の設定

edit

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

edit

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

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

umask 002 

としておきます.

CVSを使う

edit

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

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

edit

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

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

チェックアウトする

edit

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


$ 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 ディレクトリにて)

edit


$ 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 'コメント'      # リポジトリにチェックイン

参考

edit