在项目的开发过程中,常常需要添加新文件,同时还要删除或重命名文件,对目录也一样。用户需要紧记,在这些情况下是使用CVS记录下发生了什么变化而不是用它做不可恢复的修改,这和修改已有的文件一样。CVS实现这一点的机制在很大程度上依赖于CVS运行的环境。
按照以下步骤,可以添加一个新文件到源码库的一个目录:
用户必须有目录的一个工作拷贝。[获取源文件 在 第 1 章]
在目录的工作拷贝中创建一个新文件
使用cvs add filename命令告诉CVS你希望对该文件进行版本控制。如果该文件包含二进制数据,请指定-kb选项[第 9 章]。
使用cvs commit filename命令真正把该文件提交进源码库。在这一步前,别的成员都看不到这个新加入的文件。
你也可以使用add命令新建一个目录。
不象其它命令,add命令的执行方式不是递归的。你甚至不能在“add”命令中指定这样的相对目录:cvs add foo/bar!你不得不象下面的例子一样执行命令:
$ cd foo $ cvs add bar |
cvs add [-k kflag] [-m message] files …
将文件files或目录添加进源码库。命令中指定的add文件或文件夹必须在当前目录中。要将一个新的目录结构(例如,来自第三方的文件)添加进源码库,请使用import输入命令[import--Import sources into CVS, using vendor branches 在 附录 A]。
直到用户使用提交commit命令确认修改,被添加的文件才被放进源码库。要添加add一个被remove命令删掉的文件将取消删除remove,请参阅[删除文件]中的例子。
指定选项-k选项修改以后默认检出的方式,请参阅[替换模式 在 第 12 章]来获得更多信息。
使用-m选项可以同时添加文件的描述性信息。描述性信息包含在历史记录中(如果有历史记录的话,请参阅[The history file 在 附录 C])。在文件被提交的时候,这些描述性信息也会被存储在源码库的版本历史中。用log命令可以显示这些描述。 使用admin -t命令可以修改描述性信息,[admin--Administration 在 附录 A]。如果用户忽略-m description选项,CVS会自动使用一个空字符串作为文件的描述信息,而不会提示输入信息。
例如,下面的例子添加文件backend.c到源码库:
$ cvs add backend.c $ cvs commit -m "Early version. Not yet compilable." backend.c |
当你添加一个文件的时候它仅仅被添加到你当前工作的分支上[第 5 章],但是稍后你也可以把添加的内容合并到另外的分支去[合并能添加和删除文件 在 第 5 章]。