Q. 今のCVSって結局どうなのよ?

A. 以下のようになっています。
--------------------------------------------------------- 幹(DEVELOP)
           \ RELEASE_2_0                   \ RELEASE_2_1
            \--------------- 枝(STABLE_2_0) \-------------- 枝(STABLE_2_1)

Q. レポジトリをもってくる時はどうしたらいいすかねぇ?

A.
cvs -z3 co Kondara/pkgs/STABLE
してください。 これによってDEVELOP幹のレポジトリのコピーを取得できます。 STABLE_2_0,STABLE_2_1枝にはよほどの事がないとcommitしませんので、 通常は何も考えずこのレポジトリを利用してください。

Q. 今作業しているディレクトリをSTABLE_2_0相当のものにしたいっす。

A.
$ cvs up -r STABLE_2_0
このコマンドでディレクトリを STABLE_2_0 のものにします。 今度、ここに変更を施して commit した場合には STABLE_2_0 枝に 変更が反映されます。

Q. 今作業しているディレクトリをSTABLE_2_1相当のものにしたいっす。

A.
$ cvs up -r STABLE_2_1
このコマンドでディレクトリをSTABLE_2_1 のものにします。 今度、ここに変更を施して commit した場合には STABLE_2_1 枝に 変更が反映されます。

Q. 今ある作業ディレクトリをDEVELOP幹相当のものにしたいっす。

A.
$ cvs up -r HEAD

or

$ cvs up -A
ディレクトリを Trunk のものにします。 つまり、この後で何か変更して commit した場合には 幹に変更が反映されます。 つまり通常コミットする場合には、cvs up -A して そこに変更を反映してcommitすればよい事になります。

Q. DEVELOP幹にimportしたものをSTABLEにもいれたいんだけど どうしたらいいですか(汗)?

A.
$ cvs co Kondara/pkgs/STABLE/hoge     HEAD からもってくる
$ cd Kondara/pkgs/STABLE/hoge
$ cvs up -r STABLE_2_0 (cvs up -r STABLE_2_1)
$ cvs up -j HEAD
$ cvs commit
もう一度importする必要はありません。

Q. DEVELOPにcommitした変更をSTABLE_2_0,STABLE_2_1にもマージしたいっす。

A.
$ cvs up -r STABLE_2_0(STABLE_2_1)  STABLE_2_0(STABLE_2_1) のレポジトリをもってくる
$ cvs up -j HEAD        DEVELOP Trunk とマージ
$ cvs commit            commit
cvs up -j HEAD は、HEAD(つまり幹の先頭)の内容をSTABLE_2_0(STABLE_2_1)の レポジトリにjoin(統合)するオプションなので、up -j HEAD で生じた 変更は STABLE_2_0(STABLE_2_1) の枝に変更を施したのと同じです。

Q. STABLE_2_0(STABLE_2_1)の変更を幹に反映させるのは?

A.
$ cvs up -A
$ cvs up -j STABLE_2_0(STABLE_2_1)
$ cvs commit

Q. コンフリクトしたとかいわれちゃうんですけど?

A. 手修正してください

Q. commit する時にどこにcommitしようとしてるかチェック できないですか?

A. commit する時に -m オプションを使わないようにしておくと 編集用にエディタが開きます。そこに CVS: Modified Files: CVS: Tag: STABLE_2_0 という文字が含まれているのであれば、それはSTABLEブランチにcommitしよう としています。なければDEVELOPトランクです。STABLEブランチは余程の事が ない限りcommitしないようにしてください。

Q. 今オイラはどこの枝にいる?幹?江田美紀さんってかわいいの?

A.
$ cvs status -v hoge.spec
で表示される Sticky Tag: に注目してください。 Sticky Tag: (none) ならDEVELOP美紀 さん。 Sticky Tag: STABLE_2_0 なら江田STABLE さん。 Sticky Tag: STABLE_2_1 も江田STABLE さん。 です。残念ながら、江田美紀さんはいません。江田さんと美紀さんはいますが。 ちなみに、美紀さんのほう美人ですが、ちょっと冷たいです。江田さんはちょ っとガッシリ体系ですが、やさしいです。

Q. $Id: $ とかでconflictしちゃうんですけど...

A. cvs admin コマンドを利用してください。
$ cvs admin -ko hoge.patch
とすると$Id: $ などは展開されなくなります。すでにキーワードが展開されていたりした場合等には あらためて cvs co しなおしてください。

Q. バイナリは?

A. cvs admin コマンドを利用してください。 bz2 などのバイナリ指定をしたい場合
$ cvs admin -kb hoge.bz2
としてください。