The Open Source Swiss Army Knife

/unix/commandline/
/unix/commandline/ + sub-categories
http://www.sirfsup.com/
web directory content
    
      

Not logged in
Chat Register Login
return to:  http:/www.sirfsup.com      /unix   /commandline 
Permalink: comp-cvs.html
Title: add
article options : please login   |  print view

Miscellaneous informations (about CVS)

CVS でバージョンを管理する


1. 初期化
   cvsroot ディレクトリと管理ファイルを作る.CVSROOT 1個につき,一度だけ
   やればよい.
   % cvs init

2. ディレクトリ構成の登録
   % cvs import (Repository内の位置) ベンダータグ リリースタグ

   例: % cvs import project-1/mogera susuki SNAP980610

3. ファイルの追加
   % cvs add ファイル名
   そして,
   % cvs commit
   カレントディレクトリにあるファイルしか追加できないので注意.ディレ
   クトリごと追加するには,import を使えということらしい.

4. 修整の反映
   一度 Repository に入れてしまえば,cvs commit だけでよい.

5. ファイルの削除
   % rm ファイル名
   % cvs remove ファイル名
   最初に rm するなり,ゴミ箱に移動するなりしておかないと,怒られるようだ.

6. 最新版のゲット
   % cvs checkout (Repository 内での位置)
   で,カレントディレクトリ下に展開される.9. のモジュール機能を使うと
   とても便利.
   あるいは,
   % cvs update
   で,カレント以下のファイルが最新版に更新される.update は,commit の
   機能も持っているので,update すれば,commit しなくてよい? とどこか
   で読んだ気がするが,それは違うようだ.

7. タグを付けて,スナップショットを作る
   % cvs tag タグ名
   カレントディレクトリ以下のファイルにタグ名が付けられる.後で取り出す
   ときには, 
   % cvs checkout -r タグ名 (Repository内の位置)
   とする.

8. $Id$の使いかた
   とにかく,これがあると変換されるらしい.コメント中に埋めておくこと.
   これは,rcs の機能のようだ.

9. モジュールを作る.
   これは便利だ!
   % cvs checkout CVSROOT
   で管理ファイルをチェックアウト.ディレクトリ CVSROOT ができるので,
   その中の modules を編集.
   knuthchap2 project/knuth/Vol1/taocp1/chap2
   としておけば,
   % cvs checkout chap2
   で2章のファイルだけが取り出せる.

10. 再帰
    Almost all of the subcommands of CVS work recursively when you
    specify a directory as an argument.
    だそうです.almost というのは,例えば,add には適用されないというこ
    とらしい.

11. ファイルの更新状況を知る
    % cvs status
    cvs diff では,最後にチェックアウトしてから自分の行なった作業を知
    ることができるだけで,他の人の作業状態は反映されていない.最新のレ
    ポジトリとの比較には status を使う.

12. 競合
    もろにぶつかった場合には update したファイルの中がわやくちゃになる
    ことがある.丁寧に眺めよう.update する前に良く確認したほうがよい
    かもしれない.いったんリビジョンを戻してから考えるのも手.

13. -n オプション
    make の -n と一緒.
    % cvs -n update
    で,レポジトリとの違いが分かる.status よりも便利かも.

14. branch を作る
    branch を作るには,まずタグを付けておく必要がある.そのタグに,別名
    として branch 名が貼り付けられるようなかんじである.

    % cvs rtag -b -r tag-name branch-name module-name

    これで branch ができた.
    タグ名との違いは, branch 名を指定するだけで,その branch の最新リビ
    ジョンを指定できる,ということのようだ.


Appendix
A. RCS からの移行(yamauchi@MPI くんより)
  • RCSからの移行 : CVSはRCSを使ってrevisionを管理しているので過去の変更 を保存したままの置き換えは該当するファイルを移動するだけである. (cvsのinfoから)
    • RCS関係のファイルを除いてimportする.たとえば,次のようなファイ ルがあるディレクトリがあるとする.
      	% ls
      	RCS  foo.C  bar.hh
      	  
    • RCS関係のファイルをどこかに移動しておき,importする.
      	% mv RCS ../RCS.bak	# 移動
      	% cvs -d /repository/cvsroot import proj yamauchi snap1
      	  
    • cvsrootの該当ファイルを消去し,RCSの,vファイルにて置きかえる
      	% rm /repository/cvsroot/proj/foo.C,v
      	% rm /repository/cvsroot/proj/bar.hh,v
      	% cp ../RCS.bak/foo.C,v /repository/cvsroot/proj/
      	% cp ../RCS.bak/bar.hh,v /repository/cvsroot/proj/
      	  
    • (checkoutしていくつかのrevisionを取り出してみて確認する.この 際,安全のためにどこかのディレクトリを作成して元のものは保存して 試すのがよいだろう.revnumは適当なrevision番号(ex. 1.1))
      	% mkdir tmp; cd tmp
      	% cvs -d /repository/cvsroot checkout proj
      	% cvs update -r[revnum] foo.C
      	  

戻る
(#473) poster : anonymous (owner)date: 2007-12-14

wRBv3h vjriwxunwvzh, [url=http://qwtqhhkafhdq.com/]qwtqhhkafhdq[/url], [link=http://hadvrvrltizk.com/]hadvrvrltizk[/link], http://aavzgewdvywi.com/

(#474) poster : anonymous (owner)date: 2007-12-14

wRBv3h vjriwxunwvzh, [url=http://qwtqhhkafhdq.com/]qwtqhhkafhdq[/url], [link=http://hadvrvrltizk.com/]hadvrvrltizk[/link], http://aavzgewdvywi.com/


Leave a Reply
Your Name:     anonymous
Your Email:
Website:  
Comments:

The author will be notified of your reply.
return to top