`
javasee
  • 浏览: 961633 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Linux CVS Server + jCVS-5.3.2 Client分布式开发(一)

阅读更多

Linux CVS Server + jCVS-5.3.2 Client分布式开发<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

一、版本控制的概念以及几种版本控制工具的简介

1.源文件的标示与版本的概念

源文件是一个软件最为重要的一个组成单元,因此源文件的管理也是整个软件组成管理中最重要的一环,是进行高效软件开发的关键岁所在.对源文件进行管理,必须对源文件进行标示.通常认为只需文件名.而实际上,在一个版本维护工具下对于源文件的标示包括两部分:文件名与版本.即:源文件可以用如下的二元组表示 {filename,version};

所谓版本,一般的软件开发人员都有一个直观的理解,但却很难做出准确的定义.版本,是指某一特定对象的具体实例的潜在存在.这里的某一特定对象是指由版本维护工具管理的如软件组成单元,一般指源文件.具体实例则是指软件开发人员从软件储藏室中恢复出来的软件组成单元的具有一定内容和属性的一个真实拷贝.

把版本定义成一个潜在的存在是基于以下考虑:版本作为源文件的一个表示部分,软件人员对它的引用实际上想得到不同的版本对应的同源文件,所以说版本是一种抽象.它用来定义一个具体实例应该具有的内容与属性.也就是说版本是一个具体实例的潜在存在,是源文件不同化身的抽象.

有了以上对版本概念的认识.大家对版本维护工具就有了一定的理解:版本维护工具,应该对开发人员屏蔽源文件的存储方式对开发人员是透明的,开发人员不需要明白软件存储库里有什么源文件,只需要说明需要什么样的源文件以及要存储什么样的源文件,版本维护工具自动完成这一切工作.关于版本维护的理论还包括:版本的空间,维数,版本的表示,存储,合并等理论,因为我们这里主要说明cvs 的linux 服务器,所以一切从简,对这方面有兴趣朋友可以阅读相关书籍

本章所讲的cvs 就是这样的一个强大的工具.在讲述cvs 前我们先介绍其他几个版本维护工具.

2.几种版本维护工具的简介

2.1 SCCS

SCCS的全称是Source Code Control System .在介绍之前先定义工作文件的概念.所谓工作文件,是指从软件储藏室得到的有权限的源文件.

SCCS 是一种基本的源文件版本控制工具,它适用于任何正文文件的版本维护.它基于单一文件的版本控制,通常,它的软件储藏室和维护的文件在同一目录下.

SCCS 工作时,有一个专门的SCCS 格式的文件保留其源文件的编码版本,其记录了足够的信息来生成新的版本,并记录了谁对文件有修改权,拥有该版本的.

SCCS的版本好事一个四元组,即:发行号,级号,分支号,序号(release,level,banch,sequence)

2.2 RCS

RCS是另一种基本的源代码管理工具,是WALTER.f.Tichy 于1980 年在Indina的 Purdue 大学开发的.RCS和SCCS 类似,也是基于单一文件的版本维护系统.RSC 通过RSC 文件进行文件管理;使用RCS 进行维护的过程与SCCS 相似,也是按恢复提交模式进行的,不多赘述

RCS文件,是RCS 系统中源文件的储藏室,它是一种特殊的编码文件,包含了开发人员恢复老版本的源文件以供开发使用的足够信息.它通常是以.V 为后缀

它的结构如下:

* RCS 头,这一部分记录了对应文件的版本树的头版本号,

* 版本描述: 这一部分描述RCS树上的各个节点的属性性质

* 初始信息:之一部分是在创建第一个RCS 版本时的表述内容

* 文件内容

RCS与SCCS 相似,RCS将所维护的版本也组织成树形结构.但RCS允许多重分支,即,RCS的版本号不像SCCS那样是一个四元组.形式为;发行号,级号,[分支号,序号].版本树如下

2.3 综述

这两种版本维护工具的共同点是:采用了的方式,对当前问坚持的用户才有对文件的修改权.他们采用的机制是所谓的 lock-modify-unlock.采用这种即只有一个知名的弱点,那就是至此多用户并发的使用.

二、在linux 下构建cvs 服务器

1.CVS简介及基本原理

CVS 的全称是Current Version Control. CVS是一种GNU 软件包.由Intersolv公司开发,最新的版本是1.10.8.它是一种基于RCS系统的维护工具.它明确的将源文件的存储和用户的工作空间独立开来,有在一定的模式上扩展了RCS的恢复提交功能. 并使其有利与并行开发.

CVS 将源文件的RCS 文件根据其源码树的层次集中在一个目录下,该目录的绝对路径由环境变量CVSROOT 定义.

可见该目录可以分成两部分:一部分为${CVSROOT}/CVSROOT,它包含CVS所需的一些管理 文件.另一部分为源文件所形成的RCS 文件,并按软件开发的源码树的结构来构成.

2.CVS 在进行源代码管理时的特点

2.1 源代码空间与用户空间分离.

CVS 系统将源代码文件放在repository下,用户要修改文件必须将repository 下的文件作一个拷贝之后才能进行,

2.2 并发访问

CVS 系统允许多个开发人员同时获取同一文件的同版本源文件.当然这也是CVS获得广泛应用的主要原因.开发人员提取一个文件时,将在自己的工作空间建立一个与其他开发人员相互独立的拷贝,此文件的版本号与文件版本相同,除非他用commit 命令完成版本的永久性升级.而此时,其他用户可用undate 命令是自己的版本号与最新的头版本号相一致.:若用户在checkout 后发现头版本改变了,可用RCS系统的rcsmerge 命令形成一个新文件,这个新文件及包括原来的内容,又包括用户修改的内容.此示弱与其他同时在对同一文件修改的开发人员发生冲突,可通知他们进行手工修改

所以说,CVS系统是一个Copy-Modify-Merge 的算法而不是以上我们提到的那两个系统所采用的lock-modify-unlockj机制 这种算法的好处在于,软件开发人员可以得到一份源文件的拷贝(Copy),并不会对该文件上,因此为并行开发提供了可能,在得到 拷贝后, 开发人员可以在自己的开发环境下进行修改(Modify),然后提交自己修改后的文件,与源文件进行合并(Merge).形成新的版本。

CVS基本使用介绍

cvs 是一个版本控制系统。简单的说,他可以记录程式码修改的过程,有一个完整的 history辟如说,当你在修改程式码的时候,不小心写出了一个 bug,但是你可能很久以后才发现多出了这个 bug, 这个时候, cvs 就能很有效的帮助你,找出是在哪一次的修改中,出现了这个bug。

在有版本控制系统之前,开发人员都是各自把程序的所有原代码用tar打包保存,这样做是很浪费空间的。而cvs则不同,他在版本更改时,只储存原代码中作了更改的部分,这样一是可以很有效的省下很多空间,二则是更能显示出多人一起开发软件的时候彼此之间的协调性。

Cvs支持远程访问,用户可以对他要修改的文件加上编辑的flag,让别人知道他要修改这个文件了。

专业术语:

repository:意思是仓库。在cvs里,就是存放版本历史记录的地方。

pserver:这是cvs用来接受remote的cvs command用的。cvs有两种模式, 一种是local, 一种是remote.

cvsroot:当你使用cvs的时候,必须设定CVSROOT这个环境变数,或是用-d这个选项来指定。

分享到:
评论

相关推荐

    Linux CVS Server与jCVS Client进行分布式开发

     一、安装JDK    1) 安装Win9x/2000 j2sdk-1_3_1_02-win.exe    在“我的电脑”右键“属性”—&gt;“高级”à“环境变量”的“系统变量”中加入    变量名:JAVA_HOME    变量值:c:jdk(你的JDK安装...

    CVS++中文用户手册

    综上所述,CVS++作为一款历史悠久、功能强大的版本控制工具,为软件开发团队提供了不可或缺的支持。通过深入理解其设计理念、应用范围以及与其他系统的关系,开发人员能够更好地发挥CVS++的优势,提升团队协作效率,...

    CVS使用基础--一看就会用CVS

    - **CVS** (Concurrent Versions System) 是一种广泛使用的开源版本控制系统,适用于软件开发团队管理代码库的版本控制。 - **重要性**: 在软件开发过程中,版本控制是非常重要的,它帮助团队管理源代码的多个版本,...

    wincvs+Python-2.2.1

    WinCVS是一款基于Windows操作系统的图形用户界面(GUI)客户端,用于访问 Concurrent Version System (CVS),这是一种版本控制系统。CVS允许开发团队协作编辑和管理源代码,跟踪文件和目录的历史版本,以便于合作和...

    政区划数据库_with+经纬度-省市区-邮编-区号-拼音-简称-accdb,cvs,db三合一

    总的来说,这个政区划数据库是一份全面且实用的资源,不仅可以用于政府统计、公共服务,还可以服务于商业决策、市场研究、地图开发等多个领域。通过结合经纬度信息,可以实现与地理位置相关的各种功能,如定位、导航...

    cvs-1.12.13 for linux

    【cvs-1.12.13 for Linux】是一个针对Linux操作系统的版本控制系统CVS(Concurrent Versions System)的特定版本。CVS是开源软件,广泛用于源代码管理,它允许开发团队协同工作,跟踪代码变更历史,合并不同开发者的...

    ACE+TAO+CIAO-5.6.tar.gz

    ACE(Adaptive Communication Environment)是一个跨平台的C++软件框架,专为构建实时网络和分布式系统而设计。它提供了一套全面的库,用于处理并发性、网络通信、时间敏感性和可靠性等问题。TAO(The ACE ORB)是...

    linux下的cvs

    ### Linux下的CVS配置规则及细节问题 #### CVS简介与安装 CVS(Concurrent Versions System)是一款在开源社区广泛使用的版本控制系统。它主要用于管理软件项目中的源代码变更历史,支持多用户协作开发,能够有效地...

    j2ee课件html+linux+cvs+sql

    【标题】"j2EE课件html+linux+cvs+sql"涵盖了四个主要的IT技术领域,它们分别是Java企业版(j2EE)、超文本标记语言(HTML)、Linux操作系统以及版本控制系统CVS和结构化查询语言(SQL)。这些知识点在IT行业中占据...

    CVS完全手册--CVS一本通

    CVS(Concurrent Versions System)是一个版本控制系统,其设计目的是在多用户环境中管理文件的版本和修改历史。它允许开发团队成员并行工作,每个人都可以独立修改文件,然后通过合并操作解决可能出现的冲突。CVS...

    CVS1easy-R操作说明书中文版.zip

    《CVS1easy-R操作说明书中文版》是一个针对CVS1easy-R设备的操作指南,旨在帮助用户理解和掌握该设备的正确使用方法。这份文档详细介绍了设备的接线步骤、参数设置以及相关的操作流程,对于初次接触或需要深入理解...

    rt73-cvs-daily.tar.gz_rt73-cvs_rt73-cvs-daily_rt73-cvs-daily.tar

    标题中的"rt73-cvs-daily.tar.gz_rt73-cvs_rt73-cvs-daily_rt73-cvs-daily.tar"表明这是一个与rt73无线网卡驱动相关的源代码压缩包,其中包含了每日更新的版本。"rt73-cvs"可能是指基于CVS(Concurrent Versions ...

    CVS Change Log Plug-in For Eclipse

    其中,CVS(Concurrent Versions System)是一种早期广泛使用的分布式版本控制系统。然而,CVS的原生界面在查看历史记录和注释方面可能不够直观,这促使开发者寻找更便捷的方式来管理和分析CVS项目的历史变更。"CVS ...

    Rsync命令参数详解

    Rsync 命令是一种功能强大的工具,用于实现文件的同步和备份。下面对 Rsync 命令的参数进行详细解释。 1. 命令格式 Rsync 命令的格式可以分为六种: * rsync [OPTION]... SRC DEST * rsync [OPTION]... SRC [USER...

    cvs-suite-trial-2009-3779.msi

    cvs-suite-trial-2009-3779.msi

    CVS用法与总结--版本控制

    CVS(Concurrent Versions System)是一种早期的开源版本控制系统,用于跟踪软件开发过程中的文件变更。本文将对CVS的用法和基本概念进行总结,帮助你理解和掌握如何使用这个系统。 首先,CVS的命令格式是全局命令...

    CVS安装手册---cvs讲解

    CVS(Concurrent Versions System)是一种广泛使用的源代码版本控制系统,它允许开发团队协同工作,同时跟踪代码的修改历史。本手册将详细讲解如何在不同的操作系统环境下安装和配置CVS,以及如何使用客户端工具进行...

    svn-server-extras-.rpm+说明.rar

    1. **Subversion(SVN)** 是一个开源的版本控制系统,用于管理文件和目录的历史记录,常用于软件开发中的源代码管理。 2. **RPM包管理** - 在Linux系统中,RPM用于安装、卸载、查询和升级软件,简化了软件的管理...

    org-netbeans-lib-cvsclient.jar

    netbeans cvs lib 源码,可以方便的进行CVS编程操作

    cvs server安装与Eclipse简单使用

    CVS(Concurrent Versions System)是一个开源的版本控制系统,而Eclipse是一款流行的集成开发环境(IDE)。本文将详细介绍如何在本地安装CVS Server,并在Eclipse中配置和使用CVS进行项目管理。 首先,让我们了解...

Global site tag (gtag.js) - Google Analytics