CVSリポジトリの空きディレクトリの扱い

CVSリポジトリにおいて、「空きディレクトリ」は「消したディレクトリ」という扱いである。
ので、作業コピーで

$ cvs update

しても、普通は、出てこない。
が、

$ cvs update -d

をすると空きディレクトリも作業コピーに出現する。
(-dは、リポジトリに存在して、作業コピーにないディレクトリを引っ張ってくる)
消したはずのディレクトリが作業コピーに出現するのは正直うざいので、
これを防ぐには

$ cvs update -d -P

という具合に-Pオプションをつければ、作業コピー上の空きディレクトリを自動的に削除してくれる。
(ただし、cvs addしてないディレクトリは対象外)
logファイル出力用に空きのディレクトリを追加しておきたい場合もあるだろうに・・・・。
CVSはこの辺が面倒くさい。
上記のような例だと、log用ディレクトリ配下にダミーのファイルをおいておかないとダメっぽいな。
とにかく、CVSで空きディレクトリは「存在しないもの」として扱われる点に注意だな。
そもそも、リポジトリ上でディレクトリは永遠に消せないという仕様が謎。
(リポジトリを直接編集すれば消せることは消せる)
ヒストリー管理のために必要なんだろうか・・・・。
Subversionはこの辺が改善されてるっぽいので期待。

2 件のコメント

  • Subversionはエクスプローラーで出来ると聞いたがどうなんでしょうか?
    とりあえずVSSというのもあると書き込んでみたりする。

  • Subversionというか、TurtoiseSVNを使えば、エクスプローラから操作できるようになるな。CVSでもTurtoiseCVSを使えばできます。
    まだ、使いはじめだけどこれはいいね。
    VSSはDirectXを使わない俺には無用の長物!
    つーかファイルがロックされる時点で雑魚い。

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です