为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于CVS的版本控制系统服务器安装与维护_毕业论文设计

2017-09-26 48页 doc 334KB 8阅读

用户头像

is_594905

暂无简介

举报
基于CVS的版本控制系统服务器安装与维护_毕业论文设计基于CVS的版本控制系统服务器安装与维护_毕业论文设计 [ ] 题 目,基于CVS的版本控制系统服务器安装与维护 学 院, 电气与信息工程学院 专 业, 电子信息工程 河南城建学院本科毕业设计(论文) 摘要 摘要 随着软件行业的蓬勃发展,工业设计、商业开发越来越离不开软件系统的支持和运作,软件系统不单单是提高了工业系统的工作效率,更重要的是它大大节省了项目成本,降低了项目风险,提高了项目运算的精细程度,增强了企业管理效益。所以说,作为一款具有纽带作用的版本控制系统CVS,不仅仅是互联网从业者的必修课,也是工科类从业...
基于CVS的版本控制系统服务器安装与维护_毕业论文设计
基于CVS的版本控制系统服务器安装与维护_毕业论文设计 [ ] 题 目,基于CVS的版本控制系统服务器安装与维护 学 院, 电气与信息工程学院 专 业, 电子信息工程 河南城建学院本科毕业设计(论文) 摘要 摘要 随着软件行业的蓬勃发展,工业设计、商业开发越来越离不开软件系统的支持和运作,软件系统不单单是提高了工业系统的工作效率,更重要的是它大大节省了项目成本,降低了项目风险,提高了项目运算的精细程度,增强了企业管理效益。所以说,作为一款具有纽带作用的版本控制系统CVS,不仅仅是互联网从业者的必修课,也是工科类从业者必须了解的范畴。 详细叙述中渗透CVS的专业术语、命令语句。在安装与维护的叙述中,主要是以安装CVSNT(Windows环境下的CVS服务器)和WinCVS(Windows环境下的CVS客户端)来实战叙述设计中的每一步。一方面使自己掌握CVS版本控制系统的安装与维护使用,另一方面,使自己真正从设计中学习到知识技能。 本设计主要完成了CVS的版本控制系统的安装与维护,详细讲述CVS版本控制系统的由来、基本概念、工作模式、工作原理,以及CVS版本控制系统在Windows环境和Linux环境下的客户端和服务器配置,并完成了CVS版本控制系统在项目中的实践应用。 关键词:安装与维护,CVS,CVSNT,WinCVS,服务器,CVS命令 I 河南城建学院本科毕业设计(论文) Abstract Abstract With the development of the software industry, industrial design, commercial development is becoming more and more cannot do without the support and operation software system, software system not only improves the industrial efficiency of the system, the more important is that it saves the project cost, reduce the project risk, improve fine degree project operation, enhances the enterprise management efficiency. So, as a link between the version control system CVS, not only is a compulsory course in the Internet practitioners, but also engineering practitioners must understand the category. This design is mainly and maintenance of CVS version control system based on the origin, installation, details about the CVS version control system's basic concept, working mode, working principle, as well as the CVS version control system in Windows environment and Linux environment of the client and server configuration method. Of course, in the details gradually penetrate professional terminology, command of some CVS. In the installation and maintenance of the narrative, the main is to install the CVSNT (Windows environment, CVS server) and WinCVS (Windows environment under the CVS client) to combat the narrative for each step in the design of. On the one hand, let oneself really learn from the design to the actual combat skills and knowledge, on the other hand, with the CVS version control system can refer to the installation and maintenance manual to want to quickly learn, learning the CVS version control system colleagues. Keywords: installation and maintenance, CVS, CVSNT, WinCVS, server, CVS command II 河南城建学院本科毕业设计(论文) 目录 目录 摘要.................................................................................................................................I Abstract ......................................................................................................................... II 目录.............................................................................................................................. III 1 绪论............................................................................................................................ 1 1.1研究背景与目的.............................................................................................. 1 1.2 课题设计的意义............................................................................................. 1 1.3课题国内外研究状况...................................................................................... 2 1.4课题研究比较.......................................................................................... 3 1.5论文的结构...................................................................................................... 3 2 基于CVS的版本控制系统介绍 .............................................................................. 5 2.1 什么是CVS .................................................................................................... 5 2.2 CVS的基本概念 ............................................................................................. 5 2.3 CVS的工作模式和工作思路 ......................................................................... 6 2.4 CVS代码的集中配置与调整 ......................................................................... 7 2.5 CVS的典型功能 ............................................................................................. 8 3 Windows下CVS服务器与客户端的配置............................................................. 10 3.1 Windows下CVS服务器的配置.................................................................. 10 3.2 Windows下CVS客户端的配置.................................................................. 13 3.2.1 配置WinCVS .................................................................................... 16 3.2.2 登录WinCVS服务器 ....................................................................... 17 3.2.3 新建模块............................................................................................ 17 3.2.4 Checkout模块 .................................................................................... 18 3.2.5 update和commit文件....................................................................... 18 3.2.6 Add文件 ............................................................................................. 18 3.2.7 Remove文件 ...................................................................................... 19 3.2.8 Remove空目录 .................................................................................. 19 4 Linux下CVS服务器与客户端的配置 .................................................................. 20 4.1 Linux下CVS服务器的配置 ....................................................................... 20 4.1.1 创建cvs组并加入用户 .................................................................... 20 4.1.2 创建一个仓库.................................................................................... 20 4.1.3 装入源代码........................................................................................ 20 4.1.4 设置权限............................................................................................ 21 4.1.5 设置开机自动运行CVS ................................................................... 22 4.2 Linux下CVS客户端的配置 ....................................................................... 23 4.2.1 连接CVS服务器 .............................................................................. 23 4.2.2 登录CVS服务器 .............................................................................. 24 4.2.3 拷贝相应模块代码并进行开发........................................................ 24 5 项目中CVS的版本控制 ........................................................................................ 25 5.1 将项目提交到CVS服务器 ......................................................................... 25 5.2 将项目下载到CVS客户端 ......................................................................... 25 5.3 将更改的项目提交到CVS服务器 ............................................................. 26 III 河南城建学院本科毕业设计(论文) 目录 5.4 将CVS服务器中的更改更新到CVS客户端 ........................................... 26 5.5 版本控制系统服务器安装与维护注意事项............................................... 27 6 CVS版本控制系统的开源化 .................................................................................. 28 6.1 CVS开源方向 ............................................................................................... 28 6.2 CVS与Araxis Merge配套使用 ................................................................... 28 6.3 CVS与Eclipse配套使用 ............................................................................. 29 结论.............................................................................................................................. 30 致谢.............................................................................................................................. 31 参考文献...................................................................................................................... 32 附录.............................................................................................................................. 33 附录A:CVS中常用专业术语 ......................................................................... 33 附录B:CVS工作拓扑图及CVS客户端和服务器界面 ............................... 34 IV 河南城建学院本科毕业设计(论文) 绪论 1 绪论 1.1研究背景与目的 一个项目往往有多人参与,如何协调各个人的开发工作,就成为项目开发小组需要直接面对的问题。一般的解决方案是采用版本控制系统,如微软的VSS,开源的CVS以及Subversion等等。 Eclipse对团队开发提供了默认的支持,其内置了CVS的客户端。所以我们只需安装一个CVS服务器端就可以进行项目开发的版本控制了。在这次毕业设计中我选择了windows平台下的cvsnt来作cvs服务器。 随着软件团队人员的增加,软件版本不断变化,时间的紧缺,多种平台的复杂环境,使得版本控制软件已成为当今软件开发人员(工程人员和管理者)所必须的工具。CVS采用典型的Client/Server 结构,开发团队能够跨越网络跨平台进行分布式操作。在软件开发环境中,CVS 自动追踪每一种对象类型(包括源代码、二进制文件、目录内容、可执行文件、文档、测试包、编译器、库文件)等变更情况,通过分支和归并功能支持并行开发。直接解决了原来开发团队所面临的难以处理的问题。 在各种具体方案应用之前,安装和配置 CVS 服务器,并学会简单的使用是第一要务。本设计就CVS的安装配置和简单使用做一介绍,并对CVS在项目应用中做基础的工程实践。 1.2 课题设计的意义 CVS(Concurrent Versions System)版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。Concurrent有并发的、协作的、一致的等含义。实际上CVS可以维护任意文档的开发和使用,例如共享文件的编辑修改,而不仅仅局限于程序设计。CVS维护的文件类型可以是文本类型也可以是二进制类型。CVS用Copy-Modify-Merge(拷贝、修改、合并)变化表支持对文件的同时访问和修改。它明确地将源文件的存储和用户的工作空间独立开来,并使其并行操作。CVS基于客户端/服务器的行为使其可容纳多个用户。这一特性使得CVS成为位于不同地点的人同时处理数据文件(特别是程序的源代码)时的首选。所有重要的免费软件项目都使用CVS作为其程序员之间的中心点,以便能够综合各程序员的改进和更改。这些项目包括GNOME、KDE、THE GIMP和Wine等。 所以说关于CVS的版本控制系统的安装与维护具有诸多意义,例如: 1 河南城建学院本科毕业设计(论文) 绪论 修改软件时可能会不知不觉混进一些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或脚本,且必须知道其它一切的相对位置,有时不得不检出整个仓库。 CVS如果你将你的工作模块化,并且建立了一个共享文件的build系统(通过links,mounts,Makefiles 里的VPATH等),你就可以随意安排磁盘的使用。 CVS你应该在CVS下放一个工具来支持这样一个构造系统(脚本、Makefile 等等)。 CVS有些变化发生在CVS范围之外时,要想想什么文件需要重建。一个传统的方法是用make来构造,并用一些自动化的工具来产生make所用的相关文件。 1.3课题国内外研究状况 目前业界主流的版本维护工具有ClearCase、Visual Source Safe以及本设计将要详细介绍的CVS,下面逐一进行简要介绍。 1)ClearCase ClearCase 由Rational 公司开发,它支持UNIX 系统,混合平台开发,除了支持图形界面以外,还支持命令行格式的操作。它是一种功能强大、复杂的软件配置管理工具,版本控制是该软件的主要功能之一。 ClearCase 包括两套:ClearCase LT 和ClearCase(MultiSite)。前者可以用于在同一个局域网的开发小组,适合于中小型开发组织;ClearCase(MultiSite)则适应于分布于不同地理位置、不同局域网的开发小组,适合于大型的开发组织。ClearCase LT 由ClearCase LT Server 和ClearCase LT Client 两个部分组成,其中服务器部分负责数据的集中管理;客户端部分则安装在各个需要使用ClearCase 服务的机器上,以及主要开发人员的计算机上,属于典型的Client/Server 结构。 2)Visual SourceSafe 2 河南城建学院本科毕业设计(论文) 绪论 Visual SourceSafe 是微软公司开发的版本控制系统,可管理软件和 Web 站点的开发。Visual SourceSafe 可以处理由各种开发语言、创作工具或应用程序所创建的任何文件类型。与CVS 相比,Visual SourceSafe 的最大特点是用户可以同时在文件和项目级进行工作。Visual SourceSafe 面向项目的特性能更有效地管理工作组应用程序开发或 Web站点开发工作中的日常任务。 3)CVS CVS是自由软件社区最流行的版本控制系统,为BSD(FreeBSD,NetBSD等)和许许多多大大小小的软件项目所采用。CVS 是并行控制系统的缩写,这是一个将一组文件放在层次目录树中以保持同步的系统。与前述的两个商业软件不同,CVS 是开放源代码的版本控制系统。但作为许多开放源码项目选用的版本管理软件,CVS 在版本控制方面与前两者相比并不逊色,可以说是各有千秋。在代码管理上,与上述的两种商业版本控制软件的unlock-modify-lock 的模式不同;CVS 采用的模式是copy-modify-merge 的模式,在实际应用中,理解这一模式与其他模式的区别,才能更好的制定日常的维护和操作的准则。 1.4课题研究方案比较 关于CVS的版本控制系统服务器安装与维护,在安装与维护的系统层面上来说,目前比较广泛流行的操作系统有Windows和Linux。 1)CVS在Windows系统上的安装与维护 Windows系统作为目前全球市场份额最多的操作系统,有着无与伦比的优势和大众化性能。在工业设计、工业开发上,Windows可视化界面降低了开发门槛和技术难度。就本设计来说,无论是在Windows系统上搭建CVS平台,还是在Windows系统上操作控制CVS平台及服务器,都大大降低了难度。 2)CVS在Linux系统上的安装与维护 相比Windows系统,Linux系统的不可视化使得Linux本身在使用上就困难重重,必须学习相关语言命令,才能很顺畅的操作Linux系统进行日常工作。从这一点上来讲,Linux系统并不太适合本设计的课题研究。 1.5论文的结构 本文主要由六个章节组成: 第一章 主要阐述了本文研究的主要背景和目的,以及课题设计的意义,综合概括了国内外课题研究现状。 第二章 主要围绕CVS的基本概念,工作模式,工作思路,以及CVS的集 3 河南城建学院本科毕业设计(论文) 绪论 中配置调整,来叙述CVS的基本功能以及要使用到的专业术语。 第三章 主要详细展示Windows环境下CVS服务器与客户端安装与配置方法。 第四章 主要详细展示Linux环境下CVS服务器与CVS客户端安装与配置方法。 第五章 主要演示了在搭建好的CVS服务器环境和客户端环境下项目中CVS版本控制的应用。 第六章 主要阐述了CVS版本控制系统的开源化对于协同工作,或者对于大型软件系统开发的影响,以及介绍了两款与CVS版本控制系统配合使用的软件。 4 河南城建学院本科毕业设计(论文) 基于CVS的版本控制系统介绍 2 基于CVS的版本控制系统介绍 2.1 什么是CVS CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。CVS版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。与它相类似的代码版本控制软件有Subversion。 2.2 CVS的基本概念 1)Repository(仓库) CVS 的仓库存储全部的版本控制下的文件copy,通常不容许直接访问,只能通过cvs命令,获得一份本地copy,改动后再check in(commit) 回仓库。而仓库通常为与工作目录分离的。CVS通过多种方式访问仓库。每种方法有不同目录表示形式。数据如何存放在repository中:随着CVS版 本的不同,存放结构会发生变化,一般情况下用户无需了解数据到底是如何存放的。 )Revision(修订版) 2 每 一个file的各个revision都不相同,形如1.1, 1.2.1,一般1.1是该文件的第一个revision,后面的一个将自动增加最右面的一个整数,比如1.2, 1.3, 1.4...有时候会出现1.3.2.2,原因见后。revision总是偶数个数字。一般情况下将revision看作时CVS自己内部的一个编号,而tag则可以标志用户的特定信息。 3)Tag(标签) 用符号化 的表示方法标志文件特定revision的信息。通常不需要对某一个孤立的文件作tag,而是对所有文件同时作一个tag,以后用户可以仅向特定tag的 文件提交或者checkout。另外一个作用是在发布软件的时候表示哪些文件及其哪个版本是可用的;各文件不同revision可以包括在一个tag中。 如果命名一个已存在的tag默认将不会覆盖原来的; 4)Branch(分支) 当用户修改一个 branch时不会对另外的branch产生任何影响。可以在适当的时候通过合并的方法将两个版本合起来;branch总是在当前revision后面加上一个偶数整数(从2开始,到0结束),所以branch总是奇数个数字,比如1.2后面branch为1.2.2,该分支下revision可能为 1.2.2.1,1.2.2.2,... 5 河南城建学院本科毕业设计(论文) 基于CVS的版本控制系统介绍 5)Conflict(冲突) 完全是纯文本的冲突,不包含逻辑上的矛盾,比如CVS不能解决如下问题:某人修改了函数f的参数,而另外一个人在另外一个地方用老的参数调用该函数。文本冲突需要用户自己参与解决,CVS无法自动解决。 )Module(模块) 6 CVS服务器根目录下的第一级子目录。通常用于存放一个项目的所有文件 7)Check out(检出) 通常指将仓库中的一整个模块首次导出到本地。 8)Check in(导入) 通常指通过提交整个目录结构并创建一个新的模块。 9)Release(发行版本) 整个产品的版本 10)Update(更新) 从模块中下载其他人的修改过的文件。更新本地的拷贝。 11)Commit(提交) 将自己修改过的文件提交到模块中。 2.3 CVS的工作模式和工作思路 CVS(Concurrent Versions System)版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。Concurrent有并发的、协作的、一致的等含义。实际上CVS可以维护任意文档的开发和使用,例如共享文件的编辑修改,而不仅仅局限于程序设计。CVS维护的文件类型可以是文本类型也可以是二进制类型。CVS用Copy-Modify-Merge(拷贝、修改、合并)变化表支持对文件的同时访问和修改。它明确地将源文件的存储和用户的工作空间独立开来,并使其并行操作。CVS基于客户端/服务器的行为使其可容纳多个用户。这一特性使得CVS成为位于不同地点的人同时处理数据文件(特别是程序的源代码)时的首选。 所有重要的免费软件项目都使用CVS作为其程序员之间的中心点,以便能够综合各程序员的改进和更改。这些项目包括GNOME、KDE、THE GIMP和Wine等。 在一台服务器上建立一个源代码库,库里可以存放许多不同项目的源程序。由源代码库管理员统一管理这些源程序。每个用户在使用源代码库之前,首先要把源代码库里的项目文件下载到本地,然后用户可以在本地任意修改,最后用CVS命令进行提交,由CVS源代码库统一管理修改。这样,就好像只有一个人在修改文件一样,既避免了冲突,又可以做到跟踪文件变化等。 6 河南城建学院本科毕业设计(论文) 基于CVS的版本控制系统介绍 CVS是并发版本系统(Concurrent Versions System)的意思,主流的开放源码网络透明的版本控制系统。CVS对于从个人开发者到大型、分布团队都是有用的。 它的客户机/服务器存取方法使得开发者可以从任何因特网的接入点存取最新的代码。它的无限制的版本管理检出(check out:注1)的模式避免了通常的因为排它检出模式而引起的人工冲突。它的客户端工具可以在绝大多数的平台上使用。 CVS被应用于流行的开放源码工程中,像Mozilla,GIMP,XEmacs,KDE和GNOME等。那么它到底怎么样, 你可能会说,它非常棒,但是对于"我"来说它能做什么,首先,基本的 :一个版本控制系统保持了对一系列文件所作改变的历史记录。对于一个开发者来说,那就意味着在你对一个程序所进行开发的整个期间,能够跟踪对其所作的所有改动的痕迹。对你来说,有没有出现过由于在命令行上按错键而导致一天的工作都白费的情况呢,版本控制系统给了你一个安全的网络。 版本控制系统对任何人都有用,真的。(毕竟,谁不愿意使用一个安全的网络呢,)它们经常被软件开发团队使用。在团队中工作的开发者需要能够调整他们的各自的修改;一个集中式版本控制系统允许那样做。 2.4 CVS代码的集中配置与调整 个人开发者希望一个版本控制系统的安全网络能够运行在他们的本地的一台机器上。然而,开发团队需要一个集中的服务器,所有的成员可以将服务器作为仓库来访问他们的代码。在一个办公室中,没有问题 --只是将仓库连到本地网络上的一台服务器上就行了。对于开放源码项目…噢, 还是没有问题,这要感谢因特网。CVS内建了客户机/服务器存取方法,所以任何一个可以连到因特网上的开发者都可以存取在一台CVS服务器上的文件。 在传统的版本控制系统中,一个开发者检出一个文件,修改它,然后将其登记回去。检出文件的开发者拥有对这个文件修改的排它权。没有其它的开发者可以检出这个文件-- 并且只有检出那个文件的开发者可以登记(check in:注2)所做的修改。(当然对于管理员有很多方法可以超越这个限制。) 想一下排它的检出可能会如何工作:Bob的兄弟检出 foo.java以便加入注释,写好代码后他什么也没做。然后他去吃午饭了。Bob吃完午饭后,发现他的老板所指给他的一个bug在 foo.java里。他试图检出 foo.java … 但是版本控制系统不允许他这样做,因为他的兄弟已经把它检出了。Bob不得不等着他的兄弟吃完午饭回来(在这个"好"日子用了两个小时),他才可以修正bug。 7 河南城建学院本科毕业设计(论文) 基于CVS的版本控制系统介绍 在一个大型的开放源码工程中,因为开发者可能在任意的时区工作得很晚,给予一个开发者阻止任意地方的其它开发者继续处理任意文件的能力很明显无法运转。他们最终将因为不能够在他们想要的时候开展项目而感到厌烦。 CVS通过它的无限制的检出模式解决了这个问题。检出一个文件并不给定开发者对那个文件的排它权。其它的开发者也可以对其检出,进行他们自己的修改,并且将其登记回去。 详细地回答就是当多个开发者对同一个文件作了修改CVS会检测,并且自动合并那些改变。 不用担心,CVS会很小心,并且将会自动合并那些只要不是对代码的同一行所作的改动。如果CVS不能安全的处理这些改动,开发者将不得不手工合并它们。 有大量在许多平台上可用的CVS附加工具,它们给CVS增加了功能或使得CVS更容易使用。 2.5 CVS的典型功能 1)替代管理 你的经理和项目负责人应经常与你交流以确保你时时记得进度表、合并点、分支名和发布日期。如果他们不这样做,cvs 也没用。cvs 只是一个用来使你的资源与你的步调一致的工具。但你是风笛手和作曲家,没有哪种乐器会自己演奏或是作曲。 不能代替开发者之间的交流。在单个文件内遇到冲突时,大多数开发者不费多大力气就能解决它们。但更常见的"冲突(conflict)",是那些难度较大、不在开发者之间进行交流就没法解决的问题。 当在一个文件内或多个文件中同时发生变化时,cvs 并不知道何时它们会在逻辑上发生冲突。它的冲突(conflict)概念是纯粹文本意义上的,这种冲突会在同一个文件的两种变化十分接近以致于会破坏合并命令(如diff3)。 CVS决不会指出程序逻辑上非文本或分布式的冲突。例如:假如你改变了在文件A 中定义的函数X 的参数。同时,别人在编辑文件B,仍用旧参数调用 X 这个函数。此时产生的冲突 cvs 可就无能为力了。 2)变化控制 变化控制可以指许多事情。首先它的意思可以是 BUG 跟踪bug-tracking,就是说它能维持一个数据库,其中包括已报告的 BUG 和每一个 BUG 状态 (是否已更正,在哪一个版本中,提交这个 BUG 的人是否认为已经更正,)。为了使 cvs 和一个外部的跟踪 BUG 系统协调一致,请参考 rcsinfo 和 verifymsg文件(参阅 Administrative files)。 8 河南城建学院本科毕业设计(论文) 基于CVS的版本控制系统介绍 变化控制的另一个方面指跟踪这样的情况,即对好几个文件的改变实际上只是同一个逻辑变动。如果你在一次 cvs commit 操作中检入几个文件,cvs 会忘掉它们是一起检入的,它们共用一个 LOG 信息的事实只是把它们绑在一起而已。做一个 gnu 风格的 ChangeLog 可能会有点用。在一些系统中,变化控制的另一个方面是跟踪每个变化的状态的能力。一些变化由一个开发者写出,而另一些变化则由另一个开发者来作出评论,等等。一般来讲,用 cvs 来做,是产生一个 diff(用 cvs diff 或 diff),并且用电子邮件寄给某人,此人就可以用 patch 来应用它。这是非常灵活的,但依赖于 cvs 之外的机制以保证事情不会崩溃。 3)自动测试 强制利用 commitinfo文件测试套件应该是可能的。不过我没有听说过多少项目试图那样做或那里有微妙的陷阱。 4)内置处理 有些系统提供一些方法确保变更或发布通过不同的步骤,以及各种所需的批准过程。一般地,你可以用 cvs 来完成它,但是可能要多做点工作。有些情况下你想用 commitinfo、loginfo、rcsinfo 或 verifymsg文件,要求在 CVS 提交之前完成某些操作。你也会考虑诸如 branches 和tags等特性是否能用在一个开发树中执行任务,然后仅当它们被证实就把某些修改合并到一棵稳定的树中。 CVS 还有一个更加重要的特性:能记下每个文件的每次修改,以及如何被修改…对于基于 Internet 的合作方式来说,这些特性太重要了。一个地域上分散的自愿者组织显然不可能投入很多的时间来训练其成员彼此合作。因为这样的话,当该组织有成员变更的时候,为此付出的投资将损失殆尽。所以需要指定一套基本的项目分配方案,以确保新成员能较容易的适应工作,同时也需要设置一个自动的系统来接受外来代码,并使每个成员能及时得到最新修改的代码。 9 河南城建学院本科毕业设计(论文) Windows下CVS服务器与客户端的配置 3 Windows下CVS服务器与客户端的配置 3.1 Windows下CVS服务器的配置 CVS是目前最常用的版本控制和软件配置系统。其开源性在其普及的过程中功不可没,然而正因为开源造成了其易用性较差。往往一个功能需要通过几个看似不相干的操作配合才能进行。Windows下CVS的多帐户配置正是这样一个相当重要的,但很不好操作的功能。几个难点如下: CVS源自Unix系统,其Windows的移植版并没有服务器功能。在Windows下一般采用安装CVSNT这个软件来建立CVS Repository,但CVSNT的操作方法和原始的CVS略微不同。CVS本身是命令行形式,其配置过程比较繁杂。 CVS的多帐户配置需要手动修改Repository的CVSROOT文件夹里的文件,缺乏统一的界面。在安装了CVSNT服务器之后,默认的用户就是建立Repository的Windows系统的登陆帐户,但在多人开发的时候,肯定没人希望大家都使用同一个名字来Commit;更重要的是,我们可能需要配置开发人员的权限,例如限制某些人只能看程序,而某些人可以Commit程序,某些人可以添加新的Module。以下是详细的步骤,环境是CVSNT 2.5.05(Gan) (Build 3489)((RCO)): 图 3-1-1 CVSNT安装截图 10 河南城建学院本科毕业设计(论文) Windows下CVS服务器与客户端的配置 图 3-1-2 CVSNT服务器界面 1、使用CVSNT建立一个Repository。假设初始使用Windows的管理员administrator密码登陆,Repository使用Pserver,IP是1.2.3.4,端口号是2401,Repository名称是/TestRep,密码是123。这时的administrator也是此Repository的管理员。 2、为了进行多用户配置,必须修改Repository的CVSROOT目录的几个文件。首先在客户端将:pserver:administrator@1.2.3.4/TestRep设为CVSROOT环境变量(请注意区分CVSROOT目录和CVSROOT环境变量)。然后用administrator登陆到CVS,最后Check Out出此CVSROOT目录。命令如下所示: cvs login //输入密码123 cvs co CVSROOT 3、在服务器端为Windows添加一个专门用于CVS操作的Windows帐户。所有的CVS帐户都要映射到这个Windows帐户上进行实际的操作。虽然很多资料并没有提到需要建立Windows帐户,但我在实验中发现没有这种帐户,CVS在后边执行任何操作时都会报告没有此帐户的错误。假如这个新的帐户叫做cvsuser。使用Windows命令 net user cvsuser cvsuserpassword /Add 可以添加此帐户。在添加完成之后,一定要记得将/TestRep在服务器上的实际文件夹的权限里添加cvsuser的读写权限,否则到最后任何映射到cvsuser的CVS 11 河南城建学院本科毕业设计(论文) Windows下CVS服务器与客户端的配置 帐户都会因为没有写权限无法进行正常的commit操作。首先在服务器上的资源管理器里的“工具”菜单里找到“文件夹选项”,在随后出现的“查看”选项卡里找到“使用简单文件夹共享”的项目,取消掉前面的勾,单击确定。然后右击/TestRep所在文件夹,单击“属性”。在随后打开的对话框里可以看到“安全”选项卡。我们需要在这里添加cvsuser的读写权限。 4、为CVS添加自己的帐户。通过使用命令cvs passwd我们可以添加任意多个CVS帐户(当然,只是针对当前的Repository)。所有的帐户信息会被保存在CVSROOT目录的passwd文件当中。然而这个文件是不能Check Out出来的,只能在服务器那里看到它,并且其保存的密码信息是被加过密的。我们可以添加cvsadmin,user1,user2,anonymous等用户。例如添加cvsadmin时的命令是: cvs passwd -a -r cvsuser cvsadmin //输入cvsadmin的密码 //再次输入cvsadmin的密码 5、这样就新添了cvsadmin帐户,并将其映射到Windows帐户cvsuser上(-a表示添加一个账户,-r表示影射到操作系统的帐户中。我期望将cvsadmin作为以后/TestRep的管理员。这一点十分重要,如果这时候不设置的话,再将CVS改为“仅使用CVS帐户校验模式”之后就再也没有机会添加管理员了(因为只有管理员可以看得到和操作CVSROOT目录)。 6、设定cvsadmin为CVS管理员。在客户端的CVSROOT目录下新添一个名为admin的文件。在里面将每一个想要升为管理员的CVS帐户的帐户名写到文件中,每行一个帐户名。当然admin文件只有放到服务器,cvsadmin的升迁才能生效。但是,仅仅是这么将admin文件提交上去是不能起作用的。在提交它之前,必须将admin的信息添加到checkoutlist文件中。checkoutlist的格式在文件中有介绍,是“空格 文件名 空格 出错信息 回车符”。我们在里面添加一条记录: admin adminerror 特别注意admin前面一定要留一个空格。 7、当新的CVS管理员和帐户信息都准备好后,就要将/TestRep的帐户校验模式从“操作系统集成校验模式”修改为“仅使用CVS帐户校验”模式。这么做可以避免为了在CVS中使用多用户时需要操作Windows帐户的麻烦。这个设置的地方在CVSROOT目录中的config文件。打开客户端的config文件,将里面的#SystemAuth=yes改为SystemAuth=no(注意将#删除后,SystemAuth前不能有空格)。修改后保存config文件。 8、提交CVSROOT里的所有更新到服务器,我们的设置就生效了。命令如下所示: 12 河南城建学院本科毕业设计(论文) Windows下CVS服务器与客户端的配置 cd CVSROOT cvs add -m "" admin cvs commit -m "" 不过在提交之前,你也许想先把CVSROOT的owner从原来的administrator修改为cvsadmin。使用命令cvs chown可以做到这一点。在提交了CVSROOT目录后,校验模式就立刻改变了,cvsadmin也同时开始生效。这时,用之前的administrator就无法使用CVS了。我们改用cvsadmin帐户重新登陆,继续下面的操作。 9、修改读写权限。CVS有两种读写权限的设置方法,一是粗粒度的,一是细粒度的。只有CVS管理员才能进行访问权限的修改。粗粒度的方法是在CVSROOT中添加readers或者writers文件来实现。在readers里添加的任何一个帐户对当前库只拥有读取权限,添加格式是每行一个帐户名。例如,我们在客户端的CVSROOT目录里添加readers文件,将之前的一个新建帐户anonymous放到里面,然后commit这个readers文件到服务器。anonymous就不能进行commit了。实际的测试结果是在使用anonymous登陆之后执行commit指令,系统会报告正常执行完毕。但实际上,没有任何东西被commit,暴露了CVS在人机界面上的不完善。writers文件的操作readers完全一样。如果一个帐户名被同时写到两个文件里,此帐户只有只读权限。细粒度的方法是使用chacl命令。例如/TestRep里有3个工程,project1、project2、project3。使用命令: cvs chacl -u user1 -a none -d project1,project2,project3 cvs chacl -u user1 -a all -d project1 cvs chacl -u user1 -a read,write -d project2 cvs chacl -u user1 -a read -d project3 可以让user1拥有对project1目录的完全控制权,对project2目录的读写权,和对project3目录的只读权。第一条命令首先删除user1的所有权限,在随后的3条命令里分别设置了3个不同目录权限。 10、使用帐户组来组织帐户。在客户端的CVSROOT目录下添加一个叫group的文件。此文件的格式是: 组名1:用户名1,用户名2,用户名3,…… 组名2:用户名5,用户名7,…… …… 修改完group文件后commit它,然后通过chacl命令可以实现组权限的修改。 3.2 Windows下CVS客户端的配置 同样,在设计中用WinCVS为例来配置CVS客户端。WinCVS是CVS的一个客 13 河南城建学院本科毕业设计(论文) Windows下CVS服务器与客户端的配置 户端程序,它以CVS作为基础,在其上构造了功能强大的GUI,使得Windows平台上的CVS用户可以轻而易举的进行协同工作。WinCVS中文版由SCMChina在英文版的基础上修改而成,除了对WinCVS的界面进行了比较彻底的中文化处理,另外还对主要的输出信息进行了中文化的处理,增强了版本比较的功能,集成了合并比较工具WinMerge,使得WinCVS能够直观地进行文件的比较。以下是WinCVS安装过程: 图 3-2-1 Wincvs 1.3版本安装过程截图 14 河南城建学院本科毕业设计(论文) Windows下CVS服务器与客户端的配置 图 3-2-2 安装文件夹选择系统默认 图 3-2-3 安装中截图 15 河南城建学院本科毕业设计(论文) Windows下CVS服务器与客户端的配置 图 3-2-4 安装完成,WinCVS界面一览截图 3.2.1 配置WinCVS 选择Admin->Preferences…,在出现的界面上进行一般选项的设置: 1) Authentication:用来配置cvs服务器的认证方式,可以从下拉框中选择其它的认证方式,不过一般只要选择默认的pserver方式就可以,要注意的是必须与cvs服务器配置时所指定的认证方式一致; 2) Path:用来配置cvs在服务器上的主目录路径,也就是服务器上用进行cvs初始化的目录,如:/home/cvsroot; 3) Host Address:用来配置cvs服务器所在服务器的地址,可以是IP地址,也可以是DNS名,如:10.104.1.204; 4) User name:用来配置要使用些WinCVS来登录CVS服务器的用户名,如:cvsyxwu,用户的登录必须由管理员把其添加cvs用户组中; 5) CVSROOT:此项一般都不需要用户进行修改,用户在输入上边的几个选项时,系统将自动根据用户的输入生成此项的相应内容。 6) 在上一个界面上选择“Globals” ,进行全局选项的设置,此项的配置主要是要注意这几选项: 第一,Checkout read-only不要选上,否则,checkout出来的源代码将不允许用户进行修改,并且此选项默认是选中的; 第二,Prune (remove) empty directories也不要选上,否则,会自动删除空目录; 第三,对一般配置没有特殊要求的,把Dirty files support、Supply control when adding与TCP/IP compression选项选中; 16 河南城建学院本科毕业设计(论文) Windows下CVS服务器与客户端的配置 3.2.2 登录WinCVS服务器 选择Admin->login,将出现如下对话框要求用户输入登录口令。输入口令后,选择“OK”按钮,如果CVS服务器与WinCVS的配置都没出错的话,将在CVS的状态栏中提示: cvs -z9 -d :pserver:cvsyxwu@10.104.1.204:/home/cvsroot login Logging in to :pserver:cvsyxwu@10.104.1.204:2401/home/cvsroot ***** CVS exited normally with code 0 ***** code 0表示正确的登录;而如果出错的话,将是code 1,那么要根据错误的提示进行相应的修改。 3.2.3 新建模块 我们来看一下如何在cvs服务器上新建一个模块。假设在本机的CVSHOME目录中有一个demo目录,此目录中有相关的源代码或是其它的文件。我们要将这个目录作为一个模块(Module),建立到cvs服务器上去。通常服务器上已建立好了一个CVSROOT目录,专门用来存放模块用的。 现在启动WinCvs程序,在窗口左边的树形目录中找到上面所示的目录位置。如果在这里找不到这个目录,可以点击"View"菜单,再点击"Browse Location",进入"Change"菜单, 这时出现对话框,找到demo目录所在的位置,点击"确定"即可。这时,WinCvs的树形目录切换到了demo目录。在demo目录上点击鼠标右键,进入"Import Module"子菜单,选择demo目录,这时,wincvs自动识别出demo中所有文件的类型。一般源代码等是TEXT格式的,而其它如图片,OFFICE文档等是二进制格式的。如果你发现WinCvs列出的格式与实际的格式不符,可以在相应的项目上双击来修改格式。完成后按对话框上的"Continue"按钮,设置Module的名字为"demo",Vender tag和Release tag分别是制造和发行标记,可根据需要设置。在log message中设置一个日志信息,可以将来用作追踪用。按"确定"按钮后,wincvs即开始执行import命令,并输出下图信息,我们看到绿色是提交到服务器"demo"模块中的新文件。最后命令结果返回0,表示命令执行成功,已经在服务器上建立了一个demo模块,并且包含了所有的文件。成功后你即可将本机的demo目录删除了。下面要来讲解如何从cvs服务器check out一个模块。 17 河南城建学院本科毕业设计(论文) Windows下CVS服务器与客户端的配置 3.2.4 Checkout模块 在WinCvs左边的树形目录上点击鼠标右键,进入"Checkout Module"菜单, 输入你要checkout的模块的名字(注意大小写),即demo,再输入checkout下来后的存放目录,按"确定"按钮,这时,在WinCvs的控制台输出以下信息,表示命令执行成功。这时,在WinCvs左边的树形目录中也多了一个demo的目录。相应的文件也在里面。 3.2.5 update和commit文件 如果文件内容有改变,应即时的提交到服务器上。现在我们修改一个demo目录中的readme.txt文件,储存后,文件的图标即变成了红色,表示此文件被修改过, 这时,在此文件上点击鼠标右键,再点击"Commit selection…"菜单,输入log message后按确定即可。这时,控制台的输出信息如下,表示命令执行成功。如果命令执行失败,可能是另外有人修改了这个文件并提交到了服务器。即服务器上的版本可能比你现有的文件还新,这时你有三种选择: a. 将服务器上的文件和本地的文件合并后再提交 先在文件上点击菜单命令"update…", 在弹出的对话框上什么都不要选,点击确定按钮,执行后,合并后的文件前面有一个M标记。 b. 用本地的文件将服务器上的文件覆盖 在文件上点击菜单命令"commit…",在出来的对话框上切换到Commit options页,选择Force commit, 按确定,命令执行后,控制台输出下面的信息, 其中可以看到文件版本从1.2变到了1.3. c. 用服务器上的文件将本地文件覆盖 在文件上点击菜单命令"update…",在出现的对话框中选择Get the clean copy,按确定,命令执行后, 更新过的文件为绿色,前面标有U标记。同时,WinCvs会自动在此文件的当前目录备份更新前的文件,文件名前面会加上".#",后面会加上版本号。如上面的readme.txt文件会备份为".#readme.txt.1.4"。 3.2.6 Add文件 如果在本机目录中新建了文件,必须用Add命令将它添加到cvs服务器。假设我们在demo目录中新建了一个newfile.txt目录,这个文件的图标显示为问号形式,并且在status栏也显示为"NonCvs file",表示这个文件还没有纳入cvs管理。要将 18 河南城建学院本科毕业设计(论文) Windows下CVS服务器与客户端的配置 此文件加入到Cvs,请先选择它(如有多个文件,可以多选),点击"Modify"菜单中的"Add selection",如果是二进制文件,点击"Add binary"菜单,命令执行后,返回代码为0表示命令执行成功。执行后文件前的图标变为红色,cvs就认为这是修改过的文件,你还必须用前面提到的Commit方法将文件提交到cvs服务器。 3.2.7 Remove文件 如果要将cvs中的文件删除,不能简单的将它从本机目录中删除,而必须借助Remove命令。不然的话,当你下次Checkout module时,在本机删除的文件又从服务器下载下来了。假设我们现在要从cvs中删除newfile.txt文件。请先选择此文件(如有多个文件,可以多选),点击"Modify"菜单,再点击"Remove"菜单命令,这时控制台的输出信息如下,这时此文件已被做了删除标记,文件前的图标变为红色。如要真正的从cvs服务器上删除此文件,还必须再执行一次commit命令。 3.2.8 Remove空目录 在WinCvs中只提供了删除文件的功能,如要删除一个目录,必须先将这个目录中的文件用上面介绍的方法清空,然后再在WinCvs的树形菜单中选中你要删除的目录的上层目录,将光标移到控制台窗口中,输入以下命令: cvs update -P 完成后再执行一次update命令,即完成删除。 19 河南城建学院本科毕业设计(论文) Linux下CVS服务器与客户端的配置 4 Linux下CVS服务器与客户端的配置 4.1 Linux下CVS服务器的配置 在RedHat Linux 7.1之后的版本上,都有自动安装CVS服务器软件,只要对该软件进行设置,即可使用。此次配置我用的是虚拟机VMware环境下的linux redhat9.0,下面是具体的配置过程。 4.1.1 创建cvs组并加入用户 在root权限下,创建一个cvs组并加入成员: 1) 创建组:groupadd cvs 2) 打开/etc/group文件,找到该组,如cvs:x:514:,在后面添加要加入的用户,比如piaoyang,chen等,以逗号隔开,编辑结果是:cvs:x:514:piaoyang, chen 只有加入这个组中的成员才能进行相关CVS操作。保存该文件。 4.1.2 创建一个仓库 假定将CVSROOT指向/usr/local(也可以指向别的目录),用root登录。 1) 创建cvsroot目录:mkdir /usr/local/cvsroot 2) 设置该目录的模式:chmod 1777 /usr/local/cvsroot 3) 修改环境变量:export CVSROOT= /usr/local/cvsroot 4) cvs init 这样就创建了 CVSROOT。 5) 更新环境变量: #source /etc/profile 此时系统已经认识$CVSROOT这样的环境变量 4.1.3 装入源代码 1) 进入代码所在目录:cd [sourcedir],如cd test 2) 装载cvs import -m "[repository test]" [cvstest] [vendortag] [releasetag] -m后面引号内填入log内容,接下来是源代码模块名称,接着是装载者,最后是标识符号,例如:cvs import –m “cvs test” cvstest piaoyang start cvs组中的用户也可以创建仓库,但必须有写权限,该权限的设置在下面将会提到。 20 河南城建学院本科毕业设计(论文) Linux下CVS服务器与客户端的配置 4.1.4 设置权限 CVS初始化结束以后,在管理员用户(这里是cvs用户)的主目录/usr/local/cvsroot/下有一个 CVSROOT 目录,这个目录里有三个配 置文件:readers,writers, passwd。我们可以通过设置这三个文件来配置 CVS 服务器用户的权限,下面分别介绍这几个文件的作 用: readers文件:此文件中的用户允许对模块进行读取,不允许写入; writers文件:此文件中的用户允许对模块进行读取和写入; passwd文件:此文件存储用户名和密码,当用户登录时进行验证; 1)readers和writers的格式如下,每个用户占据一行: aaa bbb ccc 2)passwd文件的格式如下,每个用户占据一行: [cvs 用户名]:[加密的口令]:[等效系统用户名] 如: piaoyang:$1$rPVPciBw$IK3fb4jO7hQbPXFjK3ee..:piaoyang 其中“piaoyang:$1$rPVPciBw$IK3fb4jO7hQbPXFjK3ee..:”从/etc/shadow中拷贝过来。 3)上面三个文件在缺省安装的时候可能都不存在,需要我们自己创建,好吧,现在还是让我们用一个例子来吧。假设我们有下面几个用户需要使用 cvs: laser,gumpwu,henry,betty,anonymous,其中 laser 和 gumpwu 是系统用户,而henry, betty, anonymous 我们都不想给系统用户权限,并且 betty 和 anonymous 都是只读用户,而且 anonymous 更是连口令都没有。 然后编辑 cvs 管理员家目录里 CVSROOT/passwd 文件,加入下面几行: laser:$xxefajfka;faffa33:cvspub gumpwu:$ajfaal;323r0ofeeanv:cvspub henry:$fajkdpaieje:cvspub betty:fjkal;ffjieinfn/:cvspub anonymous::cvspub 注意:上面的第二个字段(分隔符为 :)是密文口令,从/etc/shadow中拷贝过来即可(此方法适合cvs用户较少的情况,如果用户过多,则需要自己用程序生成密码了)。 编辑 readers 文件,加入下面几行: anonymous 21 河南城建学院本科毕业设计(论文) Linux下CVS服务器与客户端的配置 betty 编辑 writer 文件,加入下面几行: laser gumpwu henry 这样就 ok 了,再用几个用户分别登陆测试,就会发现一切都 ok 了。这里面的原理其实很简单,和系统管理用户的概念是一样的。 4.1.5 设置开机自动运行CVS 1) 在/etc/xinetd.d目录下生成一个文件cvspserver。输入命令: touch cvspserver vi cvspserver 在cvspserver文件里写入如下内容并保存: # CVS : current version contrl system # DEFAULT: services is enable # this server script was be writed by piaoyang.org # www.piaoyang.org service cvspserver { socket_type = stream protocol = tcp wait = no user = root server = /usr/bin/cvs server_args = -f --allow-root=/usr/local/cvsroot pserver log_on_success +=USERID log_on_failure +=USERID disable = no } 2) 修改该文件权限: chmod 644 cvspserver 3) 到/etc/rc.d/init.d路径下,运行如下指令重新启动xinetd即可: ./xinetd restart 4) 重启后用root登录,察看cvs服务器是否已经运行: 22 河南城建学院本科毕业设计(论文) Linux下CVS服务器与客户端的配置 netstat -l |grep cvspserver 如果返回tcp 0 0 *:cvspserver *:* LISTEN,则说明cvs服务器已经运行。 4.2 Linux下CVS客户端的配置 为了连接到 CVS 资源库,您需要知道称为 "CVSROOT" 的路径。CVSROOT 是一个字符串,就象 URL,它告诉 CVS用户远程资源库在 哪里,以及如何连接它。不仅如此,根据 CVS 资源库是本地的还是远程的,以及连接到它的不同方式,CVS 还有许多不同的 CVSROOT 格式。 4.2.1 连接CVS服务器 当然你必须拥有cvs用户帐号和密码,以及相关权限。在Linux环境下: 1) 本地 CVSROOT export CVSROOT=/usr/local/cvsroot (告诉CVS客户端,存放代码的资源库在什么地方) 一个实际的例子,在版本管理员将代码库存放在192.168.0.8 的机器上,路径为: /usr/local/cvsroot(如果你telnet 到 192.168.0.8 的机器上的时候,此时你就是在本机) 2) 远程密码服务器 CVSROOT export CVSROOT=:pserver:piaoyang@192.168.0.8:/usr/local/cvsroot(注意冒号不能漏掉,句子中间没有空格) pserver 是CVS内部的一种传输协议。 piaoyang 是用户名, 192.168.0.8 机器的IP或名字(如果有DNS才能用名字) /usr/local/cvsroot 是代码库的具体路径 (注意:如果你不想每次敲这么多枯燥的命令,你可以在你登陆的时候让系统作这些事情,具体的作法是修改你登录的环境变量。现在用piaoyang作为例子,在文件/home/piaoyang/.bash_profile后面加入 export CVSROOT=/home/cvsroot 或export CVSROOT=:pserver:piaoyang@192.168.0.8:/home/cvsroot 并在根目录下运行:. ./.bash_profile) 23 河南城建学院本科毕业设计(论文) Linux下CVS服务器与客户端的配置 4.2.2 登录CVS服务器 cvs login (Logging in to cvs@192.168.0.8) CVS password:(在此输入密码) 4.2.3 拷贝相应模块代码并进行开发 如输入: cvs -z5 checkout VPN 此命令告诉 CVS 客户端使用 gzip 压缩级 5 ("-z5") 在慢速连接上加快传输速度,来检出 ("checkout")VPN模块。 一旦检出命令完成,将在包含最新源码的当前工作目录中看到 "VPN" 目录。还会注意到每个子目录下都有一个"CVS"目录 -- CVS 在这些目录中 存储帐户信息,可以放心地忽略它们。一旦检出结束,用户就无需担心是否设置了 CVSROOT 环境变量,也无需再在命令行上指定它,因为现在所有额外的 "CVS" 目录里都有它的缓存。 记住:只需要为初始登录和检出设置 CVSROOT。至此就可以在刚才check out的VPN模块上进行修改或开发了。 24 河南城建学院本科毕业设计(论文) 项目中CVS的版本控制 5 项目中CVS的版本控制 5.1 将项目提交到CVS服务器 右键选中一个项目,选择import module,查看文件类型是否正确。 -1-1 确定文件类型 图5 然后点击继续,在注释位置添加注释。 图 5-1-2 添加注释 之后点击确定,即上传完成。 5.2 将项目下载到CVS客户端 同上,在项目文件夹上单击右键,点击Checkout module即可。 25 河南城建学院本科毕业设计(论文) 项目中CVS的版本控制 5.3 将更改的项目提交到CVS服务器 右键选择更改的项目(或其中的某一具体的包或者文件)然后点击Commit,添加注释之后选择确定即可。 图 5-3-1 提交修改版本并添加注释 5.4 将CVS服务器中的更改更新到CVS客户端 右键选择项目(或其中的某一具体的包或者文件)然后选择Checkout module,在仓库位置填写要下载的具体模块名称,点击确定即可。 26 河南城建学院本科毕业设计(论文) 项目中CVS的版本控制 图 5-4-1 Checkout操作时填写仓库文件夹名称 5.5 版本控制系统服务器安装与维护注意事项 1)将项目提交到CVS服务器上,必须通过”5.1”中的方法,而不能直接把项目的文件夹拷贝到服务器的存储库目录中。 2)更改CVS存储库,如果一个项目本身就是通过CVS下载到本地的,现在想把该项目组织到新的存储库中,按照“5.1“的方法,默认会提交到原来的存储库,这时,我们只需把项目中的根目录下面的CVS文件夹删除即可,再通过“5.1”中的方法即可提交到变更后的存储库中,如果还是提交不了,则右键项目,“刷新”一下即可。 27 河南城建学院本科毕业设计(论文) CVS版本控制系统的开源化 6 CVS版本控制系统的开源化 6.1 CVS开源方向 由于CVS版本系统的开源化,对于业界五花八门的项目控制系统的发展具有非常重要的影响,可以说CVS版本控制系统的开源化,促使了协同工作、管理百花齐放的市场。对于某些大公司,以及商业系统的开发,其管理项目协同工作的软件系统,也都是基于CVS进行定制版的开发,这些定制开发,往往是为了能更好的使用于公司的特色。 这是从程序开源的角度来说。从API开源的角度来说,CVS版本控制系统促使开发者开发出对应的插件应用。 6.2 CVS与Araxis Merge配套使用 Araxis Merge是一个可视化的文件比较、合并和同步的软件,能够方便的被软件工程师和Web站点开发者使用快速精确地比较、了解和合并不同版本的源文件,进行版本和质量控制,创建HTML或是XML报告。 图6-2-1 Araxis 安装截图 在CVS客户端环境中安装Araxis Merge,然后在CVS中进行配置,如下图: 28 河南城建学院本科毕业设计(论文) CVS版本控制系统的开源化 图6-2-2 WinCVS中指定外在的文件比对工具目录 6.3 CVS与Eclipse配套使用 Eclipse是一个开放源代码的、基于java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。 CVS与Eclipse的配套使用,能够使开发者更加方便、直观的去了解项目过去的版本变化,以及版本变化所注释的原因,了解各个版本的差异。 29 河南城建学院本科毕业设计(论文) 结论 结论 随着软件行业的蓬勃发展,工业设计、商业开发越来越离不开软件系统的支持和运作,软件系统不单单是提高了工业系统的工作效率,更重要的是它大大节省了项目成本,降低了项目风险,提高了项目运算的精细程度,增强了企业管理效益。所以说,作为一款具有纽带作用的版本控制系统CVS,不仅仅是互联网从业者的必修课,也是工科类从业者必须了解的范畴。 详细叙述中渗透CVS的专业术语、命令语句。在安装与维护的叙述中,主要是以安装CVSNT(Windows环境下的CVS服务器)和WinCVS(Windows环境下的CVS客户端)来实战叙述设计中的每一步。一方面使自己掌握CVS版本控制系统的安装与维护使用,另一方面,使自己真正从设计中学习到知识技能。 本设计主要完成了CVS的版本控制系统的安装与维护,详细讲述CVS版本控制系统的由来、基本概念、工作模式、工作原理,以及CVS版本控制系统在Windows环境和Linux环境下的客户端和服务器配置方法,并完成了CVS版本控制系统在项目中的实践应用。 30 河南城建学院本科毕业设计(论文) 致谢 致谢 首先,我要感谢我的导师侯宁老师在毕业设计中对我给予的细心指导和严格要求,感谢我的辅导员石磊老师在毕业设计期间给予的关爱,同时也要感谢电气与电子信息工程学院的其它老师和领导们在毕业设计期间所给予我的帮助。在我毕业论文写作期间,各位老师给我提供了种种专业知识上的指导和日常生活上的关怀,没有您们这样的帮助和关怀,我不会这么顺利的完成毕业设计,借此机会,向您们表示由衷的感激。同时还要感谢院实验室在毕业设计期间提供给我们优越的实验条件。 接着,我要感谢和我一起做毕业设计的同学。在毕业设计的短短几个月里,你们给我提出很多宝贵的意见,给了我不少帮助还有工作上的支持,在此也真诚的谢谢你们。同时,我还要感谢我的寝室同学和身边的朋友,正是在这样一个团结友爱,相互促进的环境中,在和他们的相互帮助和启发中,才有我今天的小小收获。 还有,我要感谢我的公司,正是因为公司对于自己的关爱和照顾,才得以有机会保留工作岗位回学校完成毕业设计。 最后我要深深地感谢我的家人,正是他们含辛茹苦地把我养育成人,在生活和学习上给予我无尽的爱、理解和支持,才使我时刻充满信心和勇气,克服成长路上的种种困难,顺利的完成大学学习。 还有许许多多给予我学业上鼓励和帮助的朋友,在此无法一一列举,在此也一并表示忠心地感谢~人生路漫漫,祝福大家平安快乐~ 31 河南城建学院本科毕业设计(论文) 参考文献 参考文献 [1] Karl Fogel(美).《CVS开源软件开发技术》 [M] 机械工业出版社 2001 .6 [2] Dave Thomas Andy Hunt.《版本控制之道:使用CVS》 [M] The Pragmatic Bookshelf 2003.9.1 [3] 杨锦方.《CVS和Nightly Build技术》 [J] 清华大学出版社 2002.10 [4] Jennifer Vesperman.《CVS精髓》 [J] O'Reilly Taiwan 东南大学出版社 2006.04 [5] 尚冬娟, 邵天增, 马煜编.《服务器架设技术基础与实践教程》 [J] 电子工业出版社 2009.1 [6] 来宾,林盛雄,梁波编.《服务器安装、配置与应用》 [J] 冶金工业出版社 2003.10 [7] Ellies, G.《控制系统设计指南》 [J] 刘君华译 电子工业出版社 2006.09 [8] 杨庆伟.《一个基于电子邮件的软件版本控制系统的实现》 [J] 北京大学图书 馆论文 2007.01 [9] 姚正宇.《JBCM与CVS的集成实现》 [J] 北京大学图书馆论文 2006.01 [10] 王慧思, 李宁.《CVS由来与发展》 [M] 中文科技期刊数据库 2000.05 [11] 李鲲程.《CVS助推开发》 [J] 中文科技期刊数据库 2004.03 [12] 李鲲程.《为Linux配备CVS》 [J] 中文科技期刊数据库 2004.03 [13] 沈建虹, 孙同吉.《CVS客户,服务器连接设置》 [J] 中文科技期刊数据库 2004.07 [14] 刘晶红.《基于CVS的OPNET模型配置管理研究》 [J] 中文科技期刊数据 库 2010.03 [15] 李璞.《CVS和Walgreens经营策略比较启示》 [J] 中国学术期刊网络 2006.09 [16] 《CVS/pharmacy》 Lexis学术期刊数据库 [J] 2010.03 [17] Valerie Jackson, Quincy.《CVS error: RUN OF PAPER Edition》 [J] Lexis期刊 论文科技数据库 2005.07 32 河南城建学院本科毕业设计(论文) 附录 附录 附录A:CVS中常用专业术语 Revision (修订版本),,文件历史记录中的被开发者提交的变化。一个修订版本就是一个时常变化的项目的 snapshot (瞬态图)。 Repository (源代码库),,CVS 存储所有修订版本历史记录的地方。每个项目都有自己的一个确定的源代码库。 Working copy (工作拷贝),,开发者对文件作出修改时文件所在的拷贝。 Check out (检验),,从源代码库中申请一份工作拷贝。该工作拷贝反映的是取出时项目的瞬时状态。当开发者对拷贝作出修改时,必须运用 commit (提交)和 update (更新) 命令来 “发布”变化和查看其他开发者所作的修改。 Commit (提交),,将工作拷贝中的变化输入中央源代码库。 Log message (日志信息),,提交修订版本的时候,附带描述变化的注解。通过查阅记录信息,人们可以获得一个当前项目进程的总结。 Update (更新),,从源代码库中取出别人的修改数据,将其输入自己的工作拷贝,并显示自己的工作拷贝是否有未提交的修改。注意,不要和 commit (提交)混淆,更新和提交是一对互补的指令。记住: Update 将使工作拷贝和源代码库拷贝保持同步更新。 Conflicts (冲突),,两个开发者对同一个区域所做的改动都提交给主版本时出现的情况,在 CVS 觉察并指出这个冲突后,开发者必须解决该冲突。 33 河南城建学院本科毕业设计(论文) 附录 附录B:CVS工作拓扑图及CVS客户端和服务器界面 图 附-1 CVS工作拓扑图 图 附-2 WinCVS工作界面 图 附-3 CVSNT服务器工作界面 34 河南城建学院本科毕业设计(论文) 附录 序号 名称 规格型号 单位 数量 备注 一 制冷系统 1 压缩机组 4AV10 台 4 2 冷凝器 LN-70 台 1 3 贮氨器 ZA-1.5 台 1 4 桶泵组合 ZWB-1.5 台 1 5 氨液分离器 AF-65 台 1 6 集油器 JY-219 台 1 7 空气分离器 KF-32 台 1 8 紧急泄氨器 JX-108 台 1 9 冷风机 KLL-250 台 8 10 冷风机 KLD-150 台 4 11 冷风机 KLD-100 台 2 12 阀门 套 86 13 电磁阀 套 6 14 管道及支架 吨 18.6 3 15 管道及设备保温 m22 16 管道保温包扎 镀锌板 吨 1.6 17 附件 套 1 二 气调系统 1 中空纤维制氮机 CA-30B 台 1 2 二氧化碳洗涤器 GA-15 台 1 3 气动电磁阀 D100 台 14 4 电脑控制系统 CNJK-406 台 1 5 信号转换器 8线 台 1 6 果心温度探头 台 7 37 库气平衡袋 5 m 个 7 8 库气安全阀 液封式 个 7 9 小活塞空压机 0.05/7 台 1 10 PVC管 套 1 11 附件 套 1 三 水冷系统 1 冷却塔 DBNL-100 台 2 3 2 水泵 SBL80-160I 台 2 3 水泵 SBL50-160I 台 2 4 阀门 套 30 5 管道及支架 吨 2.8 6 附件 套 1 四 电仪控系统 1 电器控制柜 套 1 2 照明系统 套 1 3 电线电缆 套 1 4 桥架管线 套 1 5 附件 套 1 35 河南城建学院本科毕业设计(论文) 附录 36
/
本文档为【基于CVS的版本控制系统服务器安装与维护_毕业论文设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索