删除文件

在源码库的使用过程中,各个模块都可能会产生变化:有新的文件不断地添加进来,也有一些不再需要的文件被删除。在某些情况下,用户可能仍然希望能获得某一个老版本的所有代码文件(包括那些已被被删除的文件)。

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

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

cvs remove [options] files … 从源码库中删除文件(不包括从工作目录中删除的文件)。本命令不会真正从源码库里删除文件直到用户提交了删除操作。请参阅[附录 B]查看所有可用的选项。

下面是删除多个文件的例子:

$ 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选项一步就从源码库中删除文件。上面的例子可以改写为:

$ 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

如果用户只是在当前工作的分支上删除了文件[第 5 章],也可以将删除后的内容合并到别的分支[合并能添加和删除文件 在 第 5 章]。