次: , 前: Adding files, 上: Adding and removing


7.2 ファイルを削除する

ディレクトリは変わります。 新しいファイルが加えられ、古いファイルが削除されます。 しかし、モジュールの古いバージョンの、 正確なコピーを復元できるようにしておきたいと思うでしょう。

ここでは、モジュールからファイルを削除した後も、 古いバージョンの復元を可能にする手順を説明します:

ファイルの削除を格納する場合、cvs は、 ファイルがもう無いという事実を記録します。 ファイルが他の枝に存在していても良いし、 後で別のファイルを同じ名前で加えても構いません。 checkoutupdate に指定する オプション `-r' や `-D' に応じて、 cvs が正しくファイルを作成したり、しなかったりします。

— コマンド: cvs remove [options] files ...

ファイルが削除された事実をリポジトリに伝えます (作業ディレクトリから未削除のファイルは処理されません)。 このコマンドを実行しても、リポジトリのファイルは、 削除が格納されるまで実際には削除されません。 オプションの完全な一覧は Invoking CVS を参照してください。

以下に、幾つかファイルを削除する例を挙げます:

     $ cd test
     $ rm *.c
     $ cvs remove
     cvs remove: Removing .
     cvs remove: scheduling a.c for removal
     cvs remove: scheduling b.c for removal
     cvs remove: use 'cvs commit' to remove these files permanently
     $ cvs ci -m "Removed unneeded files"
     cvs commit: Examining .
     cvs commit: Committing .

利便性のために、`-f' オプションを指定することでファイルの削除と cvs remove を一度に行うことができます。例えば、上の例はこのよう にすることもできます:

     $ cd test
     $ cvs remove -f *.c
     cvs remove: scheduling a.c for removal
     cvs remove: scheduling b.c for removal
     cvs remove: use 'cvs commit' to remove these files permanently
     $ cvs ci -m "Removed unneeded files"
     cvs commit: Examining .
     cvs commit: Committing .

ファイルに remove を実行したけれど、 格納前に気が変わったのなら、add コマンドを用いて、 簡単にファイルを復活させることができます。

     $ ls
     CVS   ja.h  oj.c
     $ rm oj.c
     $ cvs remove oj.c
     cvs remove: scheduling oj.c for removal
     cvs remove: use 'cvs commit' to remove this file permanently
     $ cvs add oj.c
     U oj.c
     cvs add: oj.c, version 1.1.1.1, resurrected

remove コマンドを実行する前に失敗に気付いた場合、 update コマンドを用いてファイルを復活できます:

     $ rm oj.c
     $ cvs update oj.c
     cvs update: warning: oj.c was lost
     U oj.c

削除したファイルは、作業中の枝だけから削除されます (see Branching and merging)。 他の枝からも削除したい場合は、後でマージすることができます (see Merging adds and removals)。