ノード:Getting Rid Of A Working Copy, 次:History -- A Summary Of Repository Activity, 前:Changing A Log Message After Commit, 上:Advanced CVS
CVS の典型的な使い方では、作業コピーのディレクトリを削除するには、他
のディレクトリツリーと同じように削除します:
paste$ rm -rf myproj
しかしこの方法で作業コピーを削除すると、その作業コピーを使い終わった
ことが他の開発者にわかりません。CVS は明示的に作業コピーを放棄するコ
マンドを用意しています。リリース(release)はチェックアウトの反対だと
思って下さい。その作業コピーでの作業が終わったことをリポジトリに知ら
せます。チェックアウトと同様、リリースはツリーの親ディレクトリで起動
します:
paste$ pwd /home/qsmith/myproj paste$ cd .. paste$ ls myproj paste$ cvs release myproj You have [0] altered files in this repository. Are you sure you want to release directory 'myproj': y paste$
リポジトリ中に未コミットの変更があった場合リリースは失敗し、変更のあ るファイルの一覧を出力する以外何もしません。そのディレクトリツリーが クリーン(すべて最新)だとするとリリースコマンドはその作業コピーがリリー スされたという記録をリポジトリ中に残します。
リリースコマンドに作業コピーのツリーを自動的に削除させることもできま
す。-d フラグを渡して下さい:
paste$ ls myproj paste$ cvs release -d myproj You have [0] altered files in this repository. Are you sure you want to release (and delete) directory 'myproj: y paste$ ls paste$
CVS バージョン 1.10.6 現在、リリースコマンドは作業コピーを調べてリポ
ジトリの場所を推定することができません(このコマンドが作業コピーの中
ではなくその上で実行されるものだからです)。-d <REPOS>
グ
ローバルオプションを渡すか、 CVSROOT 環境変数が正しく設定されている
ことを確認するかして下さい。(このバグは将来のバージョンの CVS では解
決されているでしょう)
Cederqvist では、作業コピーを削除する代わりにリリースを使った場合、
リリースされたファイルに監視設定をしている人々には unedit
を
したかのような通知が行く、と書いてあります。しかしながら筆者が試しに
やってみたところ、そうはならないようでした。