次: Removing directories, 前: Adding files, 上: Adding and removing
ディレクトリは変わります。 新しいファイルが加えられ、古いファイルが削除されます。 しかし、モジュールの古いバージョンの、 正確なコピーを復元できるようにしておきたいと思うでしょう。
ここでは、モジュールからファイルを削除した後も、 古いバージョンの復元を可能にする手順を説明します:
status や update といった
コマンドを使用しても確認できます。
修正を格納せずにファイルを消した場合、
当然ですが以前の状態に復元することはできません。
rm などを使っても良いでしょう。
ファイルの削除を格納する場合、cvs は、
ファイルがもう無いという事実を記録します。
ファイルが他の枝に存在していても良いし、
後で別のファイルを同じ名前で加えても構いません。
checkout や update に指定する
オプション `-r' や `-D' に応じて、
cvs が正しくファイルを作成したり、しなかったりします。
ファイルが削除された事実をリポジトリに伝えます (作業ディレクトリから未削除のファイルは処理されません)。 このコマンドを実行しても、リポジトリのファイルは、 削除が格納されるまで実際には削除されません。 オプションの完全な一覧は 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)。