下一个: 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 .
为了简化操作,可以通过 cvs remove 命令 `-f' 选项一步就从仓库中删除文件。
例如,上面的例子也可以xiang 像这样:
$ 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 命令来取消 remove 操作。
$ 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
如果用户只是在当前工作的分支上删除了文件(参阅 Branching and merging)。 如果想要也可以将删除后的内容合并到别的分支(参阅 Merging adds and removals)。