详细介绍 CVS (附带 其配置与使用方法)

来源:互联网 发布:php 7 编辑:程序博客网 时间:2024/05/22 13:29

 先简单介绍一下 什么是 CVS :

CVS 是一个 C/S系统, 是一个常用的代码版本控制软件。 主要 在 开源软件管理中使用。 与它相似的代码版本控制软件有 subversion。


其工作模式如下:


CVS 服务器(文件版本库)   

CVS(Concurrent Versions System)版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。

Concurrent 有并发的、协作的、一致的等含义。

实际上CVS可以维护任意文档的开发和使用,例如共享文件的编辑修改,而不仅仅局限于程序设计。

CVS维护的文件类型可以是文本类型也可以是二进制类型。

CVS用Copy-Modify-Merge(拷贝、修改、合并)变化表支持对文件的同时访问和修改。

它明确地将源文件的存储和用户的工作空间独立开来,并使其并行操作。

CVS基于客户端/服务器的行为使其可容纳多个用户,构成网络也很方便。

这一特性使得CVS成为位于不同地点的人同时处理数据文件(特别是程序的源代码)时的首选。   

所有重要的免费软件项目都使用CVS作为其程序员之间的中心点,以便能够综合各程序员的改进和更改。

这些项目包括GNOME、KDE、THE GIMP和Wine等。
  



CVS的基本工作思路是这样的:


在一台服务器上建立一个源代码库,库里可以存放许多不同项目的源程序。由源代码库管理员统一管理这些源程序。

每个用户在使用源代码库之前,首先要把源代码库里的项目文件下载到本地,然后用户可以在本地任意修改,最后用CVS命令进行提交,

由CVS源代码库统一管理修改。这样,就好像只有一个人在修改文件一样,既避免了冲突,又可以做到跟踪文件变化等。   



CVS是并发版本系统(Concurrent Versions System)的意思,主流的开放源码网络透明的版本控制系统。

CVS对于从个人开发者到大型、分布团队都是有用的。   

它的客户机/服务器存取方法使得开发者可以从任何因特网的接入点存取最新的代码。

它的无限制的版本管理检出(check out:注1)的模式避免了通常的因为排它检出模式而引起的人工冲突。

它的客户端工具可以在绝大多数的平台上使用。


使用CVS的好处

  
修改软件时可能会不知不觉混进一些 bug,而且可能过了很久你才会察觉到它们的存在。

有了 cvs,你可以很容易地恢复旧版本,并从中看出到底是哪个修改导致了这个 bug。有时这是很有用的。   

cvs 用一种聪明的办法把一个文件的所有版本保存在一个文件里,仅仅保存不同版本之间的差异。   

cvs 最初由 Dick Grune 在 1986 年 12 月以 shell 脚本的形式发布在 comp.sources.unix 的新闻组第 6 卷里;

1989 年 4 月,Brian Berliner 设计了 cvs 并编写了代码。之后 Jeff Polk 帮助 Brian 设计了 cvs 模块和销售商分支支持。   



cvs 不能指导你如何构造什么。它只是将你所设计的一种树结构文件保存下来以备恢复之用。   

cvs 不能决定如何在一个检出工作目录使用磁盘空间。

如果你在每一个目录中都写下 Makefile 或脚本,且必须知道其它一切的相对位置,有时不得不检出整个仓库。   

如果你将你的工作模块化,并且建立了一个共享文件的 build 系统(通过links,mounts,Makefiles 里的 VPATH 等),你就可以随意安排磁盘的使用。

你应该在 cvs 下放一个工具来支持这样一个构造系统(脚本、Makefile 等等)。   

有些变化发生在 cvs 范围之外时,要想想什么文件需要重建。

一个传统的方法是用 make 来构造,并用一些自动化的工具来产生 make 所用的相关文件。




CVS 中会经常提到的一些术语:

Revision (修订版本):

文件历史记录中的被开发者提交的变化。一个修订版本就是一个时常变化的项目的 snapshot (瞬态图)。 

Repository (源代码库):

CVS 存储所有修订版本历史记录的地方。每个项目都有自己的一个确定的源代码库。  

Working copy (工作拷贝):

开发者对文件作出修改时文件所在的拷贝。   

Check out (检验):

从源代码库中申请一份工作拷贝。该工作拷贝反映的是取出时项目的瞬时状态。
当开发者对拷贝作出修改时,必须运用 commit (提交)和 update (更新) 命令来 “发布”变化和查看其他开发者所作的修改。   

