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/ |
|
return to top