基于cvs的版本控制系统服务器安装与维护_毕业论文设计(编辑修改稿)内容摘要:
S 服务器与客户端安装与配置方法。 第四章 主要详细展示 Linux 环境下 CVS 服务器与 CVS 客户端安装与配置方法。 第五章 主要演示了在搭建好的 CVS 服务器环境和客户端环境下项目中CVS 版本控制的应用。 第六章 主要阐述了 CVS 版本控制系统的开源化对于协同工作,或者对于大型软件系统开发的影响,以及介绍了两款与 CVS 版本控制系统配合使用的软件。 河南城建学院本科毕业设计(论文) 基于 CVS的版 本控制系统介绍 5 2 基于 CVS的版本控制系统介绍 什么是 CVS CVS是一个 C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。 CVS版本控制系统是一种 GNU软件包,主要用于在多人开发环境下的源码的维护。 与它相类似的代码版本控制软件有Subversion。 CVS的基本概念 1) Repository(仓库) CVS 的仓库存储全部的版本控制下的文件 copy,通常不容许直接访问,只能通过 cvs命令,获得一份本地 copy,改动后再 check in( mit) 回仓库。 而仓库通常为与工作目录分离的。 CVS通过多种方式访问仓库。 每种方法有不同目录表示形式。 数据如何存放在 repository中:随着 CVS版 本的不同,存放结构会发生变化,一般情况下用户无需了解数据到底是如何存放的。 2) Revision(修订版) 每 一个 file的各个 revision都不相同,形如 , ,一般 个 revision,后面的一个将自动增加最右面的一个整数,比如 , , ...有时候会出现 ,原因见后。 revision总是偶数个数字。 一般情况下将 revision看作时 CVS自己内部的一个编号,而 tag则可以标志用户的特定信息。 3) Tag(标签) 用符号化 的表示方法标志文件特定 revision的信息。 通常不需要对某一个孤立的文件作 tag,而是对所有文件同时作一个 tag,以后用户可以仅向特定 tag的 文件提交 或者 checkout。 另外一个作用是在发布软件的时候表示哪些文件及其哪个版本是可用的;各文件不同 revision可以包括在一个 tag中。 如果命名一个已存在的 tag默认将不会覆盖原来的; 4) Branch(分支) 当用户修改一个 branch时不会对另外的 branch产生任何影响。 可以在适当的时候通过合并的方法将两个版本合起来; branch总是在当前 revision后面加上一个偶数整数(从 2开始,到 0结束),所以 branch总是奇数个数字,比如 branch为 ,该分支下 revision可能 为 ,... 河南城建学院本科毕业设计(论文) 基于 CVS的版本控制系统介绍 6 5) Conflict(冲突) 完全是纯文本的冲突,不包含逻辑上的矛盾,比如 CVS不能解决如下问题:某人修改了函数 f的参数,而另外一个人在另外一个地方用老的参数调用该函数。 文本冲突需要用户自己参与解决, CVS无法自动解决。 6) Module(模块) CVS服务器根目录下的第一级子目录。 通常用于存放一个项目的所有文件 7) Check out(检出) 通常指将仓库中的一整个模块首次导出到本地。 8) Check in(导入) 通常指通过提交整个目录结构并创建一个新的模块。 9) Release(发行版本) 整个产品的版本 10) Update(更新) 从模块中下载其他人的修改过的文件。 更新本地的拷贝。 11) Commit(提交) 将自己修改过的文件提交到模块中。 CVS的工作模式和工作思路 CVS( Concurrent Versions System)版本控制系统是一种 GNU软件包,主要用于在多人开发环境下的源码的维护。 Concurrent有并发的、协作的、一致的等含义。 实际上 CVS可以维护任意文档的开发和使用,例如共享文件的编辑修改,而不仅仅局限于程序设计。 CVS维护 的文件类型可以是文本类型也可以是二进制类型。 CVS用 CopyModifyMerge(拷贝、修改、合并)变化表支持对文件的同时访问和修改。 它明确地将源文件的存储和用户的工作空间独立开来,并使其并行操作。 CVS基于客户端 /服务器的行为使其可容纳多个用户。 这一特性使得 CVS成为位于不同地点的人同时处理数据文件(特别是程序的源代码)时的首选。 所有重要的免费软件项目都使用 CVS作为其程序员之间的中心点,以便能够综合各程序员的改进和更改。 这些项目包括 GNOME、 KDE、 THE GIMP和 Wine等。 在一台服务器 上建立一个源代码库,库里可以存放许多不同项目的源程序。 由源代码库管理员统一管理这些源程序。 每个用户在使用源代码库之前,首先要把源代码库里的项目文件下载到本地,然后用户可以在本地任意修改,最后用CVS命令进行提交,由 CVS源代码库统一管理修改。 这样,就好像只有一个人在修改文件一样,既避免了冲突,又可以做到跟踪文件变化等。 河南城建学院本科毕业设计(论文) 基于 CVS的版本控制系统介绍 7 CVS是并发版本系统( Concurrent Versions System)的意思,主流的开放源码网络透明的版本控制系统。 CVS对于从个人开发者到大型、分布团队都是有用的。 它的客户机 /服务 器存取方法使得开发者可以从任何因特网的接入点存取最新的代码。 它的无限制的版本管理检出 (check out:注 1)的模式避免了通常的因为排它检出模式而引起的人工冲突。 它的客户端工具可以在绝大多数的平台上使用。 CVS被应用于流行的开放源码工程中,像 Mozilla, GIMP, XEmacs, KDE和 GNOME等。 那么它到底怎么样。 你可能会说,它非常棒,但是对于 我 来说它能做什么。 首先,基本的 :一个版本控制系统保持了对一系列文件所作改变的历史记录。 对于一个开发者来说,那就意味着在你对一个程序所进行开发的整个期 间,能够跟踪对其所作的所有改动的痕迹。 对你来说,有没有出现过由于在命令行上按错键而导致一天的工作都白费的情况呢。 版本控制系统给了你一个安全的网络。 版本控制系统对任何人都有用,真的。 (毕竟,谁不愿意使用一个安全的网络呢。 )它们经常被软件开发团队使用。 在团队中工作的开发者需要能够调整他们的各自的修改;一个集中式版本控制系统允许那样做。 CVS代码的集中配置与调整 个人开发者希望一个版本控制系统的安全网络能够运行在他们的本地的一台机器上。 然而,开发团队需要一个集中的服务器,所有的成员可以将服务器作为仓库 来访问他们的代码。 在一个办公室中,没有问题 只是将仓库连到本地网络上的一台服务器上就行了。 对于开放源码项目 … 噢, 还是没有问题,这要感谢因特网。 CVS内建了客户机 /服务器存取方法,所以任何一个可以连到因特网上的开发者都可以存取在一台 CVS服务器上的文件。 在传统的版本控制系统中,一个开发者检出一个文件,修改它,然后将其登记回去。 检出文件的开发者拥有对这个文件修改的排它权。 没有其它的开发者可以检出这个文件 并且只有检出那个文件的开发者可以登记 (check in:注 2)所做的修改。 (当然对于管理员有很多 方法可以超越这个限制。 ) 想一下排它的检出可能会如何工作: Bob的兄弟检出 ,写好代码后他什么也没做。 然后他去吃午饭了。 Bob吃完午饭后,发现他的老板所指给他的一个 bug在。 他试图检出 … 但是版本控制系统不允许他这样做,因为他的兄弟已经把它检出了。 Bob不得不等着他的兄弟吃完午饭回来 (在这个 好 日子用了两个小时 ),他才可以修正 bug。 河南城建学院本科毕业设计(论文) 基于 CVS的版本控制系统介绍 8 在一个大型的开放源码工程中,因为开发者可能在任意的时区工作得很晚,给予一个开发者阻止任意地方的其它开发者 继续处理任意文件的能力很明显无法运转。 他们最终将因为不能够在他们想要的时候开展项目而感到厌烦。 CVS通过它的无限制的检出模式解决了这个问题。 检出一个文件并不给定开发者对那个文件的排它权。 其它的开发者也可以对其检出,进行他们自己的修改,并且将其登记回去。 详细地回答就是当多个开发者对同一个文件作了修改 CVS会检测,并且自动合并那些改变。 不用担心 , CVS会很小心,并且将会自动合并那些只要不是对代码的同一行所作的改动。 如果 CVS不能安全的处理这些改动,开发者将不得不手工合并它们。 有大量在许多平台上可用的 CVS附加工具,它们给 CVS增加了功能或使得CVS更容易使用。 CVS的典型功能 1) 替代管理 你的经理和项目负责人应经常与你交流以确保你时时记得进度表、合并点、分支名和发布日期。 如果他们不这样做, cvs 也没用。 cvs 只是一个用来使你的资源与你的步调一致的工具。 但你是风笛手和作曲家,没有哪种乐器会自己演奏或是作曲。 不能代替开发者之间的交流。 在单个文件内遇到冲突时,大多数开发者不费多大力气就能解决它们。 但更常见的 冲突 (conflict),是那些难度较大、不在开发者之间进行交流就没法解决的问题。 当在一个文件内或多个文件中同时发生变化时, cvs 并不知道何时它们会在逻辑上发生冲突。 它的冲突 (conflict)概念是纯粹文本意义上的,这种冲突会在同一个文件的两种变化十分接近以致于会破坏合并命令 (如 diff3)。 CVS决不会指出程序逻辑上非文本或分布式的冲突。 例如:假如你改变了在文件 A 中定义的函数 X 的参数。 同时,别人在编辑文件 B,仍用旧参数调用 X 这个函数。 此时产生的冲突 cvs 可就无能为力了。 2) 变化控制 变化控制可以指许多事情。 首先它的意思可以是 BUG 跟踪 bugtracking,就 是说它能维持一个数据库,其中包括已报告的 BUG 和每一个 BUG 状态 (是否已更正。 在哪一个版本中。 提交这个 BUG 的人是否认为已经更正。 )。 为了使 cvs 和一个外部的跟踪 BUG 系统协调一致,请参考 rcsinfo 和 verifymsg文件 (参阅 Administrative files)。 河南城建学院本科毕业设计(论文) 基于 CVS的版本控制系统介绍 9 变化控制的另一个方面指跟踪这样的情况,即对好几个文件的改变实际上只是同一个逻辑变动。 如果你在一次 cvs mit 操作中检入几个文件, cvs 会忘掉它们是一起检入的,它们共用一个 LOG 信息的事实 只是把它们绑在一起而已。 做一个 gnu 风格的 ChangeLog 可能会有点用。 在一些系统中,变化控制的另一个方面是跟踪每个变化的状态的能力。 一些变化由一个开发者写出,而另一些变化则由另一个开发者来作出评论,等等。 一般来讲,用 cvs 来做,是产生一个 diff(用 cvs diff 或 diff),并且用电子邮件寄给某人,此人就可以用 patch 来应用它。 这是非常灵活的,但依赖于 cvs 之外的机制以保证事情不会崩溃。 3) 自动测试 强制利用 mitinfo文件测试套件应该是可能的。 不过我没有听 说过多少项目试图那样做或那里有微妙的陷阱。 4) 内置处理 有些系统提供一些方法确保变更或发布通过不同的步骤,以及各种所需的批准过程。 一般地,你可以用 cvs 来完成它,但是可能要多做点工作。 有些情况下你想用 mitinfo、 loginfo、 rcsinfo 或 verifymsg文件,要求在 CVS 提交之前完成某些操作。 你也会考虑诸如 branches 和 tags等特性是否能用在一个开发树中执行任务,然后仅当它们被证实就把某些修改合并到一棵稳定的树中。 CVS 还有一个更加重要的特性:能记下每个文件的 每次修改,以及如何被修改 … 对于基于 Inter 的合作方式来说,这些特性太重要了。 一个地域上分散的自愿者组织显然不可能投入很多的时间来训练其成员彼此合作。 因为这样的话,当该组织有成员变更的时候,为此付出的投资将损失殆尽。 所以需要指定一套基本的项目分配方案,以确保新成员能较容易的适应工作,同时也需要设置一个自动的系统来接受外来代码,并使每个成员能及时得到最新修改的代码。 河南城建学院本科毕业设计(论文) Windows下 CVS服务器与客户端的配置 10 3 Windows 下 CVS服务器与客户端的配置 Windows 下 CVS服务器的配置 CVS是目前最常用的版本控制和软件配置系 统。 其开源性在其普及的过程中功不可没,然而正因为开源造成了其易用性较差。 往往一个功能需要通过几个看似不相干的操作配合才能进行。 Windows下 CVS的多帐户配置正是这样一个相当重要的,但很不好操作的功能。 几个难点如下: CVS源自 Unix系统,其 Windows的移植版并没有服务器功能。 在 Windows下一般采用安装 CVSNT这个软件来建立 CVS Repository,但 CVSNT的。基于cvs的版本控制系统服务器安装与维护_毕业论文设计(编辑修改稿)
相关推荐
(cmd)。 ds = new DataSet()。 (ds, Manager)。 = [Manager]。 (Text, [Manager], managerID)。 (Text, [Manager], managerName)。 (Text, [Manager], managerZW)。 (Text, [Manager], managerAddress)。 第 18 页 共 40 页
( 216) 输入阻抗 传输线任意点的电压和电流的比值定义为该点沿向负载方向看去的输入阻抗。 设已 11 知终端电压和终端电流 (217) 式中 为终端负载阻抗。 反射系数 传输线上某点的反射波电压与入射波电压之比,定义为该点的反射系数,即 (218) 式中 (219) 称为传输线的终端反射系数。 驻波系数与行波系数 一般情况下,传输线上存在入射波和反射波,它们相互干涉形成驻行波。
平台: Red hat enterprise linux 5, 编译器 vim,调试器 gdb,网络配置 ifconfig, route 等等。 Client 端需求,本短信收发系统是基于 linux C 来实现的,其中客户端的需求是: client 端可以实现同号码段的 client 端进行通信,还可以和不同号码段的 client 进行通信。 在发送信息是可以选择发送和不发送,发送的保存在 里
FLASH ROM 的 89C51编程写入(固化程序)时,作为编程脉冲输入端。 /PSEN: 程序存储允许输出信号端。 在由外部程序存储器取指期间,每个机器周期两次 /PSEN 有效。 但在访问外部数据存储器时,这两次有效的 /PSEN 信号将不出现。 /EA/VPP: 外部程序存储器地址允许输入端 /固化编程电压 输入端。 当 /EA 引脚接高 电平时, CPU 只访问片内 FLASH ROM
过开发平台可提高应用系统的质量、降低开发成本、缩短开发时间。 由“软件危机”引发的思考 伴随着软件规模的不断扩大和软件产业更新换代 速率的越来越频繁,软件开发的效率与 质量就逐渐成为了人们 所 关注的焦点, 然 而相对 于 传统的软件设计开发思想 已经逐渐不能够满足当今软件开发的需求 ,同时 伴 随着计算机硬件技术的飞速进步以及信息化建设需求的增加,越来越多的大型软件开发项目 工程面临着许多
的特点之一就表现在对通信的控制以及与数据库的结合上。 一方面利用计算机或各种服务器来控制电话或 PBX(用户级交换机 )。 另一方面,调用数据库中和 呼叫有关的信息,或是把呼叫信息存储在数据库中或打印各种通信统计报告、管理呼叫、控制各级通信,管理通信费用。 概括起来 CTI 技术具有以下特点。 (1)充分利用计算机的信息处理能力:计算机通过应用接口与通信系统连接并控制通信,存储处理各种通信信息