前: commit options, 上: commit
オプション `-r' を用いて、枝リビジョン (リビジョン番号が
偶数個のドットを含むもの) に格納することができます。
枝リビジョンは rtag
か tag
コマンドに
オプション `-b' を指定して作成します
(see Branching and merging)。
そして checkout
か update
で、
新しく作成した枝からソースを取り出します。
その結果、この作業ソースに対する変更を commit
すると、
全て自動的に枝リビジョンの方に追加され、
幹の開発系統は全く影響を受けません。
例えば、バージョン 1.2 の製品に対するパッチを作成する必要があるけれど、
既にバージョン 2.0 の開発が始まっているような場合、
以下のようにします:
$ cvs rtag -b -r FCS1_2 FCS1_2_Patch product_module $ cvs checkout -r FCS1_2_Patch product_module $ cd product_module [[ hack away ]] $ cvs commit
オプション `-r' は作業ディレクトリに貼り付けられるため、 これを指定する必要はありません。
例えば、先週取り出したリビジョンを元にして、 極めて実験的な変更をソフトウェアに加えてきたとします。 ここで実験に他の開発者を加えたいけれど、 幹の開発系統を妨げたくない場合は、 その変更点を新しい枝に格納すれば良いでしょう。 すると他の開発者も実験中のコードを取り出して、 cvs の衝突解決の恩恵を全て受けることができます。 このシナリオは次のようになるでしょう:
[[ hacked sources are present ]] $ cvs tag -b EXPR1 $ cvs update -r EXPR1 $ cvs commit
update
コマンドで、全てのファイルに
オプション `-r EXPR1' が貼り付けられます。
このとき、update
コマンドでは
ファイルに対する変更が削除されないことに注意して下さい。
`-r' が貼り付けられているため、
commit
すれば自動的に正しい枝に変更が格納されます。
これは次の手順もあります:
[[ hacked sources are present ]] $ cvs tag -b EXPR1 $ cvs commit -r EXPR1
しかしこの場合、 変更されていたファイルだけに `-r EXPR1' が貼り付けられます。 従って別のファイルを変更して、フラグ `-r EXPR1' を付けずに 格納した場合、誤って幹に格納されてしまいます。
他の開発者が実験に参加する際には、 単純に以下のようにして下さい:
$ cvs checkout -r EXPR1 whatever_module