Linux -> サーバ管理 -> CVS

CVS バージョン管理ツール

cvs バージョン管理ツールの使用法

  1. 基本設定
  2. import (新しいプロジェクトを作成する)
  3. checkout (レポジトリから作業用コピーにチェックアウトする)
  4. commit (作業コピーの変更をレポジトリへコミットする)
  5. tag (バージョンを付ける)
  6. add (プロジェクトにファイルを追加する)
  7. remove (プロジェクトからファイルを削除する)
  8. release (チェックアウトした作業用コピーを削除する)
  9. status (作業コピー中のファイルの状態を表示する)
  10. diff (リビジョン間のdiffをとる)
  11. update (旧バージョンに戻す)

基本設定

cvs管理ユーザ設定

 CVSROOT変数を設定する。

 .bash_profile
    CVSROOT=/master/reposit
    export $CVSROOT

管理対象ファイルへのバージョン管理用タグの追加

ファイルの先頭に以下のバージョン管理行を入れCOMMITすると日付(GMT)等が記録される。 コミット前の先頭行(B shellの場合) #!/bin/sh # $Id: $ コミット後の先頭行(B shellの場合) #!/bin/sh # $Id: tkycom_print.sh,v 1.8 2003/07/09 06:01:48 admin Exp $

import (新しいプロジェクトを作成する)

今回は、以下のプロジェクト名を登録
  CVSROOT     : /master/reposit
  プロジェクト名  : xcom
  ベンダータグ   : TKY
  リリース開始タグ : V1_0_0

  ※ cvsのコマンドは全て cvsuser(CVSROOTを設定済) で実施する

  登録するライブラリのTOPディレクトリへ移動する。
  cvsuser$ cd /tmp/lib

  importコマンドでプロジェクトを新しく登録する (レポジトリは$CVSROOT配下に登録される)
  cvsuser$ cvs import -m "" xcom  TKY  V1_0_0

checkout (レポジトリから作業用コピーにチェックアウトする)

作業用ディレクトリへ移動 $ cd /master/lib
チェックアウト
$ cvs checkout tkycom
  cvs checkout: Updating tkycom
  cvs checkout: Updating tkycom/bin
  U tkycom/bin/tkycom_print.sh
  U tkycom/bin/tkycom_usrm.sh
  cvs checkout: Updating tkycom/etc
  U tkycom/etc/tkycom_print.conf
ディレクトリ名を変えてチェックアウトしたい場合
$ cvs checkout -d tkycom2 tkycom
  =>  /master/lib/xom2....
特定のディレクトリ配下のみチェックアウトしたい場合
$ cvs checkout tkycom/bin
特定のファイルのみチェックアウトしたい場合
$ cvs checkout tkycom/bin/tkycom_print.sh

commit(作業コピーの変更をレポジトリへコミットする)

コミット (ファイル名を指定) 指定したファイルが更新されていれば、コミットされる
$ cvs commit -m "" tkycom_print.sh
  Checking in tkycom_print.sh;
  /master/reposit/tkycom/bin/tkycom_print.sh,v  <--  tkycom_print.sh
  new revision: 1.12; previous revision: 1.11
  done
コミット(ファイル名を指定しない)変更したファイルがあれば全てコミットされる(カレントディレクトリ下位層も含む)
$ cvs commit -m ""	
  cvs commit: Examining .
  Checking in tkycom_print.sh;
  /master/reposit/tkycom/bin/tkycom_print.sh,v  <--  tkycom_print.sh
  new revision: 1.13; previous revision: 1.12
  done
  Checking in tkycom_usrm.sh;
  /master/reposit/tkycom/bin/tkycom_usrm.sh,v  <--  tkycom_usrm.sh
  new revision: 1.3; previous revision: 1.2
  done

tag (バージョンタグを付ける)

タグを付ける
$ cvs tag V1_1_0 tkycom_print.sh	
  T tkycom_print.sh
ファイルを指定しない場合、カレントディレクトリ下位層ファイル全て対象となる
$ cvs tag V5_0_0
  cvs tag: Tagging .
  cvs tag: Tagging bin
  T bin/tkycom_print.sh
  T bin/tkycom_usrm.sh
  cvs tag: Tagging etc
  T etc/tkycom_print.conf
1つ前のタグを削除する。
$ cvs tag -d V5_1_0	

add(プロジェクトにファイルを追加する)

チェックアウトする
$ cvs checkout tkycom
$ cd bin
追加するファイルを登録するディレクトリへコピーする。 => tkycom/bin/tkycom_backup.sh
追加する
$ cvs add tkycom_backup.sh
  cvs add: scheduling file `tkycom_backup.sh' for addition
  cvs add: use 'cvs commit' to add this file permanently
コミットする
$ cvs commit -m "" tkycom_backup.sh	
  RCS file: /master/reposit/tkycom/bin/tkycom_backup.sh,v
  done
  Checking in tkycom_backup.sh;
  /master/reposit/tkycom/bin/tkycom_backup.sh,v  <--  tkycom_backup.sh
  initial revision: 1.1
  done

emove (プロジェクトからファイルを削除する)

remove コマンドを実行する
  * ファイルを削除する場合は -f を付ける
$ cvs remove -f  tkycom_usrm.sh	
  cvs remove: scheduling `tkycom_usrm.sh' for removal
  cvs remove: use 'cvs commit' to remove this file permanently
