配置管理工具之CVS
VSS和CVS比较
VSS和CVS比较1.软件配置管理基础随着计算机应用范围的日益广泛,应用软件的规模及复杂度日益广泛深入,应用软件的规模和复杂程度日趋大型化,复杂化,这就导致软件开发的方式越来越强调团队的协作开发,而在这种开发方式下,会遇到很多问题,例如:需要将整个软件的版本恢复到以前的某一时间的状态,限制随意修改程序,或者控制某一程序在同一时间内只能一个开发人员修改等等。
为了解决这些问题,提高软件产品和软件项目的质量及软件开发过程中的管理水平,更好地为以后的软件开发工作提供有效的服务,必须采用先进的管理手段,实现软件产品和软件项目源码的科学管理。
软件配置管理工具应运而生。
2.软件配置管理工具软件配置管理工具有很多,例如:Starteam、ClearCase、VSS和CVS等。
Starteam和ClearCase更适合庞大的团队和项目,并且价格不菲,所以并不常用。
目前使用比较广泛的是VSS和CVS。
两者在使用上有各自的优势和不足。
VSS的全名是VisualSourceSafe,是微软公司开发的VisualStudio开发套件中的软件配置管理部分,有非常好的技术支持和非常详尽的技术文挡。
VSS适合在局域网范围内,以Windows平台为主的中、小项目,以文件管理为主要功能,使用方便,学习成本低,对服务器仅需要快速大容量的存储器也是它的优势。
CVS的全名是ConcurrentVersionSystem,是一种可以并发的版本控制系统。
它是一个开源项目,可以直接从网站下载最新的原代码。
CVS可以满足局域网和广域不同的网络条件,提供不同级别安全性选择,在一台专门的服务器配合下,客户可以使用任何平台开发项目。
CVS本身是在unix系统上开发的,在unix下提供的是命令行使用模式。
在Windows平台下你可以选择用CVSNT搭建服务器,用WinCvs作为客户端。
CVS对于已经完成了开发过程进入项目维护阶段,或者进入项目升级阶段的项目,可提供完善的软件配置管理的支持,不过在学习和操作上学习成本比较高。
cvs简介
C/S架构下的CVS
在多人参于开发的项目中,CVS是一个C/S系统。 服务器是项目文件版本库,存放着项目文件所有的 历史改动纪录。开发人员则工作于各自客户端的工 作目录下。目前在Windows 和 Linux 下均有CVS的 客户端工具。Windows 下的客户端工具为Wincvs .
内容综述
2.
3.
导入选项设置
Import settings
1 .设置Module的名字为“demo”, Vender tag和Release tag可以分别 填入初始的导入人名和初始的发 行版本,可根据需要设置。在log message中设置一个日志信息,可 以将来用作追踪用。 按“确定”按钮后,wincvs即开始 执行import命令,并在控制台上输 出命令执行的结果,此时你可以 由返回的代码来判断导入成功与 否.
CVS的特点
CVS的特点
1. CVS可以管理多目录的项目。 2. CVS可以处理分布式的项目。在这样的项目中, 分别处于地理上或网络上不同位置的多名开发人员 可以访问和操作同一个源代码库。 3. 多名开发人员可以同时在一个相同的文件上工 作。它会试着把几个开发人员对同一文件的修改合 并到一起。
C/S 架构下的CVS
提交更改的文件
提交更改的文件
1.
如果文件内容有改变,应 及时的提交到服务器上。 现在我们修改Readme.txt 文件,储存后,文件的图 标即变成了红色,文件的 状态显示“Mod.File”,表 示此文件在工作目录中被 修改过。
在此文件上右键选择 Update Selection 来提交更 改。提交后CVS会先检查 服务器中的文件是否被其 它开发人员更新过;如果 有更新,CVS会尝试将你 的修改和服务器的文件合 并。
软件配置管理cvs介绍
• 测试远程访问
CVS for unix/linux: [test@linux test]$ cvs login cvs password: WinCVS: AdminLogin 输入口令即可。
• 在Visual Studio 中集成CVS (23)
1.4 CVS工作原理及基本命令
仓库的概念已经描述,在CVS库中CVS以一种特殊的文 件格式(RCS)来保存这些资源。仓库按照目录和文件 结构组织。仓库中每个目录对应一个项目,如:和 cvsap/src/master在同一层次的目录除CVSROOT外,其 他每个目录都应该是不同的项目。其保存了各个版本 的文件,并记录了版本的修改信息。 统一文件的不同版本之间具有派生关系,在版本库中 只存储不同版本间的改动,从而节约空间。(29页) 工作拷贝是指每个开发人员在开发过程中拥有一个独 立于其他开发人员的整个软件项目的全部代码的拷贝, 在客户端,它和主拷贝(仓库)构成了CVS客户/服务 器模式。工作拷贝的每个目录中有一个CVS目录,其下 的文件是cvs管理控制文件。(31页)
CVS的安装和配置
• 在unix/linux平台上安装CVS服务器 安装是超级用户执行的。假设选择一台Linux服务器, 假设主机名为hostcvs。在cvs权威网站 上下载包cvs-1.11.1p1.tar.gz(在 linux中可能已经包含后CVS)。运行:
[root@hostcvs /root]$ gzip –dvf cvs-1.11.1p1.tar.gz
CVS的权限设定的原则是:
CVS用户必须拥有对/cvsap/src/master/CVSROOT目 录及其中所有文件的读权限。
CVS用户必须拥有对/cvsap/src/master/CVSROOT目 录下history文件的写权限。
CVS客户端安装及使用简单指南
CVS客户端安装及使用简单指南CVS是一种源代码版本控制系统,常用于协调团队成员之间的代码开发。
它可以帮助团队成员在多个工作站上共享和更新源代码,使得多人合作开发更加高效和方便。
本文将介绍如何安装和使用CVS客户端。
一、安装CVS客户端3.双击安装包文件,按照安装向导的指示完成安装。
二、配置CVS客户端1.打开终端(或命令提示符),输入以下命令查看CVS客户端是否已正确安装:```$ cvs --version```如果显示了CVS的版本信息,则说明安装成功。
```$ cvs -d <CVS服务器地址> login```其中,`<CVS服务器地址>`为您的CVS服务器的地址。
然后按照提示输入用户名和密码。
3.配置CVS客户端的全局忽略设置,该设置将决定哪些文件在提交代码时被忽略。
在终端中输入以下命令:```$ cvs -d <CVS服务器地址> edit-cvsroot```三、使用CVS客户端1.检出代码:在终端中输入以下命令,将代码从CVS服务器中检出到本地:```$ cvs -d <CVS服务器地址> checkout <代码仓库路径>```2.更新代码:在终端中进入代码目录,输入以下命令更新本地代码:```$ cvs -d <CVS服务器地址> update```这将与CVS服务器同步,将最新的代码更新到本地。
3.提交代码:在终端中进入代码目录,修改完代码后,输入以下命令提交代码到CVS服务器:``````CVS将会检测并记录您的代码修改,并将其提交到服务器上。
4.比较代码:通过比较工具可以比较不同版本的文件或文件夹之间的差异。
在终端中输入以下命令,比较两个版本的文件差异:```$ cvs -d <CVS服务器地址> diff -r <版本1> -r <版本2> <文件路径>```其中,`<版本1>`和`<版本2>`为要比较的版本号,`<文件路径>`为要比较的文件路径。
cvs和wincvs配置
cvs配置作者:施浩日期:2013/9/21版本:V1.0cvs介绍CVS是一个C/S系统,可以帮助开发人员进行项目版本控制,使得项目文件能够同步,便于项目成员对源码的维护。
在一台服务器上建立一个项目文件仓库(包含源码),有管理员统一管理。
每个用户在使用文件之前,首先要将文件下载到本地,之后用户可以对文件进行任何修改,最后使用CVS命令进行提交,由CVS库进行统一管理。
CVS把一个文件的所有版本保存在一个文件里,仅仅保存不同版本之间的差异,很容易恢复旧版本,可以避免项目成员之间的文档或源码相互覆盖。
CVS的配置分为服务器端可客户端两部分,在这里服务器段使用LinuxRedHat 5环境,客户端在Win 7环境访问。
服务器端说明在【HAND产品集成虚拟机】中安装了CVS,可以使用rpm –q –a|grepcvs命令进行查看,可以查看到安装包名。
此处假设虚拟机上没有安装cvs服务。
可以使用rpm –e [cvs安装包名]命令进行软件的卸载。
既然已经安装过cvs服务,虚拟机上也就存在cvs相关的配置,后面将谈及。
准备下载安装包:cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz安装与配置1、将下载好的安装包上传到虚拟机中可以在/u01目录下新建一个cvs-1.11.22文件夹,将.gz文件放在这个文件夹中。
2、使用命令进入这个文件夹,将文件进行解压tar –zxvf cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz3、安装./configuremakemake install4、安装完成后可以测试是否安装成功cvs –version可以看到cvs的版本信息。
客户端说明客户端的配置主要使用wincvs,但是wincvs的安装还需要python,不然shell命令就不能使用。
wincvs和python之间的版本控制需要注意,因为不是两者都是最新的版本是最好的,版本之间的差异会导致wincvs找不到安装的python。
CVS使用方法范文
CVS使用方法范文CVS (Concurrent Versions System) 是一个开源分布式版本控制系统,它允许多个用户并发地管理和跟踪文档、源代码和其他文件的更改。
CVS可以用于个人项目或者团队项目,它有助于组织和维护代码的版本历史记录,并提供了一种协作开发代码的方式。
下面将详细介绍CVS的使用方法。
安装CVS:2.安装CVS。
执行安装文件,并按照安装向导的指示进行安装。
创建一个新的仓库:1.创建一个空的目录。
选择一个合适的位置在你的计算机上创建一个空目录,用于托管你的仓库文件。
2. 初始化仓库。
在新创建的目录中,运行`cvs init`命令来初始化仓库。
导入代码到仓库:1.在你的本地计算机上创建一个新的文件夹来保存你的代码。
2.打开终端(命令提示符或终端窗口)并导航到你的代码文件夹。
3. 运行`cvs import`命令来将你的代码导入仓库。
命令的格式如下:`cvs import -m "initial import" <repository> <vendor tag><release tag>`检出仓库:1.再次打开终端并导航到你希望保存检出代码的目录。
2. 运行`cvs checkout`命令来从仓库中检出代码。
命令的格式为:`cvs checkout <repository>`更新代码:1.打开终端并导航到你检出代码所在的目录。
2. 运行`cvs update`命令来更新你的代码。
提交更改:1.打开终端并导航到你的代码所在目录。
查看仓库历史记录:1.打开终端并导航到你的代码所在目录。
2. 运行`cvs history`命令来查看仓库的历史记录。
回滚到特定版本:1.打开终端并导航到你的代码所在目录。
2. 运行`cvs update -j <previous_version> -j<current_version>`来将你的代码回滚到特定版本。
CVS的配置和使用
CVS的配置和使⽤下⾯是搜集的资料///////////////////本⼈⽤的是CVSNT 2.0.51c,⽤最新的版本在Eclipse中死活不能列出服务器⾥内容,换了这个版本就好了,现在也不知道怎么回事。
⾸先安装,如果是使⽤安装包的版本,很简单,⼀路NEXT;如果是使⽤直接解压的版本,解压缩后把cvsnt.cpl和setuid.dll复制到%WINROOT%\system32下,并在当前⽬录下执⾏以下命令注册CVSNT系统服务:cvsservice -icvslock -i完成后可以在控制⾯版⾥看到CVS for NT的图标,在⾥⾯先启动CVS Service和CVS Lock Service,注意如果使⽤的是解压的版本,还要在CVSNT⽬录下运⾏⼀下genkey⽣成SSL的密钥:genkey.exe cvsnt-default.pem并在SSL settings中选择⼀下刚刚⽣成的密钥⽂件,这个好像没有SSL登陆就没⽤,假设⼀下,没⽤过。
如图:设置Repository,就是CVSNT资源库的位置,切换到Repositories选项卡,Add添加CVSNT资源库的位置,此处Location选为E:/CVSNT/Repository,Name是访问CVSNT服务器时使⽤的路径名,按默认即可,本⼈是/CVSNT/Repository,如果是新建的⽬录,会提⽰你是否初始化Repository,同意即可。
如图:切换到Advanced,先在Use local users for pserver authentication instead of domain users和Pretend to be a Unix CVS version钩上,这是让CVSNT使⽤本地账户作为pserver认证⽅式以及让CVSNT服务器模拟为Unix CVS服务器,如图:CVSNT服务器已经配置好了,接下来是我使⽤过程中遇到问题最多的⽤户配置。
CVS工具配置和使用指南
目录第1章CVS工具的安装配置 (1)1.1基本安装 (1)1.2CVS S ERV ER端的配置 (1)1.3CVS C LIENT端的配置 (3)第2章CVS的基本操作 (5)2.1U NIX环境下的操作说明 (5)2.2W INDOWS环境下的操作说明 (7)第1章CVS工具的安装配置1.1 基本安装以下以UNIX平台为例。
从/servlets/ProjectDownloadList下载最新的cvs安装包到本地后:%gunzip cvs-1.11.2.tar.gz%tar xvf cvs-1.11.2.tar%cd cvs-1.11.2%./configure (可以用./configure --help看看,根据自己的环境添加相应的参数)%make%su - (以正确的用户来安装)%make install1.2 CVS Server端的配置安装完CVS(假设cvs安装在/usr/local/bin)后:启动CVS服务%vi /etc/servicespserver 2402/tcp #cvs pserver port (确认这一行存在。
)%vi /etc/inetd.conf在文件末尾加入:pserver stream tcp nowait root /usr/local/bin/cvs cvs --allow-root=/your/path/for/cvs/repsitory pserver注意这是一行。
然后重新启动inetd进程(一般要root用户权限):%ps -ef | grep inetd 找出inetd的pid%su -%kill -HUP pid%inetd●建立cvsadm用户和组(使cvsadm用户属于cvsadm组,用于对cvs进行管理)在cvsadm用户的.cshrc(ksh,sh对应的文件为.profile)文件中设置环境变量$PATH变量中加入/usr/local/bin并置$CVSROOT为::pserver:cvsadm@192.168.4.33:/your/path/for/cvs/repository其中192.168.4.33为CVS服务器的IP地址。
CVS与配置管理
文件权限
根据对文件所在目录的权限决定对下面文件 的权限,所有的,v文件全部被设置成只读,并 且,不能改变那些文件的权限.在源码库里 的目录对于在每个目录里都有修改文件权限 的人来说才是可写的.这也意味着仅仅能控 制每个目录下文件的存取,无法对单个的文 件施加权限的控制.
权限策略
针对项目建立用户组,对该用户组授权. 模块的顶级目录和下面的可由项目组的所有的 人读写的子目录的mode设成770或者2770,而 对于某些属主可读写,同组可读的,设成750或 者2750. 注意:在这种情况下,须改一下config文件,改成不 在当前模块目录下生成锁文件,把锁文件集 中到一个所有用户都有读写权限的目录. LockDir=/var/lock/cvs
版本控制
通过建立产品基线,控制软件产品 的发布和在整个软件生命周期中对软件 产品的修改,如它将解决哪些修改会在 该产品的最新版本中实现的问题
基线(Baseline)
定义:在配置管理系统中,基线就是一个CI或 一组CIs在其生命周期的不同时间点上通过正 式评审而进入正式受控的一种状态,而这个过 程被称为"基线化".基线是被评审过的一个 或多个软件配置项. 每一个基线都是其下一步开发的出发点和参考 点.基线确定了元素(配置项)的一个版本, 且只确定一个版本.一般情况下,基线一般在 指定的里程碑处创建,并与项目中的里程碑保 持同步.
CVS的安装
建立源码仓库 cvs -d /usr/local/cvsroot init . 会在cvsroot下创建一个CVSROOT目录, 存放管理文件.
CVS的使用
在版本控制中,存储在源码库中的文件统 称为历史文件(history files),这些文件的 名称是在对应在工作目录中的文件名称后面 加上,v,历史文件中包括有足够的信息来再创 建文件的任何一个修订版
【2】cvs配置说明
cvs配置说明第一步:打开CVSNT Control Panel第二步:选择Repository configuration标签,点击Add按钮。
如下图所示:择你的cvs的存放代码的目录。
Name标签自动会加上,Description标签可用填写。
第四步:点击Ok按钮如下图:Run as项可选择administrator,也可在我的电脑->右键->管理,新建用户也可。
标签中把Respond as cvs 1.11.2 to version r 和Respond as cvs 1.11.2 to version r 选上。
点击“确定”按钮。
第七步:选择About标签,在Services,对CVSNT和CVSNT Lock点击Start按钮菜单:Window->Show View ->Other->CVS->cvs Repositories右键New->Repository Location ->Add CVS Repository填写:Location中的:Host:127.0.0.1Repository path: /cvs_resp(和cvs的name名一致)User:administrator(你机器的登录名)Password:admin (你的机器密码)Connection tpye:pserver(选择)Save password (选上)填写完毕如下图:点击Finish按钮Branches:分支标签左面项目: 右键->Team ->share project点击next按钮选择服务器端相关的项目点击next点击next按钮下载项目后,在左面的项目上选择:右键Team->commit 或update 就可以了。
注:commit:是指把你eclipse中的代码传到服务器上面;update:从服务器上更新代码到你的eclipse中。
VSS、CVS、SVN和ClearCase几种配置管理工具的评估和比较
VSS、CVS、SVN和ClearCase等配置工具的评估和比较版本 <1.0>修订历史记录目录1 概述 42 主要功能说明 42.1 Internet网络访问和远程管理 52.2 并行开发支持 62.3 跨平台开发支持 62.4 开发操作使用的便利性 62.5 信息安全性 73 性能详述 73.1 VSS 73.2 CVS 73.3 SVN 83.4 ClearCase 163.4.1 控制任何文件的版本 173.4.2 在版本树中组织元件发展的过程 173.4.3 使用常见的检出/编辑/检入范例 183.4.4 通过分支功能支持并行开发 193.4.5 自动的比较和版本间的归并 191 概述Visual SourceSafe:微软的版本控制工具,仅支持Windows操作系统。
虽然简单好用,但是仅适用于团队级开发,不能胜任企业级的开发工作。
Clearcase:IBM旗下Rational公司(2003年被IBM收购)的一款重量级的软件配置管理(SCM, Software Configuration Managemen)工具。
与CVS和VSS不同,Clearcase涵盖的范围包括版本控制、建立管理、工作空间管理和过程控制。
从最初的软件配置计划,到配置项的确立,从变更控制到版本控制,Clearcase贯穿于整个软件生命周期。
Clearcase支持现有的绝大多数操作系统,但它的安装、配置、使用相对较复杂,并且需要进行团队培训。
CVS:Concurrent Versions System。
CVS 是有着三十年以上的时间的考验。
CVS是开放源代码软件世界的一个伟大杰作,由于CVS功能强大,跨平台,支持并发版本控制,而且免费,所以它在全球中小型软件企业中得到了广泛使用。
CVS最大的遗憾就是缺少相应的技术支持,许多问题的解决需要自已寻找资料,甚至是研究源代码。
CVS是一个典型的服务器/客户端软件,有UNIX版本的CVS 、Linux版本的CVS和WINDOWS版本的CVS。
CVS的安装和配置
1 CVSNT安装安装文件为:cvsnt-2.5.03.2382.msi,双击该文件即可开始安装。
安装结束后,在控制面版或从开始菜单中可以找到CVSNT Control Panel,点击进入C VSNT的控制面版;如图一:图一 CVSNT的控制面版此时启动了两个服务(Service):CVSNT及CVSNT Lock。
2 创建库(Repository)图二 CVS库配置点击Add按钮,即可配置CVS的库,如图三所示:图三配置CVS库按OK按钮,若D:/CVSRepo目录不存在,则会提示是否创建该目录,点击创建该目录,则在本地D盘出现如图四所示的目录结构。
图四 CVS库相应的目录结构在这个目录结构中,其中CVSROOT是管理员所使用的目录。
3 创建用户在开始> 管理> 计算机管理的用户管理中增加一个用户,如cvsUser1。
在一个团队中,有多少个开发者即可以创建多个用户。
以上是CVS服务器端的设置。
下面将说明客户端如何使用CVS,Eclipse本身提供了C VS客户端的功能。
4 在Eclipse中联接CVS库在Eclipse的window > Open Perspective打开CVS Repository Expolrin g透视图(若上下文菜单中没有此选项,则可从other…菜单项中选择),在CVS Resposi tories View窗口的空白区(如图五),右键弹出上下文菜单,CVS > Repository Loc ation…,打开窗口,如图六。
图五 CVS Respositories View窗口图六增加CVS库按finish按钮即可完成设置。
5 将项目加入CVS库例如创建一个名为CVSTestProj的项目,并在其中编写一个HelloWorld的类(假设在包demo下),现在将该项目工程加入cvs库。
右键点击该项目名称,在弹出的上下文菜单中,选Team > Share Project,如图七所示:图七将项目加入CVS库以下用默认选项,按next直至finish。
CVS在windows下安装-配置-使用
1 Cvs 简介CVS 是Concurrent V ersions System (并发版本系统)的简称。
它是一个开放源代码的项目,是当前最流行的版本控制系统,目前绝大部分Open Source 项目都使用它来做版本管理。
如果你还习惯用微软的VSS 来进行Java 项目的版本管理,那么用上Eclipse 后,建议还是转为使用CVS 。
CVS 采用客户机/服务器体系,代码、文档的各种版本都存储在服务器端,开发者首先从服务器上获得一份复制到本机,然后在此基础上进行开发。
开发者可随时将新代码提交给服务器,当然也可以通过更新操作获得最新的代码,保持与其他开发者的一致。
Eclipse 本身内置了CVS 客户端,只要再建立一个CVS 服务器就可以使用这一功能强大的版本控制系统。
CVS 的功能虽强大,但一般项目通常只用到其20%的功能,所以只要了解最常用的操作就可以了。
了解最常用的操作就可以了。
2 安装cvs2.1安装cvsnt直接安装,无特殊操作,一直“下一步”,安装到默认目录c:\Program Files\cvsnt 中。
中。
3 配置cvs3.1配置一个Repositoy使用“开始-所有程序-cvsnt- Service control panel ”来建立一个Repositoy 。
在repository configuration 选项卡中点击add 添加添加中的内容,否则可能出现异常 在location中填写存放位置,name中最好填写location中的内容,否则可能出现异常点击ok后2个弹出窗口中都点击yes在compatibility options选项卡中将cvsnt clients中的前三项都点上勾,点击确定中的前三项都点上勾,点击确定这时我们的初步配置便完成了,c 盘下会出现名为cvsfile 的文件夹的文件夹3.2进行用户建立和配置Repository 配置完成后cvs 会将当前windows 登陆用户作为cvs 的admin 用户,但使用操作系统用户会较麻烦和缺乏安全性,所以我们将禁用操作系统用户。
CVS客户端安装及使用简单指南
CVS客户端安装及使用简单指南CVS是一个版本控制系统,它被广泛用于帮助管理软件开发项目的代码。
本指南将向您介绍如何安装和使用CVS客户端。
第一部分:安装CVS客户端步骤3:完成安装。
一旦安装完成,您将在计算机上找到CVS客户端软件的快捷方式。
使用这些快捷方式来启动CVS客户端。
第二部分:使用CVS客户端步骤1:配置CVS客户端。
在首次使用CVS客户端之前,您需要进行一些配置。
打开CVS客户端,并找到配置选项。
您需要输入有关CVS服务器和您的帐户的信息。
按照向导的指示完成配置过程。
步骤4:提交更改。
要将您的更改提交到CVS服务器,请在CVS客户端中找到提交选项。
输入适当的提交消息,并单击提交按钮。
您的更改将被传输到服务器,并与代码库中的其他更改合并。
步骤6:解决冲突。
如果在更新本地代码时发生冲突(即,您和其他人对同一行代码进行了更改),您需要手动解决这些冲突。
CVS客户端通常会在冲突发生时提供解决选项。
通过选择适当的操作来解决冲突。
步骤7:发布代码。
一旦您对代码进行了更改并提交到服务器,您可以决定何时发布这些更改。
通过将项目标记为已发布或创建一个发布版本来完成此操作。
其他人可以根据这些发布信息来获取代码的特定版本。
步骤8:其他CVS操作。
除了基本的代码检出、更改和提交外,CVS 客户端还提供其他功能,例如分支、标记和日志。
这些功能可以帮助您更好地管理和跟踪您的项目代码。
现在,您已经了解了安装和使用CVS客户端的基本步骤。
务必熟悉CVS客户端提供的各种功能和选项,以便更好地管理您的代码。
开始使用CVS来帮助您的软件开发项目更加高效和有序吧!。
软件配置管理实验报告-cvs
c update如果有,则用update同步文件
d做你自己的修改,并保证正确
e update看是否有人修改了你的文件
f如果有冲突,合并冲突
g commit提交你的修改,如果因为又有人提交修改而失败,回到e步
h回到b步
常用命令
1、cvs checkout module_name
8.配置ECLIPSE与CVS一同工作
实验报告
四、实验小结(包括问题和解决方法、心得体会、意见与建议等)
CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。CVS版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。
CVS使用流程
a checkout仅当本地没有working copy时使用
5、cvs log file_name查看修改历史和注释信息
最常用的指令:
检查版本状态(版本库中最新版本) cvs status文件名
比较当前文件与版本库中的差别cvs diff文件名
比较两个版本的差别cvs diff -r版本1 -r版本2文件名
程序入库cvs commit(ci)文件名
从版本库中提取最新版本cvs update文件名
3、cvs commit -m "write some comments here" file_name确认修改写入到CVS库里。
cvs admin -m 1.3:"write some comments here" file_name修改某个文件某个版本的注释
4、cvsstatus filename查看状态
module_name可以暂时理解为目录名,它会在本地当前目录下建立module_录,在把服务器上所有module_name目录下的文件copy到本地module_name目录下。
CVS培训教程
CVS培训教程CVS(Concurrent Versions System)是一个版本管理系统,可以追踪更改并管理多个项目的多个版本。
它被广泛用于软件开发项目中,以便团队成员能够协作开发新功能和更新代码。
要使用该系统,需要进行CVS培训。
CVS培训教程是为那些希望使用CVS的开发人员准备的,包括系统管理员、开发人员和测试人员等。
这个教程将介绍如何使用CVS进行版本控制,如何管理代码库,如何配置CVS服务器等。
以下是一份简单的CVS培训教程:第1步:安装CVS。
CVS可以在Linux、Unix、Windows和macOS平台上运行。
有关如何安装CVS的说明,请参见CVS服务器的安装指南。
第2步:创建代码库。
在CVS中,代码库(repository)是包含代码的地方。
要开始使用CVS,必须创建代码库。
可以使用以下命令创建代码库:cvs init这将在当前目录中创建一个新的代码库。
第3步:配置CVS。
配置CVS非常重要,因为它决定了CVS 系统如何运行。
可以使用以下命令配置CVS:export CVSROOT= /home/cvsrepo其中“/home/cvsrepo”是代码库所在的目录。
第4步:添加用户。
在CVS中,每个用户都应该被赋予适当的权限,否则他们将无法执行特定的操作,如提交代码。
可以使用以下命令添加用户:cvs adduser username其中,username是要添加的用户的用户名。
第5步:检出代码。
在CVS中,要开始工作,需要检出代码。
检出是指将代码复制到本地计算机以进行更改和编辑。
可以使用以下命令检出代码:cvs checkout projectname其中,projectname是你要检出代码的项目的名称。
第6步:提交更改。
在CVS中编辑代码修改后,必须提交更改以便团队成员可以查看和合并更改。
可以使用以下命令提交更改:cvs commit filename其中,filename是要提交的文件名。
CVS简单教程范文
CVS简单教程范文CVS(Concurrent Versions System)是一个版本控制系统,许多开发者使用它来追踪和管理项目的不同版本。
本文将为你提供一个基本CVS 教程,帮助你了解如何开始使用CVS。
第一步:安装CVS第二步:创建一个新的CVS存储库在你的项目文件夹中创建一个新的CVS存储库。
你可以使用以下命令在命令行中完成此操作:```cvs init```这个命令将在当前目录下创建一个名为CVSROOT的文件夹,该文件夹将存储CVS存储库的元数据和其他相关信息。
第三步:导入项目到CVS存储库使用以下命令将你的项目导入CVS存储库:```cvs import -m "initial import" project-vendor project-release```在上述命令中,`-m`参数用于指定导入的注释消息,`project-vendor`和`project-release`是CVS存储库的路径。
这个命令将把你的项目文件复制到CVS存储库。
第四步:设置CVS环境变量接下来,你需要设置一些环境变量,以便你可以轻松地在命令行中使用CVS命令。
首先,将CVS命令所在的目录添加到系统的PATH环境变量中。
例如,如果你的CVS命令位于/usr/local/bin目录下,你可以使用以下命令将它添加到PATH环境变量中:```export PATH=$PATH:/usr/local/bin```然后,设置CVSROOT环境变量以指向你的CVS存储库。
例如,如果你的CVS存储库位于/home/username/CVSROOT目录下,你可以使用以下命令将其设置为CVSROOT环境变量:```export CVSROOT=/home/username/CVSROOT```这样做后,你就可以在命令行中直接使用CVS命令了。
第五步:检出项目使用以下命令从CVS存储库中检出你的项目文件:```cvs checkout project-vendor/project-release```这个命令会将存储库中的项目文件复制到当前目录。
CVS使用及配置
1.安装与配置CVSNTCVS 全称Concurrent Versions System,主要用于管理在开发过程中生成的源代码、文档等资料,记录他们的更新历史,使开发团队各成员可以更好的协作。
CVS版本控制系统采用C/S架构,目前CVS server可以支持Linux、windows 2000/xp/2003以及部分unix(如sun的solaris等),CVS client在linux、windows、unix上也有对应的版本。
在eclipse中已经内置了CVS client,eclipse的文档中建议将CVS server安装在linux、unix等操作系统上,不过在我们大多数人的开发中,采用CVS server for windows仍然是最方便快捷的方式,尽管它可能比不上linux、unix版本那样的稳定。
在正式的配置之前你需准备的软件:1、eclipse /javamxj/archive/2004/10/11/131952.aspx目前最新的版本是3.0.12、cvs server for windows /cvspro/目前最新的版本是2.0.51d(注:关于如何在CVSNT 2.0.58d 版本下使用,请参考/javamxj/archive/2005/01/05/240726.aspx)主要内容:1、安装与配置cvsnt;2、在eclipse中配置CVS client;3、创建一个CVS实例;4、实践CVS;第一节安装与配置cvsntcvsnt直接运行安装程序安装即可。
配置cvs server1.开始->所有程序->cvsnt ->Service control panel,出现以下窗口:(安装后的默认状态是运行的)2.切换倒repositories页,点击“add”按钮建立一个项目库,在这里我新建一个D:/cvsfile目录,点击OK,出现一个对话框,点击"是"即可.3. 切换到Advanced页:选择如下:一定要将use local users for pserver和pretend to be a unix CVS server这两项选上,前者是要求cvs server采用windows 的本地用户进行权限认证,如果采用域用户权限,那么所有的客户端开发机都必须要登录到windows域才能连接到CVS server,比较麻烦。
CVS原理简述范文
CVS原理简述范文CVS(Concurrent Versions System)是一种版本控制系统,专门用于协同开发和管理项目的代码。
它具有强大的功能和简单易用的界面,被广泛应用于软件开发行业。
CVS的原理基于文件系统的快照,它将项目代码存储在一个中央仓库中,并允许多个开发人员同时修改和提交代码的变更。
以下是CVS的几个关键原理:1.版本控制:CVS将每次提交的代码变更保存为一个版本,并为每个版本分配一个唯一的版本号。
这样,开发人员可以根据需求切换回不同的版本,查看历史变更记录,并比较不同版本之间的差异。
2.并发控制:CVS支持多用户并发操作,即允许多个开发人员同时修改和提交代码。
它通过文件锁定和冲突解决机制来确保多个人员之间的代码修改不会冲突或覆盖对方的工作。
3.差异存储:CVS以增量的方式保存代码变更。
当开发人员提交代码时,CVS会计算出修改的差异,并将这些差异与之前的版本进行合并。
这种差异存储机制可以大大减小存储空间的占用,并且允许快速检索和还原历史版本。
4.分支和合并:CVS支持分支和合并功能。
开发人员可以创建分支,以便在不影响主线开发的情况下进行特定功能或实验性的工作。
完成工作后,可以将分支合并回主线,确保代码的一致性和可维护性。
5.用户权限管理:CVS允许管理员对用户的访问权限进行细粒度的管理。
可以通过创建用户组、给用户分配不同的权限角色以及设置访问控制列表来控制用户对不同项目和文件的访问权。
CVS的工作流程如下:1. 开发人员首先从中央仓库检出(checkout)代码。
这意味着他们将代码库的一份副本拷贝到本地工作目录中,以进行修改和测试。
2.开发人员在本地工作目录中对代码进行修改和调试。
他们可以随意修改、添加或删除文件,并在本地对这些变更进行版本控制。
4. 如果其他人员在同一时间修改了相同的文件,CVS会检测到冲突(conflict)。
开发人员需要手动解决这些冲突,确保代码的一致性和正确性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
配置管理工具之CVS这一章是为那些从没有用过CVS和那些以前可能从没用过版本控制软件的人所准备的。
如果你已对CVS很熟悉,仅仅想了解某一个特点或是为了记住某一个命令,那么你可以跨过这一切。
CVS是什么?CVS是一个版本控制系统。
使用它,你可以记录下你的源文件的历史。
例如:修改软件时可能会产生一些bug,而且可能过了很久你才会察觉到它们的存在。
有了CVS,你可以很容易地恢复旧版本,并从中看出到底是哪个修改导致了这个bug 。
有时这是很有用的。
当然了,你可能把所有版本的所有文件都保存了下来。
但这会浪费大量的磁盘空间。
而CVS用一种聪明的办法来保存一个文件的所有版本——仅仅保存不同版本之间的区别——在一个文件里。
如果你是项目开发组的一员,CVS也会帮助你。
除非极为小心,成员之间很容易互相覆盖文件。
一些编辑器,如GNU Emacs,会保证同一时间内同一文件绝不会被两个人修改。
不幸的是,如果有人用了另外的编辑器,这种保护就没用了。
CVS 用隔离开不同的开发者解决了这个问题。
每个开发者在他自己的目录里工作,等每一个开发者都完成了他们自己的工作后,CVS会将它们合并到一起。
CVS最初由Dick Grune在1986年12月以shell scripts的形式发布在comp.sources.unix的新闻组第6卷里。
虽然当前的CVS中没什么代码来自于这些shell scripts,但许多CVS的冲突解决算法是从它们来的。
1989年4月,Brian Berliner设计了CVS并编写了代码,之后Jeff Polk帮助Brian设计了CVS模块发行分支。
你可以从好多渠道得到CVS,包括从INTERNET上自由下载。
有关下载CVS和其它与CVS相关的话题,请访问下面网址:/http://www.loria.fr/~molli/cvs-index.html有一个关于CVS的邮件列表,名叫info-cvs,要订阅或退订请发email:info-cvs-request@。
如果你更喜欢新闻组,comp.software.config-mgmt 可能比较适合于讨论CVS(还有其它一些配置管理系统)。
将来,可能会创立一个comp.software.config-mgmt.cvs, 当然那要确取决于在comp.software.config-mgmt上有足够的CVS讨论。
你也能订阅bug-cvs邮件列表,详见[附录 H]。
要订阅可以发emal到bug-cvs-request@。
CVS不是什么?CVS可以为你做很多,但不要指望它能为每一个人做每一件事情。
CVS不是一个BUILD系统。
虽然你的源码库(repository)和模块文件与你的BUILD系统互相作用(例如:Makefiles),但它们本质上还是互相独立的。
CVS不能指导你如何构造什么,它只是将你所设计的文件以一种树结构保存下来以备恢复之用。
CVS不能决定如何在一个检出的目录使用磁盘空间。
如果你在每一个目录中都写下Makefiles或脚本,且必须知道其它一切的相对位置,有时不得不要检出整个源码库。
如果你将你的工作模块化,并且建立了一个共享文件的build系统(通过links,mounts,Makefiles里的VPATH等),你就可以随意安排磁盘的使用。
不过你要记住构建和维护这样一个系统是要做许多工作的,而CVS不善此道。
当然了,你应该在CVS下放一个工具来支持这样一个构造系统(脚本,Makefiles,等等)。
当有些变化发生在CVS范围之外时,要想想什么文件需要重建。
一个传统的方法是用make来构造,并用一些自动化的工具来产生make所用的相关文件。
关于结合CVS进行build,请参考[第 14 章]。
CVS不能替代管理.你的经理和项目负责人应经常与你交流以确保你时时记得进度表、合并点、分支名和发布日期。
如果他们不这样做,CVS也没用。
CVS只是一个用来使你的资源与你的步调一致的工具。
但你是风笛手和作曲家。
没有哪种乐器会自己演奏或是作曲。
CVS 不能代替开发者之间的交流.在单个文件内遇到冲突时,大多数开发者不费多大力气就能解决它们。
但更常见的"冲突(conflict)",是那些难度较大、不在开发者之间进行交流就没法解决的问题。
当在一个文件内或多个文件中同时发生变化时,CVS并不知道何时它们会在逻辑上发生冲突。
它的冲突(conflict)概念是纯粹文本意义上的,这种冲突会在同一个文件的两种变化十分接近以致于会破坏合并命令(如diff3)。
CVS决不会指出程序逻辑上非文本或分布式的冲突。
例如:假如你在文件A中改变了函数X的参数。
同时,别人在编辑文件B,仍用旧参数调用X这个函数。
此时产生的冲突CVS可就无能为力了。
要养成经常阅读说明书和经常与你的同伴交谈的习惯。
CVS没有变化控制变化控制可以指许多事情。
首先它的意思可以是BUG跟踪(bug-tracking),就是说它能维持一个数据库,其中包括已报告的BUG和每一个BUG状态(比如:是否已更正?在哪一个版本中?提交这个BUG的人是否认为已经更正?)。
为了使CVS和一个外部的跟踪BUG系统协调一致,请参考rcsinfo和verifymsg文档[附录 C]。
变化控制的另一个方面指跟踪这样的情况,即对好几个文件的改变实际上只是同一个逻辑变动。
如果你在一次cvs commit操作中改变了几个文件,CVS会忘掉它们是一起改变的,即便它们共用一个LOG信息。
做一个GNU风格的Changelog 可能会有点用。
在一些系统中,变化控制的另一个方面是跟踪每一个变化的状态的能力。
一些变化由一个开发者写出,而另一些变化则由另一个开发者来作出评论,等等。
一般来讲,用CVS来做,是产生一个diff(用cvs diff或diff),可以用patch来利用。
这个非常灵活,但依赖于CVS之外的机理以保证事情不会崩溃。
CVS不是自动测试程序测试套件可以利用commitinfo文件。
不过我没有听说过多少项目试图那样做或whether there are subtle gotchas。
CVS没有内建的处理模型有些系统提供一些方法确保变更或发布通过不同的步骤,以及各种所需的批准过程。
一般地,你可以用CVS来完成它,但是有点不太够。
有些情况下你想用commitinfo, loginfo, rcsinfo或verifymsg文件,要求在CVS提交之前完成某些操作。
你也会考虑诸如branches和tags等特性是否能用在一个开发树,然后合并仅被证明一次的修改到一个稳定的树。
例子作为一种介绍CVS的方式,我们将使用CVS进行一次演练(work-session)。
第一个要明白的是CVS把所有的文件集中保存在一个源码库(repository)[第 2 章]中;在此我们假定已建立好一个源码库。
假定你开发的是一个简单的编译器。
源文件包括几个C文件和一个Makefile。
编译器叫tc(Trivial Compiler), 同时源码库已建立。
因此有一个叫tc的模块。
获取源文件首先要做的是得到一份tc源文件的工作拷贝。
你需要用checkout命令:$ cvs checkout tc这样会创建一个名为tc的新目录并把源文件复制到这个目录中。
$ cd tc$ lsCVS Makefile backend.c driver.cfrontend.c parser.cCVS目录是CVS内部使用的。
正常情况下,不要改变或移动里面的任何文件。
用你的编辑器,对backend.c进行修改,几小时的优化后通过了编译器。
RCS和SCCS使用者应注意:不必锁住你想编辑的文件。
详细解释请参考[第 10 章]。
提交修改当你刚用编译器检查过文件可以编译时,你却决定对backend.c做新的修改。
CVS 会把你的新文件保存在源码库中并且使用同一源码库的任何人也可以得到它。
$ cvs commit backend.cCVS打开一个编辑器,让你输入一个日志信息。
你敲入“Added an optimization pass.”, 保存这个临时文件,退出了编辑器。
环境变量$CVSEDITOR决定运行哪一个编辑器。
如果没有设置$CVSEDITOR而设置了环境变量$EDITOR,那么就会启用后者。
如果两者都未设置,那么会启用一个默认编辑器,比如在unix系统上会是vi, 在Windows NT/95系统是notepad。
做为补充, cvs还会检测$VISUAL环境变量. 这取决于是否需要和以后的CVS版本是否检测$VISUAL. 不必多虑,你不设置$VISUAL或者将它与$EDITOR设成一样.当CVS启动编辑器时,它包含了一个被修改的文件的名单。
对于CVS客户,这个名单基于文件的修改时间和它最近一次被修改的时间。
因此,如果一个文件的修改时间改变了而内容没有,它就好象一个修改过的文件一样。
处理这种情况最简单的的办法是别管它——如果你使用提交的话,CVS会检测到它的内容没有改变,从而把它作为未改变的文件来处理。
下一次update会告知CVS此文件没有修改,并会重设时间标记以便此文件不会在以后的编辑过程中出现。
如果你想避免打开一个编辑器,你可以在命令行使用-m标记来指定日志信息,如下所示:$ cvs commit -m "Added an optimization pass" backend.c清除在你转到其他程序任务之前,如果要删除tc的工作拷贝,一般采用如下方法:$ cd ..$ rm -r tc但是更好的方法是使用release命令[release--Indicate that a Module is no longer in use 在附录 A]:$ cd ..$ cvs release -d tcM driver.ctcYou have [1] altered files in this repository.Are you sure you want to release (and delete) directory `tc': n** `release' aborted by user choice.release命令检查你所做的所有更改。
如果打开历史纪录功能,它会同时在历史档案文件中加入一条注释。
[The history file 在附录 C]。
当你用release的-d参数时,它将删除你的工作拷贝。
在以上的例子中,release命令向输出设备写了几行文字。
? tc意思是CVS不认识文件tc。
这一点你不需要担心。
tc是一个可执行文件,它不会被存储在源码库中。
关于如何消除这些警告,参见[Ignoring files via cvsignore 在附录 C]。