下一个: 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)。