cvs基本概念与wincvs的使用(转)

上一篇 / 下一篇  2009-01-07 11:54:27 / 个人分类:随便逛逛

1.CVS基本概念

  CVS是很早的时候在Unix下发展起来的,它使用的术语比较特殊,需要先熟悉和理解,这是使用CVS的第一步。

  Repository: 中文名称:仓库。它是 CVS服务器(可能在远程,也可能在本地)的根目录,我们所有的工作都保存在这个仓库中,包括源代码和这些代码的全部历史。你可以把Repository想像成一个仓库,仓库中有许多“木桶”,每个“木桶”就是我们的一个让 CVS管理起来的工程。对于CVS来说,这些“木桶”之间是没有什么关联的,删除一个“木桶”不会影响别的“木桶”。我们所想像的木桶,在CVS术语中,又叫模块(Module)。

  Module:中文名称:模块。就是上面我们所想像的仓库中的“木桶”,里面放的是一个项目的所有文件(包括源代码,文档文件,资源文件等等)。在物理上,Module是CVS服务器根目录下的第一级子目录。

  Import:中文名称:导入。我们本地有一个软件项目,里面有许多各种类型的文件,都需要用CVS进行版本管理,那么第一步就是把这个软件项目的整个目录结构都Import到CVS的仓库中去。经过这种导入,CVS将为你的项目创建一个新的“木桶”----Module,即模块。

  Checkout:中文名称:导出。指将仓库中的一个“木桶”(Module, 模块)中的东西导出到本地的工作目录下,然后我们可以在WinCvs的管理下,进行工作,修改其中的内容。

  Commit:中文名称:提交修改。我们在本地的工作目录下,对工程中的文件进行修改,这些修改,需要提交给CVS的仓库,这个过程,就叫Commit。你可以Commit一个文件,也可以Commit整个目录。

  Update:中文名称:同步。它与Commit相对应,是从仓库中的“木桶”(模块)中下载你同事修改过的文件(别忘记你的项目有许多人共同参与),如果这个文件在你本地也有,就会更新本地的拷贝,如果你本地没有,就会把新文件下载到你的本地。

  Revision:中文名称:文件版本。这是CVS中一个需要特别注意的概念,它指的是单个文件的版本,而不是整个项目的版本。基本上,单个文件每次的修改,经过Commit 之后,它的Revision都要改变一次,比如从1.1到1.2到1.3等等。特别要注意,单个文件的版本(Revision)与整个工程产品的版本(Version,或者Release)可以没有任何关系。例如,整个产品现在发行1.0版本(Version 1.0)了,但是产品的源代码文件中,有的文件版本(Revision)可能是1.9, 有的是2.1,等等。这很容易理解,因为为了发行产品V1.0,我们需要对源代码进行多次修改编译。

  Release:中文名称:发行版本。整个产品的版本,例如VC5.0, VC6.0等。

  Tag:中文名称:标签。在一个开发的特定期,对一个文件或者多个文件给的符号名,一般是有意义的字符串,如“stable”,“release_1_0”等。比如,我们对某个文件的1.5版本加上标签:“memory_bug_fixed”,借助这个有意义的标签,我们可以理解1.5版本解决了内存Bug,所以说Tag赋予了版本一些文字含义。

  2. WinCvs的两种工作模式、工作流程与目录

  理解上述基本概念之后,我们需要对WinCvs的工作方式有一个基本了解。

  CVS工作于服务器/客户端模式(Client/Server模式)。WinCvs是CVS在Windows下的图形客户端。它有两个基本工作模式:

2.1 WinCvs作为远程CVS的客户端

  WinCvs 的第一种工作模式是作为远程CVS服务器在本地的客户端使用。CVS由于是在Unix下发展起来的,在使用的时候,有很多命令行,命令行中又带很多参数,习惯于Windows的读者很难记忆这些命令行和参数。WinCvs提供了用图形界面使用远程CVS服务的直观方法。

  在这种工作模式下,第一次使用WinCvs的基本流程如下:

  1) 您首先要让CVS管理员给您分配一个用户名和密码,先使用WinCvs登录(Login)到CVS服务器。

  2) 把本地需要CVS管理的原始目录导入(Import)到CVS服务器上去,使之成为CVS服务器上仓库(Repository)的一个Module。

  3) 在本地硬盘上创建一个工作目录。

  4) 从CVS服务器的仓库(Repository)导出(Checkout)一个Module到本地硬盘的工作目录

  5) 从CVS服务器同步(Update)你同事的修改到你本地工作目录。在工作目录上进行工作,在这个过程中,把文件的中间版本(Revision)提交(Commit)给CVS服务器。

  当您已经进行过上述流程,以后再使用时,就简化成只需要步骤1)和步骤5)就可以了。

  2.2 WinCvs作为本地的服务器和客户端

  如果没有远程CVS服务器,WinCvs 1.3版本能够在本地同时作为Server和Client来工作。其中,服务器端的功能是WinCvs启动CVSNT在后台实现的,CVSNT(www.cvsnt.org)也是一个开源项目,WinCvs1.3版本自带CVSNT,您不用单独安装。在这种工作模式下,你需要在本地硬盘上开设一个CVS仓库目录,它的作用和地位其实就和远程CVS仓库目录一样。

  WinCvs工作在这个模式时,当您开始从头工作时,需要下面的工作流程:

  1) 首先在本地硬盘上,创建CVS的仓库(Repository)目录。目录名可任意,一般是CVSRoot

  2) 把本地需要CVS管理的原始目录导入(Import)到CVS服务器上去,使之成为CVS服务器上仓库(Repository)的一个Module。

  3) 在本地硬盘上创建一个工作目录。

  4) 从CVS服务器的仓库(Repository)导出(Checkout)一个Module到本地硬盘的工作目录

  5) 从CVS服务器同步(Update)你自己从前的修改到你本地工作目录。在工作目录上进行工作,在这个过程中,把文件的中间版本(Revision)提交(Commit)给CVS服务器。

  当您已经进行过上述流程,以后再使用时,就简化成只需要步骤5)就可以了。

  无论WinCvs工作在上述哪种模式下,下面是它的工作流程图:

  

  从WinCvs的工作流程图中可以知道,WinCvs的工作涉及三个目录:一是原始目录,我们从这里把文件导入到CVS进行管理,从此以后这个目录下的文件就不再参与WinCvs活动了;二是CVS仓库目录,所有的Module都存放在这里,它可能是远程Linux下由CVS服务器管理员创建的,也可能是你自己在本地硬盘创建的,这决定于你工作在哪种模式下;三是您本地硬盘的工作目录,您在这里对文件进行多次修改和提交。


TAG: 随便逛逛

 

评分:0

我来说两句

Open Toolbar