用CVS来管理自己的程序
作者:网络转载 发布时间:[ 2013/2/17 16:10:58 ] 推荐标签:
4.1 CVS的网络工作方式
CVS的网络功能采用client-server结构,两地均需安装CVS。CVS采用rsh方式或者口令校验方式进行工作。对client端,同前面讲过的设置环境变量CVSROOT一样,用户需要设置新的环境变量CVS_SERVER,指明CVS在server上的路径,例如:/usr/local/cvsroot1。CVS的-d参数指定路径名,它后面可以用 :(local或server或ext):来指明是在本地还是在异地服务器上,默认当然是在本地,正如我们在初始化CVS一节所使用的那样。下面的命令假定我们的CVS服务器为cvs.rdcps.ac.cn,用户名为crazyyao,CVS源码库在服务器的/usr/local/cvsroot1目录下,我们的工作项目还是netants,我们用rsh方式导出项目文件:
cvs -d : server : crazyyao@cvs.rdcps.ac.cn :/usr/local/cvsroot1 checkout netants
采用口令校验方式时,需要对修改系统文件/etc/inetd.conf,以便使inetd知道如何分配、处理CVS Server的请求和响应。CVS会在源码库所在的目录中创建一个名为passwd的口令文件,对用户进行校验。使用口令校验时,CVS支持匿名登陆,而且CVS项目超级用户可以设置项目中文件的存取权限。
关于如何配置CVS使之工作在网络方式下的详细信息请参考CVS的文档。
4.2 CVS的分支和融合功能
CVS增强的目录工作方式使得CVS提供分支和融合功能。有的时候,当项目进展到一定程度时,可能需要暂时中断,去做另外一些修改和发展。例如,我们的软件原有版本为1.0,并已提交用户使用,现在正在开发2.0。某,1.0的用户发现了一个较大的bug或者需要添加某个短小的功能,这时我们不能让用户去期待2.0版本,又必须给用户满意的答复,比较理想的解决方式是把现在的工作先放到一边,另开一个分支,去满足用户的需要。当此分支完成后,程序源还可以使用CVS的融合功能将这一部分修改添加到我们开发2.0版本的主工作进程中去。
创建分支可以使用tag -b命令。例如下面的命令
cvs tag -b netants-1-0-patch
在当前的工作目录的基础上创建一个叫做netant-1-0-patch的分支。
融合的命令参数是-j,我们在前面已经提及它了。
4.3 CVS处理二进制文件的功能
CVS可以保存二进制文件,但和文本文件相比,它的许多功能丧失了。对于文本文件,CVS可以辨别出文件的任何一点改动,但对于二进制文件它无能为力。但是,CVS可以区分出文件作了改动,并会提示用户自己修改、保存。与文本文件不同,CVS保存二进制文件每个版本的完整信息。在操作二进制文件时,需要添加参数-KB,以便告诉CVS不把它当作文本文件看待。
4.4 CVS比较文件的功能 执行的命令为diff,这个功能和shell下的diff功能基本一样。例如下面的命令比较CVS源码库中的新的netants.c文件和当前目录下netants.c文件有什么不同:
cvs diff netatns.c
5.结束语
通过上面的介绍,希望能激起大家使用CVS的兴趣,并掌握使用CVS的一些基本方法。碰到困难时,别忘了翻阅CVS附带的手册,不过,它有厚厚的172页。希望CVS能加速你的软件开发。