下一个: , 上一个: Adding files, 上层: Adding and removing


7.2 删除文件

各个目录产生变化。 有新的文件不断地添加进来,也有一些不再需要的文件被删除。 在某些情况下,用户可能仍然希望能获得某一个老发行版的正确的副本。

通过下面的方式,用户可以在当前版本中删除一个文件而仍然在老版本中保留它:

当用户提交文件的删除操作后,cvs 将记录该文件不再存在。 一个文件可能存在于仓库的一些分支里,而不在另外的分支里,或者在后来加入同名的另一个文件。 根据在 checkoutupdate 命令中指定 `-r' 和 `-D' 选项,cvs 可以正确地创建和不创建该文件。

— Command: 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 .

为了简化操作,可以通过 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)。