コミットする。
$ cvs commit -m "" tkycom_usrm.sh
	Removing tkycom_usrm.sh;
	/master/reposit/tkycom/bin/tkycom_usrm.sh,v  <--  tkycom_usrm.sh
	new revision: delete; previous revision: 1.5
	done

release (チェックアウトした作業用コピーを削除する)

作業用コピーの削除
$ cd /master/release

* -d ディレクトリを削除する場合に付ける
$ cvs release -d tkycom
  You have [0] altered files in this repository.
  Are you sure you want to release (and delete) directory `tkycom': y

status (作業コピー中のファイルの状態を表示する)

ファイルの状態を表示する
$cvs status tkycom_copy.sh
   ===================================================================
   File: tkycom_copy.sh      Status: Up-to-date

   Working revision:    1.1     Wed Jul  9 06:59:58 2003
   Repository revision: 1.1     /master/reposit/tkycom/bin/tkycom_copy.sh,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)
タグ情報も表示する場合
$ cvs status -v tkycom_copy.sh	
   ===================================================================
   File: tkycom_copy.sh      Status: Up-to-date

     Working revision:    1.1  Wed Jul  9 06:59:58 2003
     Repository revision: 1.1  /master/reposit/tkycom/bin/tkycom_copy.sh,v
     Sticky Tag:          (none)
     Sticky Date:         (none)
     Sticky Options:      (none)
   
     Existing Tags:
       V1_1_0                  (revision: 1.1)
       V1_0_0                  (revision: 1.1)

diff (リビジョン間のdiffをとる)

リビジョンを確認する
$ cvs status -v tkycom_copy.sh
   ===================================================================
   File: tkycom_copy.sh      Status: Up-to-date

     Working revision:    1.2  Wed Jul  9 07:13:42 2003
     Repository revision: 1.2  /master/reposit/tkycom/bin/tkycom_copy.sh,v
     Sticky Tag:          (none)
     Sticky Date:         (none)
     Sticky Options:      (none)

     Existing Tags:
       V1_2_0                  (revision: 1.2)
       V1_1_0                  (revision: 1.1)
       V1_0_0                  (revision: 1.1)

diff を確認する
$ cvs diff -r V1_1_0  -r V1_2_0  tkycom_copy.sh   ( -r 1.1 -r 1.2 でも可)
  Index: tkycom_copy.sh
  ===================================================================
  RCS file: /master/reposit/tkycom/bin/tkycom_copy.sh,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -r1.1 -r1.2
  1c1
  < # $Id: tkycom_copy.sh,v 1.1 2003/07/09 06:59:58 admin Exp $
  ---
  > # $Id: tkycom_copy.sh,v 1.2 2003/07/09 07:13:42 admin Exp $
  4c4
  < echo "xxxxxxxxxxxxxxxxxxxxxxx"
  ---
  < echo "sxxxxxxxxxxxxxxxxxxxxxx"

update (旧バージョンに戻す)

バージョンを指定して戻す
$ cvs update -p -r 1.2 mif_print.sh > mif_print.sh
    * -p  標準出力へ出力
    * -r  バージョンを指定
         (バージョンは "cvs status -v ファイル名" で確認)

   
先頭へ

      Document-Folder          一覧
HP-UX
HULFT
JAVA
JP1
JavaScript
Linux
MAC
PHP
Perl
Python
Ruby
SOA
Solaris
Unix全般
Windows
XML
エクセル
スタイルシート
セキュリティー
データベース
ネットワーク
パソコン
ブラウザ
プログラム構文
仮想化
          RSS-Folder
ニュース
   アットマーク・アイティ(@IT)
   シンクイット(ThinkIT)
   インターネットコム
   インターネットウォッチ
   日経IT-Pro
   日経パソコン
   CNET Japan
   ZD-NetJapan
   MYCOM
   RBB-Today
ベンダー
   日本IBM
   日本HP
   サンマイクロシステムズ
   NEC
   富士通
   日立
ソフトウェア
   マイクロソフト
   トレンドマイクロ
   オラクル
   サイボウズ
   Mozilla
   野村総合研究所
   (その他ソフトウェア企業)
更新履歴 一覧
 07/08 PERF
プログラム構文
 07/07 PERF
プログラム構文
 06/25 オブジェクトプログラミング2
Perl>サンプル
 07/12 クローン作成
仮想化>vCenter
 07/12 vyatta設定
ネットワーク>vyatta
 07/12 vyattaインストール
ネットワーク>vyatta
 07/12 リポジトリサーバ
Linux>サーバ構築
 07/05 VMwareのインストール
仮想化>VMware
 07/05 PXEブート
仮想化>KVM
 07/01 DHCPでのPXEブート
仮想化>KVM
 06/27 qcow2仮想DISK作成
仮想化>KVM
 06/13 NWの設定
仮想化>VMwareEsxi
 06/13 IPアドレスの変更
仮想化>VMwareEsxi
 06/12 自動ssh
Unix全般>シェル>Bash
 06/12 diffプログラミング
Python
Google