Commit (提交):

将工作拷贝中的变化输入中央源代码库。   

Log message (日志信息):

提交修订版本的时候,附带描述变化的注解。通过查阅记录信息,人们可以获得一个当前项目进程的总结。 

Update (更新):

从源代码库中取出别人的修改数据,将其输入自己的工作拷贝,并显示自己的工作拷贝是否有未提交的修改。
注意,不要和 commit (提交)混淆,更新和提交是一对互补的指令。
记住: Update 将使工作拷贝和源代码库拷贝保持同步更新。   

Conflicts (冲突):

两个开发者对同一个区域所做的改动都提交给主版本时出现的情况,在 CVS 觉察并指出这个冲突后,开发者必须解决该冲突。





下面 介绍一下 基于 MyEclipse 下的 CVS 部署 和 使用 :


1.   首先下载 cvsnt-2.5.03.2151安装包.msi , 进行双击后即可开始安装(默认安装即可)。

      安装结束后, 在控制面板或开始菜单中找到 CVSNT Control Panel, 点击即可 进入CVSNT的控制面板。

                                                                                      示图cvs001

宋延军的博客专用图片

   此时启动了 两个 服务 (Service): CVSNT 以及 CVSNT Lock 。 

                                                                                      示图cvs002

宋延军的博客专用图片

2.   创建CVS库(Repository)

                                                                                示图cvs003

宋延军的博客专用图片

      点击 Add 按钮后 ,即可 配置 CVS的 库,


                                                                                         示图cvs004

宋延军的博客专用图片

      按 OK 按钮 , 若 D:/WorkingPath/CVS  目录不存在, 则会提示:指定路径不存在,是否创建该目录?

                                                                                   示图cvs005

宋延军的博客专用图片


       点击 “是“  创建该目录,则在本地D盘出现 如下图所示的 目录结构。

                                                                          示图cvs006 

宋延军博客的专用图片


3.    在之后 点击  “应用” 配置  , “ 确定”即可。

                                                                    示图cvs008

宋延军的博客专用图片


4.    创建用户:在 开始  >  管理 > 计算机管理的用户管理中 增加一个用户, 例如 cvsUser001。

       在一个团队中 ,有多少个开发者 即可以创建多少个用户。


以上所述的 都是 CVS 服务器端的设置。

下面简单的说一下 客户端 如何使用 CVS ,此处就拿 MyEclipse举例:


MyEclipse 本身 提供了 CVS客户端的 功能。 下面 介绍一下 如何 在 MyEclipse 中连接 CVS库:




1.   在 MyEclipse 的window > Open Perspective  打开  CVS Repository Expolring 透视图( 如果上下文菜单中没有此选项, 则可以从 other...菜单中选择), 在 CVS Respositories View 窗口的空白区域右键弹出上下文菜单 , 点击  New  > Repository Location..., 打开窗口如下图所示:

                                                                        示图cvs009

宋延军的博客专用图片

2.      在弹出的配置窗口 向 文本框中的 内容填写cvs库配置信息:

                                                                     示图cvs010

宋延军的博客专用图片



NT用户名; CVS服务器上设置的库名;   CVS服务器所在的机器名;  用户名对应的密码;  与CVS服务器的连接类型;

按上面的文本框描述 把你自己定义的 配置信息配置在 其中后 ,( 如果为了下次方便,可以把 Save password 勾选上以便于下次 不需要 在 填入用户名与密码去连接。)点击 finish 按钮 即可完成 CVS在客户端的配置。


3. 将 项目 上传至 CVS库


例如 现有一个 名为 TestCVS 的项目, 该项目中 有 各种已经 写好的 包 或者 类 或者 各种格式的文件。

现在 要将 该项目工程 上传至 CVS 库, 右键点击该项目名称, 在弹出的 上下文菜单中 ,选择
Team > Share Project...     选择刚才已经建好的 CVS 库,之后用默认选项的方式,按Next  直至  finish

                                                                                  示图cvs011

宋延军的博客专用图片

                                                                                  示图cvs012

宋延军的博客专用图片

                                                                                 示图cvs013

宋延军的博客专用图片

                                                                                 示图cvs014

宋延军的博客专用图片

                                                                                 示图cvs015

宋延军的博客专用图片

                                                                                 示图cvs016

宋延军的博客专用图片

                                                                                 示图cvs017

宋延军的博客专用图片

                                                                                 示图cvs018


宋延军的博客专用图片





Over !!!


原创粉丝点击