您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 08 使用CVS 进行版本控制
18使用CVS进行版本控制大型项目的开发具有持续性和团队性。持续性要求在相当长的时间内维护量的文件,如果保`存文件的最新版本,就会丢失版本的变化情况,当需要恢复到最新版本前的状态时就显得无能为力。对所有的版本进行简单的备份看似可行,但是由于项目开发的团队性,简单地备份很容易造成版本的混乱。因此,一个好的项目,版本控制工具不可或缺。Eclipse集成了业界标准的版本控制系统CVS,不仅很好地实现版本控制的功能,更重要地是,可以为团队开发提供更加灵活和开放的选择。项目的资料可以存储在一个CVS服务器内,不同的开发者甚至可以采用不同的开发工具,只要这些工具都支持CVS。本章首先简单地介绍一下CVS的基础知识,然后重点讲述如何在Eclipse中使用CVSz版本控制。8.1本地版控制Eclipse中内置一定程度的版本控制功能,即使没有任何版本控制工具,Eclipse依然可以跟踪工作台中源代码和其它文件的更改。简单的版本控制机制称为“本地历史”(LocalHistory)。用户可以在本地历史的机制下选择“比较对象”、“替换为”、“从本地历史中恢复”等选项。其中“比较对象”和“替换为”功能允许查看几个版本文件之间的差别。“替换为”功能可以回退到文件的不同版本,“从本地历史中恢复”允许用户恢复以前删除的文件及文件中的方法或变量。在Eclipse中,用户每次对文件的编辑在保存后都会留下记录,可以随时与历史记录比较,以便恢复到某一个时刻的状态。8.1.1比较操作“在包资源管理器”视图中选择要进行比较操作的文件,单击右键,在弹出的下拉菜单中选择【比较对象→本地历史记录】,如图8-1所示。之后出现如图8-2所示画面,在此画面中可以清楚地看出各个版本之间的区别。左上角的窗格显示可用的版本,版本按日期排序。右上角的窗格显示编译单元,其中可选择比较哪些内容,既可以比较整个类,也可以比较单个方法。左下角的窗格显示当前加载的工作区文件,右下角窗格显示的是在右上角的“本地历史记录”窗格选择的文件。两者相比较,不同之处都用框和线标出,显得清晰明。8.1.2替换操作替换功能可以让用户选择另一个文件版本来替换当前加载的文件版本。如果希望加载先前版2本,首先要在“包资源管理器”视图中选择要进行替换操作的文件,单击右键,在弹出的下拉菜单中选择【替换为→本地历史记录】,如图8-3所示。之后出现如图8-4所示画面,此界面和比较操作的界面类似。使用右面窗格右上角的箭头可以转到文件的前一个或者下一个不同之处。点击【替换】按钮,右面窗格历史记录的文件会替换左边窗格里当前版本的文件。8.1.3本地版本控制机制本地历史”中的每次编辑由保存文件的日期和时间给出惟一的标志,但是只有文件才具有本地历史,项目和活页夹则不具备。编辑的次数多,保留所有的本地历史将是一件痛苦的事情,不仅繁琐,还占据量的磁盘空间。幸好Eclipse允许配置“本地历史”文件能够保留的时间,每个文件的多少次修改可以保留在本地历史中,以及使用的磁盘空间。可以选择菜单栏的【窗口→首选项】,如图-5所示,在弹出的“首选项”对话框中展开【工作台】,选择其中的【本地历史记录】进行配置,如图8-6所示。在图中可以看出,可以设置“文件保存天数”、“每个文件的条目数”和“最文件小”等选项。其中“文件保存天数”表示所维护的本地历史记录中文件保存的最长时限,Eclipse将丢弃超过此期限的历史记录,默认值是7天。“每个文件的条目数”指的是将在本地历史记录中维护的每个文件的历史记录状态的条目数,默认条目数是50,即每个文件最多可维护50个版本。“最大文件小”表示在历史记录中版本的小限制,如果文件小超出此限制,将不存储。此选项的默认值是1MB。38.2CVS的基础知识为了使以前没有接触过CVS的读者对CVS有个致的解,方便后续学习,先来介绍一下CVS的基础知识。并发版本系统(ConcurrentVersionsSystem,简称CVS)是基于Unix体系中成熟的版本控制软件SCCS(SourceCodeControlSystem)和RCS(RevisionControlSystem)开发的开放源码的软件。由于其强大的版本控制功能,目前已成为开放源码组织使用的标准版本控制系统,而得以在几乎所有的开放源代码项目中使用。由于开放源码项目的开发者分布广,因此对版本管理的要求也就更加严格。作为一个版本控制软件,CVS正因为具有协调和集成对源代码的更改,管理团队所提交工作的历史记录等核心功能,才使得开源项目的控制管理变得简单方便。CVS采用客户机/服务器体系,代码以及各种版本存储在中心服务器内。通过建立一个资源库,CVS得以保存源代码的全部历史、编译环境、运行环境、系统资料、测试系统和软件文档的全部版本。在CVS资源库中,代码以模块的形式组织起来,每个模块完成一种特殊的功能。每一个个体开发者开发时,首先从服务器上获得一份相关资源的拷贝到自己的本地工作空间,并在此基础上进行开发,以避免直接影响服务器上的资料。开发者可以随时把自己的更新代码提交给服务器,并通过更新获得代码的最新状态,保持与其它开发者的一致。CVS系统结构如图8-7所示。在CVS中,所有的文件都用一个同步的版本标记来记录,因此可以对整个项目的代码进行统一的版本管理。由于项目文件的主拷贝和开发者具有的本地工作空间分开的特点,这使得开发者可以根据自己的需要对本地工作空间的代码进行更改而不会影响主拷贝,而任何开发者对文件改动之后,其它开发者都可通过更新文件状态解谁进行了更新和进行哪些更新。CVS使用分支模型来支持相互立但仍相互依赖的多项工作。在资源库中,一个名为HEAD的特殊分支表示工作的主线。分支可以视为开发团队可随时更新的共享工作区,开发团队可以在分支中共享和集成他们正在执行的工作。分支模型允许开发团队成员在项目文件更改时与其它成员共享他们的工作区,及在项目进展时解其它成员的工作。虽然可以在本地工作空间中更改资源而不影响分支,但是团队成员必须显式地将他们更改过的资源提供给分支。因为在本地工作空间进行更改时,开发者的工作是立于团队其它成员进行的,在团队成员完成新的工作以后,有必要通过将更改提交至分支来共享自己的工作成果。同样,当团队成员想要获取最新的可用工作成果时,可以将本地工作空间更新为分支上的更改。当团队成员提交新的工作成果时,分支就不断地更改并向前发展。分支有效地表示项目的当前状态,故而在任何时候,团队成员都可以从分支更新本地工作空间。8.3Linux环境下CVS服务器的安装和配置Linux环境一般缺省安装有CVS服务器,但并不一定是最新版本。下面简要介绍一下Linux环境下如何安装(如果未安装)和配置CVS服务器。8.3.1CVS服务器的安装4下面以RedHatLinux9为例介绍CVS服务器的安装步骤。(1)从网址。(2)RedHatLinux9缺省安装有CVS,可以通过如下命令查看系统是否安装CVS。[root@VLinuxroot]#rpm-qa|grepcvs如果出现rpm-ecvs-1.11.2-10,说明已经安装有CVS,可以通过如下命令卸载。[root@VLinuxroot]#rpm-ecvs-1.11.2-10(3)以超级用户登录,到存放安装文件的目录下,敲入如下命令[root@VLinuxsrc]#tarzxvfcvs-1.12.9.tar.gz[root@VLinuxsrc]#cdcvs-1.12.9[root@VLinuxcvs-1.12.9]#./configure--prefix=/usr/local/cvs--exec-prefix=/usr--disable-server-flow-control[root@VLinuxcvs-1.12.9]#make[root@VLinuxcvs-1.12.9]#makeinstall如果没有出现错误信息,就说明CVS服务器已经安装完成。8.3.2CVS服务器的配置安装好CVS服务器后,要对服务器进行一些配置,配置过程如下。(1)启动CVS服务。Linux上CVS服务可以通过inetd、xinetd或tcpwrapper等来启动,由于安全性理由inetd在许多场合已经被xinetd所取代。这里使用xinetd来启动CVS服务。在/etc/xinetd.d目录下为CVS服务创建一个配置文件,比如/etc/xinetd.d/cvspserver,编辑/etc/xinetd.d/cvspserver,输入如下内容:servicecvspserver{disable=nosocket_type=streamwait=nouser=rootenv=HOME=server=/usr/bin/cvsserver_args=-f--allow-root=/home/cvsrootpserver}。键入如下命令以重新启动xinetd:[root@VLinuxroot]#/etc/rc.d/init.d/xinetdrestartxinetd服务重新启动后,CVS服务开始工作。(2)初始化CVS服务器。在服务器的初始化过程中,CVS服务器将创建所需的系统文件,如存放一些配置文件的CVSROOT目录。[root@VLinuxroot]#cvs-d/home/cvsrootinit接着可以创建一个名为cvs的组和一个名为cvsroot的用户,以后访问CVS服务的用户都要加入cvs这个组。命令如下:[root@VLinuxroot]#groupaddcvs5[root@VLinuxroot]#useradd-gcvs-Gcvs-d/home/cvsroot-s/sbin/nologincvsroot[root@VLinuxroot]#chmod755/home/cvsroot最后用下面的命令设置权限:[root@VLinuxroot]#chown-Rcvsroot.cvs/home/cvsroot[root@VLinuxroot]#chmod-Rug+rwx/home/cvsroot[root@VLinuxroot]#chmod644/home/cvsroot/CVSROOT/config(3)建立CVS用户。分别为CVS服务器建立两个账户user1和user2:[root@VLinuxroot]#vi/home/cvsroot/CVSROOT/passwduser1:12345:cvsrootuser2:67890i:cvsroot为这两个用户设置权限:[root@VLinuxroot]#vi/home/cvsroot/CVSROOT/writersuser1上述命令用于为用户user1设置读写权限,下面的命令用于为用户user2设置读权限:[root@VLinuxroot]#vi/home/cvsroot/CVSROOT/readersuser2(4)输入命令测试。用命令:[root@VLinuxroot]#cvs-d:pserver:user1@host:/home/cvsrootlogin登录,输入user1的口令,如果没有错误就表示配置成功。8.4Windows环境下CVS服务器的安装和配置CVS服务器以前常运行在Linux系统下,但随着Windows平台下的CVS服务器的推出,CVS在Windows平台上的应用也越来越广泛。下面详细介绍Windows版本的CVS服务器CVSNT的安装与配置。8.4.1CVS服务器的安装可以从网址下载Windows版本的CVS服务器CVSNT,目前的最新版本是cvsnt-2.5.01.1976。双击安装文件,一路“Next”就可以完成安装过程。安装完以后会要求重启系统。8.4.2CVS服务器的配置(1)进入系统管理员账户,选择任务栏的【开始→所有程序→CVSNT→CVSNTcontrolpanel】,进入CVSNT控制面板,如图8-8所示。67
本文标题:08 使用CVS 进行版本控制
链接地址:https://www.777doc.com/doc-3160716 .html