#topicpath ---- //ここにコンテンツを記述します。 *CVSのTIPS集 [#odfa1199] 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の管理開始 [#c81381b3] あるディレクトリ以下のファイルを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ディレクトリの差分を取る [#g4a1f643] cvs -q -n update 実際に取得するには cvs update **CVSのタグ付け [#b30a7956] スナップショットを取るため、タグ付けを利用します。具体的には任意のディレクトリで cvs rtag V20AP2003082501 HOGE cvs rtag タグ名 モジュール名 **タグ付けされたモジュールのチェックアウト [#af9dfc72] これでよいはず cvs checkout -r V20AP2003082501 HOGE cvs checkout -r タグ名 モジュール名 **ファイル名の変更 [#xbc8cdf7] 一般には以下の2つの方法が利用されているようです。 +remove してから add する。 +リポジトリの情報を直接書き換える。 before.java -> after.java としたいとします。 ***remove してから add する。 [#t9b2df2c] checkoutしたWorkディレクトリで作業 mv before.java after.java cvs remove before.java cvs add after.java ***リポジトリの情報を直接書き換える。 [#ma7d7bfc] もう一方のリポジトリを直接書き換えるという方法は少々強引ですが、ログなどもそのまま引き継がれ、まるで始めからその名前であったかようように cvs 内で管理されます。方法は簡単で、,v ファイルの名前を変更してあげるだけです。 cd /opt/cvsroot 内の該当ディレクトリに移動 mv before.java,v after.java,v **覚え書き [#i3b54b6b] ***CVS Updateの結果 [#f270bf40] cvs -q -n update の結果で U hoge.txt <- サーバ側がUpdateされている(サーバが新しい) M hoge.txt <- 自分側が修正した(ローカルが新しい) ***CVSからファイルを削除する [#m817b6d7] ファイルのあるディレクトリに移動して #cvs remove -f ファイル名 でOK. ***CVSでディレクトリを削除する [#l5a347e1] 中のすべてのファイルをremoveして、消したいディレクトリと同じディレクトリに移動して #cvs update -P とする ***ローカルリポジトリと、CVSサーバの差分を確認する。 [#od196718] cvs -q -n update <- -q: 詳細を表示しない -n: 実行しない ***ローカルのリポジトリに、CVSサーバの内容を反映させる。 [#v075194e] cvs -q update -d | egrep -v '^\?' <- -d: 新規ディレクトリを追加する ***タグ付けに関する注意 [#ucb36841] ローカルのモジュール内で、あるファイルのステータスを見る > 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 コミットできるようになった ---- この記事は #vote(おもしろかった[0],そうでもない[1]) #comment #topicpath SIZE(10){現在のアクセス:&counter;}