- 追加された行はこの色です。
- 削除された行はこの色です。
*CVSのTIPS集
http://shimaki-hp.hp.infoseek.co.jp/cvs/book1.html ~
http://hibiki.miyagi-ct.ac.jp/~suzuki/comp/cvs.html ~
http://kahori.com/j-cvsbook/j-cvsbook.html ~
http://www.mikamama.com/CVSBook/Q_and_A.html ~
を参考にさせてもらいました。
**CVSの管理開始
あるディレクトリ以下のファイルをCVS管理したいとします。
あるディレクトリをHOGEとすると
#cd ~/HOGE
#cvs import -m "コメント" モジュール名 ベンダ名 タグ名
たとえば
#cvs import -m "HOGEアプリケーション" HOGE KINO V20AP2003082101
これだと、HOGE以下全てのファイルがインポートされてしまうので
#cd /tmp/work/
#cvs import -m "HOGEアプリケーション" HOGE KINO V20AP2003082101
No conflicts created by this import
#cp -pfr ~/HOGE/ /tmp/work/
とかして、
#cvs add 追加したいファイル
とかやるみたいです。
さらに、これだと、一個一個ファイルを追加する必要があるため(!)以下のワンライナーがあります。
#cvs update | grep ^\? | cut -d ' ' -f 2 | xargs cvs add
**CVS内容とWorkディレクトリの差分を取る
cvs -q -n update
実際に取得するには
cvs update
**CVSのタグ付け
スナップショットを取るため、タグ付けを利用します。具体的には任意のディレクトリで
cvs rtag V20AP2003082501 HOGE
cvs rtag タグ名 モジュール名
**タグ付けされたモジュールのチェックアウト
これでよいはず
cvs checkout -r V20AP2003082501 HOGE
cvs checkout -r タグ名 モジュール名
**ファイル名の変更
一般には以下の2つの方法が利用されているようです。
+remove してから add する。
+リポジトリの情報を直接書き換える。
before.java -> after.java としたいとします。
***remove してから add する。
checkoutしたWorkディレクトリで作業
mv before.java after.java
cvs remove before.java
cvs add after.java
***リポジトリの情報を直接書き換える。
もう一方のリポジトリを直接書き換えるという方法は少々強引ですが、ログなどもそのまま引き継がれ、まるで始めからその名前であったかようように cvs 内で管理されます。方法は簡単で、,v ファイルの名前を変更してあげるだけです。
cd /opt/cvsroot
内の該当ディレクトリに移動
mv before.java,v after.java,v
**覚え書き
***CVS Updateの結果
cvs -q -n update
の結果で
U hoge.txt <- サーバ側がUpdateされている(サーバが新しい)
M hoge.txt <- 自分側が修正した(ローカルが新しい)
***CVSからファイルを削除する
ファイルのあるディレクトリに移動して
#cvs remove -f ファイル名
でOK.
***CVSでディレクトリを削除する
中のすべてのファイルをremoveして、消したいディレクトリと同じディレクトリに移動して
#cvs update -P
とする
***ローカルリポジトリと、CVSサーバの差分を確認する。
cvs -q -n update <- -q: 詳細を表示しない -n: 実行しない
***ローカルのリポジトリに、CVSサーバの内容を反映させる。
cvs -q update -d | egrep -v '^\?' <- -d: 新規ディレクトリを追加する
***タグ付けに関する注意
ローカルのモジュール内で、あるファイルのステータスを見る
> cvs status -v build.properties
=================================================================
File: build.properties Status: Locally Modified
Working revision: 1.5
Repository revision: 1.5 /opt/cvsroot/KinoTest/build.prope
Sticky Tag: (none) <- Sticky Tag は付いてない
Sticky Date: (none)
Sticky Options: (none)
Existing Tags:
TestTAG2 (revision: 1.5)
TestTag1 (revision: 1.5)
タグでチェックアウトしてみる
> cvs update -r "TestTAG2" build.properties
M build.properties
そのファイルのステータスを見る
> cvs status -v build.properties
===================================================================
File: build.properties Status: Locally Modified
Working revision: 1.5
Repository revision: 1.5 /opt/cvsroot/KinoTest/build.properties,v
Sticky Tag: TestTAG2 (revision: 1.5) <- Sticky Tag が付いた
Sticky Date: (none)
Sticky Options: (none)
Existing Tags:
TestTAG2 (revision: 1.5)
TestTag1 (revision: 1.5)
コミットしてみる
> cvs commit -m "" build.properties
cvs server: sticky tag `TestTAG2' for file `build.properties' is not a branch
cvs [server aborted]: correct above errors first!
コミットできなくなった
できるようにするために、ネバネバのタグを削除
> cvs update -A build.properties
M build.properties
コミットできるようになった
[[:CVS]]
----
SIZE(10){現在のアクセス:&counter;}