软件配置管理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建立软件配置管理环境
建立软件配置管理环境(cvs)1.安装CVS服务器1.1windows环境1.1.1 下载由下载到CVSNT的安装程序。
1.1.2 安装在服务器端执行下载得到的安装程序,进行CVSNT安装。
Windows XP and 2003注意:某些系统的WMI 服务可能会引起访问拒绝错误。
为了避免这种情况的发生,安装前必须停止WMI服务,安装完成后重新启动WMI服务。
Start Screen:License Agreement:Install Directory Selection:Antivirus Software Warning:Install Component Selection Screen:Shortcut Folder Selection Screen:Task Selection Screen:Ready To Install!:Install Progress:Installation Done!:注意:如果遇到有关genkey.exe错误,并且安装成功,但是SSL key 没有生成;因此sserver protocol 不能正确工作。
1.1.3 系统重新启动第一次安装CVSNT后必须重新启动系统,否则当你建库时将会发生“Repository initialization failed”错误。
1.1.4 创建CVS目录在CVS服务器创建两个目录,例如:c:\cvsrepo和c:\cvstemp。
目录必须建立在NTFS盘上。
C:\cvstemp 由SYSTEM的所有用户控制。
Cvstemp目录不能建立在c:\WINNT\Temp或c:\Documents and Settings。
在server 创建一个名称为“CVSUsers”的组,并添加属于这个组的所有CVS 用户。
1.1.5 CVSNT控制面板配置打开控制面板并找到CVSNT applet (绿色的鱼):启动下列插图applet:注意:如果发生问题可能的原因是系统的一些dll丢失。
CVS是什么
问:请问CVS是什么啊?答:CVS是一个很老的版本控制的工具软件了。
想入门的话推荐一个简单教程:(版权归原作者哦,你可以去百度一下原文。
)-----------------------------------------------------CVS简单教程------------------------------现在服务器和客户端都设置好了,那么怎么用呢,我在这里写一个最简单的(估计也是最常用的)命令介绍:首先,建立一个新的CVS项目,一般我们都已经有一些项目文件了,这样我们可以用下面步骤生成一个新的CVS项目:1. 进入到你的已有项目的目录,比如叫cvstest:$cd cvstest2. 运行命令:$cvs import -m "this is a cvstest project" cvstest v_0_0_1 start说明:import 是cvs的命令之一,表示向cvs仓库输入项目文件.-m参数后面的字串是描述文本,随便写些有意义的东西,如果不加-m 参数,那么cvs会自动运行一个编辑器(一般是vi,但是可以通过修改环境变量EDITOR来改成你喜欢用的编辑器.)让你输入信息,cvstest 是项目名称(实际上是仓库名,在CVS服务器上会存储在以这个名字命名的仓库里.)v_0_0_1是这个分支的总标记.没啥用(或曰不常用.)start 是每次import 标识文件的输入层次的标记,没啥用.这样我们就建立了一个CVS仓库了,然后,我们可以把这个测试项目的文件删除.试验一下如何从仓库获取文件.这里我假设上面的所有客户端工作你都已经做过了.运行下面的命令:$cvs checkout cvstest从仓库中检索出cvstest项目的源文件.如果你已经做过一次checkout了,那么不需要重新checkout,只需要进入cvstest项目的目录,更新一把就行了:$cd cvstest$cvs update一下即可.又或者你不想直接更新,只是想看看有没有更新的东西,那么:$cvs status这时后会打印出一长串状态报告(你可能需要用类似less这样的命令分页显示,或者定向到一个输出文件里慢慢看.),对项目中的每个文件有一份状态报告,类似这样:=========================================================== ========File: foo.c Status: Up-to-dateWorking revision: 1.1.1.1 'Some Date'Repository revision: 1.2 /home/cvsroot/cvstest/foo.c,vSticky Tag: (none)Sticky Date: (none)Sticky Options: (none)这里最重要的就是Status 栏,这里总共可能有四种状态:Up-to-date:表明你要到的文件是最新的.Locally Modified:表明你曾经修改过该文件,但还没有提交,你的版本比仓库里的新.Needing Patch:表明有个哥们已经修改过该文件并且已经提交了!你的版本比仓库里的旧.Needs Merge:表明你曾经修改过该文件,但是偏偏有个不识相的也修改了这个文件,而且还提交给仓库了!如果你只是想保持软件的同步的话(象我),那么上面的东西就足够用了.可是如果多人协作开发项目的话,可就不是了这么简单了.当你参加项目,维护文件时,就需要更多命令,比如说你我都是某nasdaq 项目的开发人员:1,你对某个文件做了修改,比如说改了ceo.c,加了一行程序:printf("where can I find VC to cheat!");改完之后你要把修改提交给仓库,用命令:$cvs commit -m "add a complain" ceo.c或者就是:$cvs commit -m "worry about money"让cvs帮你检查哪个文件需要提交.2,当我开始干活的时候,可能我先:$cvs status一把,这时候我会看到:=========================================================== =======File: ceo.c Status: Needing PatchWorking revision: 1.1.1.1 'Some Date'Repository revision: 1.2 /home/cvsroot/nastaq/ceo.c,vSticky Tag: (none)Sticky Date: (none)Sticky Options: (none)于是我知道有人改了ceo.c,于是我就:$cvs update ceo.c或者干脆:$cvs update把ceo.c这个文件更新为最新版本,然后再干活.然后提交.如果这天你修改了coo.c,加了一行puts("how about another kind of bragging?");并且提交了,但是这时候我已经$cvs status 过了,就是说我不知道你的修改.而我加了一行printf("You must shamelessly and seems knowingness to act as a coo");并且傻乎乎地提交:$cvs commit coo.c这时候,CVS会告诉我cvs commit: Examing .cvs server: Up-to-date check failed for 'coo.c'cvs [server aborted]: correct above error first!于是我知道有个狗屎在我修改文件的当口做了提交,于是我$cvs update这时cvs会报告:RCS file: /home/cvsroot/nasdaq/coo.c,vretrieving revision 1.1.1.1retrieving revision 1.2Merging differences between 1.1.1.1 and 1.2 into coo.crcsmerge: warning: conflicts during mergecvs update: conflicts found in coo.cC coo.c告诉你coo.c有版本冲突,于是我编辑coo.c,这时一般文件里看起来象这样: ...printf("You must shamelessly and seems knowingness to act as a coo");<<<<<<< foo.c=======...puts("how about another kind of bragging?");>>>>>>> 1.2...于是我把上面改成:printf("You must shamelessly and seems knowingness to act as a coo");puts("how about another kind of bragging?");然后$cvs commit -m "merged" coo.c于是下回你再更新的时候就有新的补钉要打...如此往复,直到完成所有修改.不过这里有一些要注意的地方就是删除程序,如果你删掉一行对你可能没有用的程序puts("to be honest"); 而我不想删除(因为我有用),而我不知情地直接:$cvs update了,那么我的这行程序也完蛋了,所以这里我们要注意所有开发人员的协调,千万不要乱删东西,大不了用#if 0#endif宏定义对括起来.实在要删东西,那最好先标记一个版本:$cvs tag v_0_0_1然后你可以发布并删除你自己的工作目录里这个版本的文件(注意:不是删除仓库里的.):$cvs release -d nasdaq然后你再生成一个新分支:$cvs rtag -b -r v_0_0_1 v_0_0_1_1 nasdaq然后再建立v_0_0_1_1的分支$cvs checkout -r v_0_0_1_1 nasdaq编辑并修改这个分支的文件,这样的做法比较好.不过要注意的是,新标记和新分支的建立最好由项目的管理人员负责,否则每个人都做一个分支,那么仓库就太乱了.因此,比较的开发人员之间的直接沟通是不能忽略的.一般来说,在互联网上的标准模式是有一个管理员(可能自己并不写程序),有一个邮递列表,大家都在邮递列表上交流看法和做各种决议.当形成决议之后,管理员做一个新版本的标记.以此循环.还有一些命令,比如要增加一个文件garbage_china_concept_stocks_list:$cvs add garbage_china_concept_stocks_list然后还要:$cvs commit garbage_china_concert_stocks_list看起来有点象数据库里的事务?的确是这样.CVS维护着一个本地的参考文件(在CVS/Entries里),这样提交的时候就可以一次地把所有改变放到服务器端,这样也更安全.同样,如果想删除文件bankrupted_web_site:$rm bankrupted_web_site$cvs remove bankrupted_web_site$cvs commit bankrupted_web_site3,一些小技巧:$Header$ 标记:把这个标记放在文件的任何地方都会被cvs 替换成最后修改的cvs 用户名,该文件当前版本号,最后修改时间,该文件的cvs 仓库路径,看起来象下面这个样子:// $Header: /home/cvsroot/simhost/simhost.cpp,v 1.2 2001/04/20 08:26:10 jqliu Exp $一般我们把它放在开头,这样对程序员修改文件非常便利,很多时候你只要看一眼开头就知道文件是否最新.$Id$标记:把这个标记放在文件的任何地方都会被cvs 替换成最后修改的cvs 用户名,该文件当前版本号,最后修改时间,该文件的cvs 仓库路径,看起来象下面这个样子:$Id: simhost.cpp,v 1.3 2001/04/24 02:27:36 simhost Exp $好了,上面所有的东西,估计就是我们用cvs时80%情况下用的命令和内容,包括文件的更新,提交,冲突的解决,分支的派生,增删文件等.实际上cvs的功能之强大,远远超出我在这里描述的内容,我这个”速成”也就管不了太多了,希望随着时间的推移,我们能够更加有效地使用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概述何谓CVSCVS(Concurrent Version System)是一种客户机/服务器系统,可以让开发人员将他们的项目存储在称为资源库的中央位置。
使用cvs客户机工具,开发人员可以对资源库的内容进行更改。
CVS 资源库会依次记录对每个文件所做的每个更改,并创建一个完整的项目开发进展历史。
开发人员可以请求特定源文件的旧版本、查看更改日志,并根据需要执行其它一些有用的任务。
什么是版本控制系统版本控制就是在项目中记录和读取变更的过程。
版本控制系统可以让你取回原有的旧版本来修正其缺陷或更新其功能,并可以让你分组开发,使项目得以多方面同时进行以及产生报告来显示项目中任意两个阶段之间的差异。
软件开发中为什么要用CVS软件业发展到现在,一个项目越来越大,多人协同工作对于一个项目越来越普遍。
在多人工作环境下,版本管理是一个重要的问题,没有好的版本控制和版本管理,大的工程无法顺利进行。
即使是对于一个人开发,版本管理工作也很有益处,它能让您的工作条理清晰,避免许多重复工作。
CVS版本控制系统的优点文件的任何已存储的修订版都可以被调出来观看或修改任两个修订版之间的差异都可以显示出来修补版可以自动建立可以多名开发人员同时编辑同一项目或文件而不会遗失数据项目可以分组开发多方面同时进行。
这些分支版本最后可以合并到开发主线中可以通过规模大小不同的网络进行分布式开发(CVS提供各种不同的认证机制)CVS图解CVS服务器开发者开发者开发者版本同步Import、Checkout、Commit、UpdateCVS中涉及到的概念 仓库模块沙箱仓库Repository: 中文名称:仓库。
它是CVS服务器(可能在远程,也可能在本地)的根目录,我们所有的工作都保存在这个仓库中,包括源代码和这些代码的全部历史。
你可以把Repository想像成一个仓库,仓库中有许多“木桶”,每个“木桶”就是我们的一个让CVS管理起来的工程。
对于CVS来说,这些“木桶”之间是没有什么关联的,删除一个“木桶”不会影响别的“木桶”。
cvs介绍
简介CVS 是 Concurrent Version System(并行版本系统)的缩写,用于版本管理.如果大家曾经参与过多人协作开发的项目,大家肯定有这样的痛苦经历:由于多个人同时修改同一个文件,自己辛辛苦苦修改的程序被别人彻底删除了.另外,如果你的软件/程序已经发布了三个版本,而这时候用户需要你修改第二个版本的东西,也许你会因为只保留了最新版本而痛哭流涕。
还有就是你对程序做了一些修改,但是修改很少,你只想给远方的同事发一个两个版本之间的差别文件,这样可以免于邮箱不够大,网速太慢之类的问题.为了解决类似这样的问题,以及诸如生成补丁文件,历史版本修改等,一帮黑客(褒义)在原先 Unix 体系里很成熟的 SCCS 和 RCS 的基础上,开发了 CVS。
(SCCS:Source Code Control System,RCS:Revision Control System)。
CVS 的基本工作思路是这样的:在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序。
由仓库管理员统一管理这些源程序.这样,就好象只有一个人在修改文件一样.避免了冲突.每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地。
用户做的任何修改首先都是在本地进行,然后用cvs 命令进行提交,由 cvs 仓库管理员统一修改.这样就可以做到跟踪文件变化,冲突控制等等.由于 CVS 是典型的 C/S 结构的软件,因此它也分成服务器端和客户端两部分。
不过大多数CVS 软件都把它们合二为一了。
我们这里就分别从服务器和客户端的角度讨论cvs的使用。
Cvs服务器安装首先确保系统安装有cvs:[root@mailxinetd.d]# rpm -qa|grepcvscvs-1.11.1p1-3如果命令输出类似于上面的输出则说明系统已经安装有cvs,否则就需要从安装光盘中安装cvs的rpm包。
一创建CVS属主用户:# useradd -d /cvsrootcvs# chmod 771 /cvsroot二、建立CVS仓库(初始化cvs)# sucvs$ cvs -d /cvsrootinit$exit#四、启动cvs服务器在/etc/xinetd.d/目录下创建文件cvspserver,内容如下:# default: on# description: The cvs server sessions;service cvspserver{socket_type = streamwait = nouser = rootserver = /usr/bin/cvsserver_args = -f --allow-root=/cvsrootpserverlog_on_failure += USERIDonly_from = 192.168.0.0/24}其中only_from是用来限制访问的,可以根据实际情况不要或者修改。
CVS使用说明
© 2004 PTC
客户端配置-2
5
PTC Global Service
© 2004 PTC
登录
选择菜单“管理\登录…”
缺省的密码为:changeme
如果返回值为0,说明登录成功。 WinCVS中所有的操作返回值为0都表示成功, 为1表示失败。
6
PTC Global Service
© 2004 PTC
CVS使用说明
Eric Lin Sep 05, 2005
CVS简介
CVS 是 Concurrent Version System(并行版本系统)的缩写,用 于版本管理。
CVS 的基本工作思路:
•
在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程 序。 由仓库管理员统一管理这些源程序,就好象只有一个人在修改文件一 样,避免了冲突。 每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地。 用户做的任何修改首先都是在本地进行,然后用 cvs 命令进行提交, 由 cvs 仓库管理员统一修改。
© 2004 PTC
WinCVS界面
受CVS控制。
不受CVS控制。
9
PTC Global Service
© 2004 PTC
添加新的文件
依次为: 以文本方式添加 以二进制方式添加 以Unicode方式添加
允许同时添加多个文件,添加后需要提交。 所有源程序(如java,rbInfo,txt,html等)都以文本方式添加,其它的(如 ser,doc,xls,ppt,gif,jpg,bmp,class等)以二进制方式添加。
需要管理员用户才可以添加用户; 映射到管理员用户:
更改d:\cvsroot\CVSROOT\passwd文件,设置某个用户映射到 administrator用户,如: eric:TS0inDwBZk4g.:administrator
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_使用简介1
一、服务器搭建与配置1、安装cvsserver(默认安装,省略)2、新建一个文件夹如:f:/CONFIGROOT;3、在repository configuration中配置cvs仓库,之后可以在F:\CONFIGROOT\CVSROOT中看到许多关于cvs的配置信息4、server settingserver setting中run as 选择具有windows管理者权限的用户5、在cvs control panel的about中重启一下cvs。
6、cmd下,cvsroot环境变量配置:set cvsroot=:pserver:Administrator@HOUQING:/CONFIGROOT(set cvsroot=:协议:用户名@主机名:/仓库名)注意,可以直接在系统环境变量里边设置了cvsroot(只有一个资源库时比较适用),这样不用每次都手动设置cvsroot,但是当有多个资源库的时候,可能会有问题。
7、cvs login登陆Cvs login 资源库名以后登录后,可以用cvs ls查看资源库中的module8、添加用户及密码设置(unix、xp中一般这样操作;win2000等,直接通过计算机用户组管理,并将对应组授权给创建的资源库。
),但不建议xp安装cvsnt。
cvs passwd -a -r Administrator yanshi(和admin用户权限一样的用户)yanshi是你想新添加的用户名 Administrator指定现在用具有admin权限的用户来创建yanshi用户否则出现错误信息:Only administrators can add or change another's password这条命令后就可以设置这个用户的密码。
成功后可以使用这个用户了服务器中,导入一个module:cvs import -m "test_03_import_command" cvs_test_03 /CONFIGROOT导入一个新的moudle cvs_test_03注意:可以通过cvs ?了解查询更多cvs命令的使用。
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版本管理介绍产品四部黄昌发1概述1.1前言CVS的全称是Cuncurrent Versions System,是一种GNU软件包,由Intersolv公司开发。
它是基于TCP/IP协议的版本控制工具,也是开源界最重要的开发工具之一。
CVS采用Client/Server结构,所有的用户都在客户端进行CVS操作,而所有命令的执行都在CVS服务器端进行。
CVS是一种基于RCS(Revision Control System修订控制系统)系统的维护工具,它明确的将源文件的存储和用户的工作空间独立开来,在一定的模式上扩展了RCS的恢复提交功能,并使其有利于并行开发,是一个版本控制系统。
CVS不采用对文件上锁的机制。
CVS采取多个用户可以同时对一个文件进行编辑,然后Commit(提交)的方式解决这个问题。
假设出现冲突,使用者必须手工解决冲突之后再进行Commit。
在这种情况下,冲突的开发者必须进行足够的沟通以避免再次冲突。
理论上CVS可以维护任意的文本文档的开发,而不是局限于程序设计。
1.2存储结构仓库(Repository):CVS服务器上,一个源代码仓库被称为一个Repository。
Repository是CVS系统保存软件资源的地方。
所有项目的所有文件的所有版本都保存在这个仓库中。
一个服务器上可以运行多个Repository,每个Repository都是完全独立的,可以有不同的用户列表和访问规则。
上图的E:/cvshome就是一个Repository,对应着硬盘上的一个文件夹。
模块(Module):在一个Repository之下,文件按照Module组织,一个Module就是一个子文件夹。
每一个Module就相当于一个工程,大致相当于Eclipse里面的Project。
一个软件工程通常作为一个单一模块存放在库中。
也可以多个软件工程作为存放在一个模块中。
工作拷贝(Working Copy):工作拷贝是从CVS服务器端取出的,保存在我们正在使用的客户端计算机上的代码拷贝。
CVS服务器及WinCvs客户端介绍
谢谢! 谢谢!
WinCvs配置 WinCvs配置
2.Globals标签上注意" read-only"和 2.Globals标签上注意"checkout read-only"和 "prune Globals标签上注意 remove) directories"两个选项 两个选项, (remove)empty directories"两个选项,分别表 检出时文件只读” 自动删掉空目录” 示“检出时文件只读”和“自动删掉空目录”。
CVS服务器配置 CVS服务器配置
安装完成后需要配置CVS服务器的配置文件, 安装完成后需要配置CVS服务器的配置文件,使其能正 CVS服务器的配置文件 常工作。 常工作。 配置/etc/services文件 配置/etc/services文件 首先,查看/etc/services文件 是否存在如下配置: 文件, 首先,查看/etc/services文件,是否存在如下配置: cvspserver 2401/tcp #cvs client/server operations cvspserver 2401/udp #cvs client/server operations 如不存在,则将上述两行添加到services文件中, services文件中 如不存在,则将上述两行添加到services文件中,使其 成为Linux的一种服务也就是CVS服务器例程的入口。 Linux的一种服务也就是CVS服务器例程的入口 成为Linux的一种服务也就是CVS服务器例程的入口。
WinCvs配置 WinCvs配置
ATM的改造 ATM的改造 实施计划
一、CVS服务器
CVS 简 介
CVS 是 Concurrent Version System(并行版本系统 ( 的缩写,用于版本管理.CVS是目前比较流行与优秀的 )的缩写,用于版本管理.CVS是目前比较流行与优秀的 版本管理与控制工具, 版本管理与控制工具,它深受大多数开发人员与系统管 理的喜爱,同时也是用来管理其它日常文档( word工 理的喜爱,同时也是用来管理其它日常文档(如word工 作文档之类)的一个强有力的工具。 作文档之类)的一个强有力的工具。 它是一种基于RCS系统的维护工具. 它是一种基于RCS系统的维护工具.它明确的将源文件 RCS系统的维护工具 的存储和用户的工作空间独立开来, 的存储和用户的工作空间独立开来,有在一定的模式上扩 展了RCS的恢复提交功能. 并使其有利与并行开发. RCS的恢复提交功能 展了RCS的恢复提交功能. 并使其有利与并行开发.
CVS&VSS操作
3.1 检入CVS 检入CVS
确认更改经过了编译和单元测试,同时还要确 认更改是否和其他组员的更改发生冲突。
3.2 处理冲突
(1)通过更新得到分支中的最新的更改修订版。 (2)通过提交,将自己的本地修订版归入资源库。 (3)将本地更改和资源库的资源合并,之后提交。 手工合并/自动合并。(如果本地版本和资源库版本都 发生了更改,那么CVS会按照自己的方式将两个版本融合。 使用<<<<<<<文件名标记本地版本开始,=======表示本地 版本的结束和资源库版本的起始,同时使用>>>>>>>根该标 记资源库版本的结束。)
2.5 从资源库中复原
(1)选择CVS管理的文件夹比功能从上下文菜单 中选择“小组”-”资源库复原“。 (2)在资源库中搜索已删除文件,并将列表显示 在对话框中。 (3)在最左边的窗格中选择文件以显示在资源库 中可用的文件修订版。 (4)在最右边的窗格中选择修订版以查看底部文 本窗格中的内容。
(5)选择想要恢复的修订版。 (6)一旦选择了想要恢复的每个文件的修订版, 就单击“完成”按钮。 (7)在恢复文件之后,如果想要将该文件恢复 至当前分支,必须添加该文件,然后将他提交 会资源库中。如果文件名没有更改,则保留已 恢复文件的修订历史记录。
4.理想工作流 4.理想工作流
理想的工作流就是保留分支完整性的工作流。 理想工作流的流程如下: (1)开始。开始工作之前,用当前分支状态 更新工作空间中的资源。 (2)进行更改。 (3)同步。 a.更新。 b.提交。
CVS之不能 CVS之不能
1.CVS不能代替管理 2.CVS不能代替交流 3.CVS没有变化控制 4.CVS没有提供协作工具
cvs是什么意思
cvs是什么意思
CVS是⼀个C/S系统,是⼀个常⽤的代码版本控制软件。
主要在开源软件管理中使⽤。
与它相类似的代码版本控制软件有subversion。
多个开发⼈员通过⼀个中⼼版本控制系统来记录⽂件版本,从⽽达到保证⽂件同步的⽬的。
CVS版本控制系统是⼀种GNU软件包,主要⽤于在多⼈开发环境下的源码的维护。
但是由于之前CVS编码的问题,现在⼤多数软件开发公司都使⽤SVN替代了CVS。
扩展资料
SVN和cvs区别
1、版本编号⽅⾯
在SVN中,新版本的版本号不是针对某个特定⽂件的,⽽是针对整个库⽽⾔的。
提交了5次和提交了6次,⽂件a有可能不同,也有可能相同,即1.0版和1.1版可能相同。
因为第6次提交有可能是因为⽂件b或c进⾏了修改。
⽽在CVS中则相反,每次更新可能只对⽂件的版本号进⾏修改,即a⽂件的1.0版和1.1版是肯定不同。
2、⽬录的版本控制
CVS只能对⽂件进⾏版本控制,不能对⽬录进⾏版本控制,这就导致CVS失去了很多功能。
⽽SVN从很⼤程度上避免了这些不⾜,SVN将⽬录作为⼀类特殊的⽂件来处理。
当⽬录中的⼦⽬录/⽂件被删除、重命名、或新的⼦⽬录/⽂件被创建时,⽬录的内容将发⽣改变。
软件工程控制系统CVS操作指南
软件工程源代码控制系统CVS操作指南2004年09月文档管理信息表文档信息目录1CVS概述 (4)2CVS软件安装 (4)3CVS服务端配置 (5)4CVS客户端配置 (6)5软件工程初始化 (6)6修改文件 (7)7添加文件和目录 (7)8删除文件和目录 (8)9并发编辑 (8)10版本控制 (10)11工程模块化 (12)12TAG标记 (12)13高级使用 (13)14标准文件头 (16)1CVS概述CVS 是 Concurrent Version System(并行版本系统)的缩写,是建立在Unix 体系里很成熟的 SCCS 和 RCS 基础上的项目配置管理工具,用于版本管理,它是一种客户机/服务器系统,可以让开发人员将他们的项目存储在称为源码仓库的中央位置,即CVS服务器。
使用 cvs 客户机工具,开发人员可以对源码仓库的内容进行更改。
CVS 服务器在源码仓库里会依次记录对每个文件所做的每个更改,并创建一个完整的项目开发进展历史。
开发人员可以请求特定源文件的旧版本、查看更改日志,并根据需要执行其它一些有用的任务。
源码仓库的源码目录中保存的都是实现版本控制的历史文件(history file),历史文件名为filename,v。
历史文件包含用来恢复所有版本文件的足够信息、所有提交的信息以及提交者信息。
历史文件常常被称作RCS文件,因为最早是RCS程序用这种格式来保存文件的所有修改信息。
CVS 的基本工作思路是:在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序。
由仓库管理员统一管理这些源程序,这样,就好象只有一个人在修改文件一样,避免了冲突,每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地,用户做的任何修改首先都是在本地进行,然后用 cvs 命令进行提交,由 cvs 仓库管理员统一修改。
这样就可以做到跟踪文件变化,冲突控制等等。
由于 CVS 是典型的 C/S 结构的软件,因此它也分成服务器端和客户端两部分。
CVS简介
·cvs 最初由 Dick Grune 在 1986 年 12 月以 shell 脚本的形式发布在 comp.sources.unix 的新闻组第 6 卷里;1989 年 4 月,Brian Berliner 设计了 cvs 并编写了代码。之后 Jeff Polk 帮助 Brian 设计了 cvs 模块和销售商分支支持。
cvs 决不会指出程序逻辑上非文本或分布式的冲突。 例如:假如你改变了在文件 A 中定义的函数 X 的参数。同时,别人在编辑文件 B,仍用旧参数调用 X 这个函数。此时产生的冲突 cvs 可就无能为力了。
cvs 没有变化控制
变化控制可以指许多事情。首先它的意思可以是 BUG 跟踪bug-tracking,就是说它能维持一个数据库,其中包括已报告的 BUG 和每一个 BUG 状态 (是否已更正?在哪一个版本中?提交这个 BUG 的人是否认为已经更正?)。为了使 cvs 和一个外部的跟踪 BUG 系统协调一致,请参考 rcsinfo 和 verifymsg 文件 (参阅 Administrative files)。
Conflicts (冲突)--两个开发者对同一个区域所做的改动都提交给主版本时出现的情况,在 CVS 觉察并指出这个冲突后,开发者必须解决该冲突。
CVS文件
CVS是并发版本系统(Concurrent Versions System)的意思,主流的开放源码网络透明的版本控制系统。CVS对于从个人开发者到大型、分布团队都是有用的。
它的客户机/服务器存取方法使得开发者可以从任何因特网的接入点存取最新的代码。它的无限制的版本管理检出(check out:注1)的模式避免了通常的因为排它检出模式而引起的人工冲突。 它的客户端工具可以在绝大多数的平台上使用。
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 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用户如果希望对系统中的模块(如,project) 代码等资源的修改,必须对该目录有写权限。 对于普通的开发用户应该设为:对 /cvsap/src/master/CVSROOT目录及其下的所有文 件有读权限;对 /cvsap/src/master/CVSROOT/history下的文件有 写权限;对某个项目(模块)下的文件有读写权限 (如,project)。
[root@hostcvs /root]$ tar –xvf cvs-1.11.1p1.tar
进入目录cvs-1.11.1p1,运行:
[root@hostcvs /root]$ ./configure [root@hostcvs /root]$ make
[root@hostcvs /root]$ make install
也可能是/etc/init.d/inetd restart。或者
[root@hostcvs /root]$ /etc/init.d/xinetd restart
至此,CVS服务器安装和配置工作完成。
如果是HP UNIX 则启动超级口令服务器的方法为: ps –ef |grep inetd 找出inetd进程的进程号 kill –HUP <pid> 让inetd进程重新读入配置文 件使得CVS服务生效
1.1
软件配置管理(SCM)相关概念
9.1.1 版本管理不同产品的简单介绍 配置管理软件分类:
软件的版本管理(CVS是软件版本管理的工具)
构件管理 缺陷和跟踪管理 产品介绍: 1)高端产品
如:Rational clearCase
2) 中端产品 如:PVCS (pvcs version manager ,pvcs tracker)、 Perforce
• 测试CVS口令服务器
在cvshos服务器上,执行如下命令: [root@cvshost /root]$ telnet localhost 2401• 客户端的安装和配置
介绍CVSROOT环境变量设置格式: (19页) 客户端的Unix/linux的安装和CVS服务器安装过程相同, 这里不再赘述。CVS for unix/linux客户端的永久配 置方法为: sh/ksh,用编辑器打开$HOME/.profile文件添加: CVSROOT = :pserver:public@192.168.25.6:/cvsap/src/ma ster;export CVSROOT csh,用编辑器打开$HOME/.cshrc文件,在文件的末 尾添加:setenv CVSROOT :pserver:public@192.168.25.6:/cvsap/ src/master
• 启动inetd/xinetd超级服务器
配置好的口令服务器是包在inetd/xinetd超级服务器 内的一个程序。启动的方法为用超级用户登陆,执行 命令:
[root@hostcvs /root]$ unset HOME
用来清除超级用户的$HOME的环境变量,否则执行CVS 命令会出错。
[root@hostcvs /root]$ /etc/rc.d/init.d/inetd restart
跨平台:CVS支持所有的操作系统,而且作为典型的客 户/服务器模式的软件,CVS支持跨平台开发, cvs可 以用在AIX、 HPUX、Solaris、SUNOS、Linux、 Windows
等不同的平台上开发应用,而共用一个CVS服务器。
强大的分布式开发支持:CVS一直以支持分布式开发作 为其基本特征。
your_client$ cd test your_client$ cvs login (logging in to your server) cvs password ***** (你的服务器端cvs帐户口令) your_client$ cvs import –m ―initial import‖ test SSE start 该命令将当前目录(包含子目录)下的所有内容,都放进 CVS系统中,其中, -m 表示在命令中要加注释内容 test 为该项目名称 SSE 为厂商标识 start 为版本标记 没有冲突表示创建新的项目仓库成功。 在WinCVS中可以在菜单中实现。
如果未报错误,则CVS服务器安装OK了。 whereis cvs
• 指定CVS仓库
cvs仓库(Repository)是保存软件资源的设备,可以 根据需要选择一目录作为库的位置,如,/cvsap ,用 超级用户建相应目录。 mkdir /cvssrc mkdir /cvssrc/master
• CVS服务器的初始化
3)低端产品 vss
1.2
• cvs是什么
CVS概述
cvs是Concurrent Versions System的缩写。是强大而 复杂的现代版本控制系统。 • cvs的特点 免费:作为开放源代码的世界杰作,CVS是免费的。在 中国,北京国联捷讯信息技术有限公司 ()为需要CVS技术支 持的公司提供咨询。
CVSROOT
[root@hostcvs /root]$ ls –a /cvssrc/master/CVSROOT
该目录下是原始内容,如果该目录为空,则初始化失败。
• 用户组和用户帐号的设立
用户组和帐号的设立原则:进行配置管理的用户和进 行开发的用户分别设立不同的用户组,如,cvsadmin 和cvsuser 两个组,在两个不同组上建立管理用户和 开发用户。
在确定CVS仓库位置后,就可以初始化CVS服务器。在 初始化的过程中CVS创建其文件系统,并产生原始内容。 在目录/cvsap目录下,以超级用户身份在提示符下执 行:
[root@hostcvs /root]$ [root@hostcvs /root]$ cvs –d /cvssrc/master init 其中的目录project为项目源代码的资源目录。执行命令: [root@hostcvs /root]$ ls /cvssrc/master
• 区分管理员和普通用户的权限设定 1)添加cvsadmin用户组 2)添加cvsuser用户组 3)添加CVS管理员帐号到cvsadmin 4) 添加CVS普通用户到cvsuser 5) 让cvs管理员拥有对配置目录及其下文件的读写权限, 同时给cvs的普通用户对配置目录及其下文件的读权限。 [root@cvshost /root] $ chgrp –R cvsadmin /cvsap/src/master/CVSROOT [root@cvshost /root] $ chmod –R 064 \ /cvsap/src/master/CVSROOT 6) 给cvs普通用户对目录/cvsap/src/master/project的 读写权限 [root@cvshost /root] $chgrp –R cvsuser /cvsap/src/master/project [root@cvshost /root] $ chmod –R 060 /cvsap/src/master/project
cvs命令的格式: cvs [cvs-option] command [command-option] 如:your_client$ cvs –Q check test 可以用命令:cvs --help-commands来查看cvs的命令。 在winCVS中在command line setting 菜单中输入命令即 可。
其中的public为客户端的用户在服务器端的帐户/ 用户名。
CVS for WinCVS的永久配置为: 在窗口中选择Admin--》Preferences并在General选项卡 中输入,如图。 关于unix/linux客户端的临时配置: sh/bash: [test@linux test]$export CVSROOT =:pserver:public@192.168.25.6:/cvsap/src/master csh: [test@linux test]$ setenv CVSROOT :pserver:public@192.168.25.6:/cvsap/src /master