Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3284959
  • 博文数量: 346
  • 博客积分: 10189
  • 博客等级: 上将
  • 技术积分: 3125
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-05 19:46
文章分类

全部博文(346)

文章存档

2013年(35)

2011年(35)

2010年(76)

2009年(48)

2008年(152)

分类:

2008-09-24 20:43:06

什么是CVS
      CVS(Version Control System.)即版本控制系统。用来记录源文档的历史信息。甚至二进制文档,媒体文档等。
例如,当软件修改时有时会产生Bugs,并且您可能在做这次修改后很长时间不会发现这些Bugs。使用CVS,您能够容易地回顾老的代码版本去发现哪一次的修改导致这些问题。有时候这样会很有帮助。
您可能会保留您每一次的代码版本,这可能会浪费您很多的代码空间。CVS使用种聪明的办法保存您的多个版本在一个文档中。他仅仅保留版本间的不同内容。
       他能够协助一组人一起研发一个工程。假如您是个项目中的一组成员之一,CVS也能够帮助您。除非您特别仔细,您很容易覆盖其他人的工作。一些编辑器,例如GNUEmacs,试图去判定一个文档是否被两人同时修改。不幸的是,假如一个人使用其他的编辑器时,这个安全方式将不再有效。CVS使用让不同研发者单独工作的方式解决了这个问题。每一个研发者的工作都在他自己的目录内,并且CVS将 在每个研发者的工作完成后进行合并工作。
基本概念
仓库(Repository)
       CVS的仓库存储全部的版本控制下的文档copy,通常不容许直接访问,只能通过cvs命令,获得一份本地copy,改变后再check in(commit)回仓库。而仓库通常为和工作目录分离的。CVS通过多种方式访问仓库。每种方法有不同目录表示形式。
       数据如何存放在repository中:随着CVS版本的不同,存放结构会发生变化,一般情况下用户无需了解数据到底是如何存放的。
Revision
每一个file的各个revision都不相同,形如1.1, 1.2.1,一般1.1是该文档的第一个revision,后面的一个将自动增加最右面的一个整数,比如1.2, 1.3, 1.4...有时候会出现1.3.2.2,原因见后。revision总是偶数个数字。一般情况下将revision看作时CVS自己内部的一个编号,而tag则能够标志用户的特定信息。
Tag
用符号化的表示方法标志文档特定revision的信息。通常无需对某一个孤立的文档作tag,而是对任何文档同时作一个tag,以后用户能够仅向特定tag的文档提交或checkout。另外一个作用是在发布软件的时候表示哪些文档及其哪个版本是可用的;各文档不同revision能够包括在一个tag中。假如命名一个已存在的tag默认将不会覆盖原来的;
Branch
当用户修改一个branch时不会对另外的branch产生任何影响。能够在适当的时候通过合并的方法将两个版本合起来;branch总是在当前revision后面加上一个偶数整数(从2开始,到0结束),所以branch总是奇数个数字,比如1.2后面branch为1.2.2,该分支下revision可能为1.2.2.1,1.2.2.2,...
Conflct
完全是纯文本的冲突,不包含逻辑上的矛盾,比如CVS不能解决如下问题:某人修改了函数f的参数,而另外一个人在另外一个地方用老的参数调用该函数。文本冲突需要用户自己参和解决,CVS无法自动解决。
安装CVS客户端
1.Windows客户端的安装
在此,我们介绍WinCVS(一款相当不错的基于Windows的CVS客户端软件)的安装。请在
[url=file://fileserver/software/programming/CVS]\\fileserver\software\programming\CVS[/url]
目录下下载WinCVS软件并安装之。其安装过程和普通的Windows软件相同,其运行界面如下:

2.客户端配置
       客户端配置最重要的是CVSROOT环境变量的配置。其格式是:
       :pserver:username@hostname(或IP地址):CVS仓库路径
       例如,我在使用我们实验室的CVS服务器时的配置为:
       :pserver:car@192.168.2.2:/had/src
       每一个实验室的成员应该是用自己的mail服务器账户作为usernam,密码也是mail服务器的密码。
       配置对话框如下:

3.测试远程访问CVS服务器
       在WinCVS窗口中选择Admin->Login命令,会出现提示输入密码的窗口。输入密码后,单机OK按钮。然后察看命令结果输出窗口中的输出结果。假如显示错误信息,则表明安装配置有误,请察看前面的步骤。假如仍然有错误,请和管理员联系。
4.在Visual Studio中集成CVS
       用CVS取代Visual Studio中所使用的Microsoft Visual Source Safe,步骤如下:
(1)    安装Microsoft Visual Studio;
(2)    安装WinCVS;
(3)    到
[url=file://fileserver/software/programming/CVS]\\fileserver\software\programming\CVS[/url]
下载iglooinstall.zip并安装igloo;
(4)    将WinCVS安装目录下的cvs2ntlib.dll和cvs2ntslib.dll文档拷贝到igloo的安装目录下。
完成以上步骤以后,打开Microsoft Visual Studio就能够看到进行版本管理需要的菜单了,如下图所示:

经常使用的CVS功能
       使用igloo在Visual Studio中使用CVS进行版本的控制和管理是一件十分轻松惬意的事情。其为用户提供了大多数的基本的CVS 命令的图像接口,使我们只是简单的点击鼠标,就能够完成一般的CVS控制命令,下面将逐一介绍:
Check Out
       把源文档从RCS源代码仓库中取出,缺省的版本是最新的版本,假如您需要一个指定的版本,则需要使用-r选项指定。
       在每次更改源代码之前,需要Check Out最新的版本,再起基础之上对源代码进行修改。将代码目录checkout到指定目录下,任何文档都是read-write
Check In
       把源代码加入到RCS源代码仓库中,每一个添加进代码库中的文档的版本是 1.1。以后每次修改文档重新ci以后,此文档的版本递增为1.2 ,1.3.……。
       在每次对源代码修改之后,需要Check In,提交最新版本的源代码。
冲突:多人同时修改同一内容。冲突的情况下,通过文档两个版本的比较消除冲突的地方后再次提交。比较两个版本不同的方法是:
1)能够利用CVS自带的比较工具,CVS会把不同部分通过
...
==========
...
>>>>>>>>>>>
列出来;
2)也能够利用其他文本比较工具比较(Preference setting中选定,Query-diff setting中选定);
Add to Source Control
       将新的文档加入到版本控制之中。
References
1.杨锦方等. CVS和Nightly Build技术. 清华大学出版社
2.
使用CVS进行版本管理
3.
WINDOW系统下CVS的使用
4.Karl Fogel. 
Open Source Development With CVS
5.Per Cederqvist et al. 
Version Management With CVS
阅读(3568) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~