1、C使用手册深圳市金证科技股份有限公司 版权所有版 权 声 明本手册版权为深圳市金证科技股份有限公司公司所有,未经本公司书面许可,任何公司、单位和个人不得以任何手段复制本书的全部或部分内容.目 录0前言0。1关于本手册40.名称解释0。3技术支持41CV简介1。1CV的特点51.2CVS工作思路5版本管理。1版本树.2总体处理流程72。3S提交中注释的要求13CVS服务器的安装与配置11。1CV服务器的安装13S服务器的配置14WINDOS平台下的CVS操作24。1WiCVS安装124.WnVS登录到CVS服务器3。inCS基本操作154。4修改登录名密码45常用规则46关于英语单词代表的意思:
2、427小小技巧知识438需注意的问题44未解决的问题40 前 言0.1 关于本手册本手册详细说明了如何使用CVS进行版本控制的有关操作方法,本手册只列出了常用的与开发人员有关的操作。由于时间仓促,加之知识的局限性,尚有不足之处,还请诸位多多赐教。0.2 名称解释 配置项:一个信息单元(可以是程序、文档或数据)称为一个配置项(SC:Software Configurato Itm),它是软件配置管理的对象。 基线(Baselne):指已经通过正式审核和批准的某规约或产品,是后续开发的基础,并且只能在正式的变化控制流程之下做修改。 版本(Reviion):是经过修改过的版本。 版本号:每个在版本库
3、中维护的每个文件都有自己版本号,版本号可以自己命名或系统自动命名。每个文件在版本系统内的版本都有可能形成一个独立的版本树 版本标签:是阶段性的版本标记,即letne(里程碑)。根据标签可以获取某个特定的完整版本。 VS仓库(eposory):CS以RCS格式的文件来保存所有配置项,这些文件也按目录组织,最顶层目录称为CV仓库。 V模块(Modue):CS模块是CVS的项目组织方式,通常和CVS仓库中的目录对应. VS服务器:nit进程中servcescsperver. CVS客户:$CSROOT=:pserver:vsuserlcalot:cvwok0.3 技术支持如果您有任何关于本软件的使用
4、或文档方面的问题,请通过电话、Email、MS 联系如下技术支持人员.亦可进入公司O系统公司桌面CVS论坛寻求支持信息。技术支持人员电话Emi MSN赵玉露0755-85 9hayszkingd。omja_dew2htmail。cm0.4 CVS的特点CV即Ccrreersin Sysem,意思是并行版本系统.它是一个当前比较流行的功能强大的版本控制系统,采用典型的客户/服务器结构。VS具有以下几个主要特点: 免费:其官方网站是t:/www。shoe。 跨平台:CV支持所有的操作系统和跨平台开发,可以用在AIX、Slari、UOS、Liux、Windows等不同的平台上开发应用。 强大的分布式
5、开发支持:CVS一直以支持分布式开发作为其基本特征. 支持并行开发:允许多个开发人员对同一个文件进行开发工作,并对多个开发者的工作进行整合。 强大的可塑性:不论是一个源文件组成的项目,还是代码量超过几百兆的项目,都能够管理自如。 触发器及定制功能:这种功能帮助开发者将C和变动/跟踪系统紧密集成,以形成完整的软件配置管理系统(SCM) 使用简单:/S 结构,inCVS 实现代码持续集成 得到众多软件商的支持0.5 CS工作思路在一台服务器上建立一个仓库,仓库里可以存放不同项目的源程序。由仓库管理员统一管理这些源程序这样,就好像只有一个人在修改文件一样.避免了冲突每个用户在使用仓库之前,首先要把仓
6、库里的项目文件下载到本地.用户做的任何修改首先都是在本地进行,然后用CVS命令进行提交,由 CVS仓库管理员统一修改.这样就可以做到跟踪文件变化,冲突控制等等1 版本管理1.1 版本树 Beta1系统开发阶段在Bea_1系统开发阶段,由配置管理小组建立子项目的目录结构,开发组自主管理子项目中的配置项,在Bea_1系统开发阶段结束后,由开发小组长组织小组内成员进行单元测试,单元测试通过后,由项目经理对子项目打上版本标签,即a_1版开发小组成员不要随意打任何版本标签. Bt2系统开发与Be_系统测试阶段开发组在打上et_版标签的主干版本上继续开发,配置管理小组则在Beta1版本标签上作一分支版本,
7、交由测试组测试,测试组在分支版本上发现的问题,由开发者在分支版本上修正错误,项目经理审核修正后,把修正后的配置项的标签移到最新的版本号上,然后测试组进行错误修正的回归测试,在回归测试通过后,通知开发人员将修正后的配置项合并到主干版本.在Beta2系统开发结束后,项目经理组织后期开发内容的单元测试,在单元测试通过且测试组完成Bea_系统的集成测试后,由项目经理设置Bt_版标签。Bet_2版本标签设置的同时,配置管理员开始冻结此版本,即对修改进行控制,开发人员不能再进行配置项的出库和入库,对配置项的操作全部由配置管理员来进行。 e_2系统测试测试组申请整个Bet_2版本出库进行集成测试,对于测试中
8、发现的问题,由开发组进行错误修正,项目经理审核修正后,把修正后的配置项的标签移到最新的版本号上,然后测试组进行错误修正的回归测试。在Bet2版本测试结束后,测试组负责提交总体测试报告,由配置管理委员会决定此版本是否可以投入生产环境通过后由项目经理打上ouc版本标签。1.2 总体处理流程下面结合CV在项目组中的使用,规范编码过程中对于版本控制的运用和产品的交付流程。项目组配置管理工具采用CV(开放源代码、并发版本控制软件流程),UG跟踪工具使用的是CleaQest(缺陷跟踪工具)。因为CVS 只是一个开发一级的版本控制工具,没有版本库、开发库、控制库之间的管理.本文提出关于个库的一种管理办法,用
9、以保证开发库和控制库之间数据的一致性.充分利用VS和CearQst 工具的功能,结合项目实际情况,对两个工具进行整合,实现开发、测试、发布的合理化流程,流程图如图2.。1所示:图。2。1版本控制是配置管理的基本要求,它可以保证在任何时刻恢复任何一个配置项的任何一个版本。版本控制还记录了每个配置项的发展历史,这样就保证了版本之间的可追踪性,也为查找错误提供了帮助。版本控制也是支持并行开发的基础。当我们在原来的版本基础上需要创建另外一个版本(项目)时,可创建一个分支,在分支上开发另外一个版本。1.2.1 新项目的开发各产品项目的项目经理在项目启动时,需要填写公司配置库权限申请单,经部门负责人审核、
10、软件中心负责人批准签字后,交公司配置管理员开通公司配置库的使用空间和权限。增加新功能或修改程序时,可以在开发主线上随时提交修改内容。修改完成,并通过自己的测试(单元测试)之后,如果需要复审员对代码复审,则开发者要建立复审标签,格式为RE_产品代号开发者名字+日期(yydd)+任务单号。用来区分多个提交的任务,测试完成后提交测试报告。具体操作:RemotCa a ag y modle odify-reat a tg命名为:X_产品代号NAME_YYDD_其中:EX表示代码复审(exmie)NA表示开发者名字YYYMMD为8位的日期,如2015N 任务单编号,通过此编号可以知道此次修改要解决的问题
11、来自CQ。发布之前的测试,建立发布测试标签RE_产品代号_YYMMDD,在此标签上进行测试,在测试时开发人员可以继续在开发主线上开发新的功能,而不必冻结开发代码。对测试问题修改完善后,再经过测试,直到所有此类问题都解决掉.具体操作:emeCreat a gby mode / Modify-cree atg命名为:EX_产品代号YYMMDD其中:E 表示代码复审YYYMMDD为8位的日期,如206025建立发布标签,即打标签RE 产品代号_版本号_YYYMD.具体操作:Remote-rae a tag by modul/ dify-crate a a命名为:RL _产品代号_版本号_YYMMDD
12、其中:REL-表示发布(Rlase)YYYYMMDD-为8位的日期,如20211.2.2 创建分支当我们在原来的版本基础上需要创建另外一个版本(项目)时,可创建一个分支,分支跟主版本可独立开发,又可以相互合并.如我们的甲项目跟乙项目基本上相同,可直接在甲的基础上创建一个分支。甲上有用的地方直接合并到乙分支上。具体操作:em-ceate a ranch / Modify-reta anch命名:BR_原产品代号_新产品代号_YYYMMD其中:BR表示分支增加新功能或修改程序时,可以在分支上随时提交修改内容.修改完成,并通过自己的测试(单元测试)之后,如果需要复审员对代码复审,则开发者要建立复审标
13、签,格式为X_开发者名字+日期(yyymmdd)+任务单号.用来区分多个提交的任务,测试完成后提交测试报告。具体操作:首先pdate本地为分支版本,然后选中要打标签的文件,执行如下操作:Modf-create a tag命名为:RX_产品代号_NAM_YYYYMD_N其中:R表示代码复审(reie)NAME-表示开发者名字YYYYMMDD为8位的日期,如2615N任务单编号,通过此编号可以知道此次修改要解决的问题来自CQ发布之前的测试,建立发布测试标签E_产品代号_YYYMD,在此标签上进行测试,在测试时开发人员可以继续在开发主线上开发新的功能,而不必冻结开发代码.对测试问题修改完善后,再经过
14、测试,直到所有此类问题都解决掉。具体操作:首先pdae本地为分支版本,然后选中要打标签的文件,执行如下操作:Modiycrate a a命名为:RX_产品代号_YYYMDD其中:REX 表示代码复审YYMMDD为位的日期,如0605建立发布标签,即打标签RE _产品代号_版本号_YYYYMD。具体操作:首先update本地为分支版本,然后选中要打标签的文件,执行如下操作:Modifyret ag命名为:RL 产品代号_版本号_YYMD其中:RE表示发布(Rlae)YMD为8位的日期,如20060151.3 CVS 提交中注释的要求VS 在提交代码时需要填写提交的注释,项目组使用统一格式来达到规
15、范的目的.提交注释的格式-【符号 模块名详细注释】“符号”可以是!、 两个符号之一。表示开发工作的两种状态:完成!和进行中.完成!,表示经过测试完成,可以提交到控制库。进行中,表示正在对问题和功能处理中,此部分提交的内容只是表示开发库的内容,还没有测试完成,不能提交到控制库之中。模块名表示修改的是哪个模块。详细注释要指出此部分的提交属于哪部分内容:包括:新增加的功能、删除旧的功能、修正错误、计划要完成的功能等等,还要详细说明为什么进行代码的修改,以及进行了什么样的修改。例如:以下是修改提交注释(注意符号和中括号之间有一空格):!发行后台 增加功能,解决打印总是出现乱码问题.修改了打印函数 f_
16、prit() 第0行的打印语句 prnt。2 CV服务器的安装与配置本章介绍inux平台下CVS服务器的安装和配置2.1 CVS服务器的安装服务器操作系统是linux操作系统,inux操作系统自带有C安装.可以使用linu自带的V安装,然后下载升级包进行升级。也可以到开源网站hts:/www.cvse.org/下载安装包自行安装.2.2 V服务器的配置1、检查确保系统已安装CS:rp qa | ge cs2、建立CVS用户组:rouadd s3、创建VS属主用户# useradd cs d /home/csoo cvsroo4、建立C仓库(初始化CS)# chmo 75 /hme/cvsot$
17、cv-d /hom/csoot it、启动CS服务器:首先在/tc/xinet。d目录下新建文件vspeer,cvserve的结构如下:serice cvsser sockettye =reamait nouse = rootsever =u/in/cvsserr_arg = -f lloroot=home/cvsrpseverog_nalu + = USRIoly_fm 19.16。0./24其中ony_from是用来限制访问的,可以根据实际情况不要或者修改.然后,重新启动ed:# /init/xie。dsart6、检查cvspserver服务是否启动netsat grep cvspse结果
18、: tc 0*:cvperver :* LSTE7、创建用来访问CV的用户仓库中CVRT目录里可以添加三个配置文件:pwd,ears,writers。可以通过设置这三个文件来配置CVS服务器:pswd:cvs用户的用户列表文件,格式如下:CV 用户名:加密的口令:等效系统用户名 加密口令:htpswd fileme uername例::d7mHzkp82:srooteades:有 VS读权限的用户列表文件,是一个一维列表iters:有 CVS 写权限的用户的列表文件,是一个一维列表增加用户:tpass b passwd ill lll /-b把用户增加在sswd文件下.Lill是用户名,第二个
19、lil是密码。Vi passwd 进入swd,点击I在增加的一行后面添加 :vsrot默认读写权限,如果读权限,在rdes文件中添加此名字即可.3 Windows平台下的C操作本章介绍Windows下的CV客户端工具inCVS的操作。3.1 WiCS安装CVS安装包可以到公司网站ttp:/ai。szkigdm。com/tos/tols1下载WnCS20。r。具体安装过程:首先运行icv_stp。ee安装WinS。在安装过程中,会提示安装vsnt,安装即可。安装完毕,运行pythn。3.1。s,直至安装结束。注意:需在我的电脑中的环境变量中设置python的环境变量;有时还需在防火墙中的“例外”
20、中把CVS相关的程序设为例外;在本地连接中网关设置为:255。25。0.0,而不是5。25525。03.2 WnCVS登录到CV服务器在WinVS安装完成后,运行WCVS,选择菜单”Adin”ogi登陆,如图4。2。1:图.2.1然后进入如下信息::sevr:lil192.68。4。22:home/croot/test其中:lll是用户名;192。168.0。232是服务器IP地址;omecvsroot/t是模块路径如图4。2。所示界面,不同用户需要修改用户名和文件名,替代“lill”和“te”。用户名是:每个人自己的姓的全拼 + 名字的每个字的拼音的第一个字母,如李丽丽的用户名称是ill(密
21、码另行通知);模块名是:所负责产品的代号.图4。.2Globals选项,如图。2。3所示:图42.3此项的配置主要是要注意以下两点:第一,P(move) mpty ecories选上,会自动删除空目录;建议如果需要保存空目录,在空目录下面存放一个readmex文件,防止删除空目录,也可以记录文件信息。第二,对一般配置没有特殊要求的,把upply contro whn ang 选项选中配置好后点击确定,出现输入密码框,如图4。2。4:图42。4输入密码后,点击K登录。登录成功,会在下方的状态视图里显示“CVS exited normallywihode”,如图4。5所示。注意,每次操作的时候状态
22、视图都会有操作结果的显示。操作成功返回代码0,非零的代码说明有错误产生。图4.2。3.3 WnVS基本操作3.3.1 建立工作目录在本地硬盘建一个自己的工作目录(以后检出的工作拷贝就会放到这个目录下),比如D:te,在WnCVS地址栏中选定该目录(如图。3.11)。图4。3。13.3.2 Ceckout检出1、CHEKOUT工程模块,如图43。2。1图4.。2.1也可以在左侧树结构处点击右键选择heckot mde,如图4。图。2.22、进入配置目录,如图4。3:(1)Modle nae adpath he server:输入要检出的模块名,是所要下载的CVS服务器上文件的目录名;或者点击浏览
23、服务器上的内容,如图图43。2.3红色所示,出现如图4。3.2.4,选择list和csro,点击reresh,刷新列表,就是服务器上本模块下的内容。选择一个文件,如文件,点击OK后就选中了该文件,又回到图4.3。(2)图4。32。3中,oalfoder t chckout o:本地路径,下载的文件所放的本地路径(例子中是E:ekou);(3)图。32.中,CSOOT:选择SRT路径(4)点击确定,即可将a模块检出到本地硬盘。图4。32。3图。3.。43、确定后,CHEKUT成功会有如下提示,如图4。3。2。5所示。图4。3。CHECOUT 成功以后的本地目录内容,如图43.2。6:图4.3。2
24、.3.3.3 Iport上传1、 imt工程模块,如图3。3。图.3.1也可以在左侧树结构处点击右键选择Import mol,如图3。3.2图3.3.3。22、进入配置目录,如图3.。3:(1)postory:输入文件名,是上传到CVS服务器后该文件的名称,例子中是test;()CSOOT:选择CSOT路径()在图中箭头所指处填入上传信息,即日志文件。图3。.3.3、如果要求上传后文件日期不变,需要选择import ptins框的选项,如图33.。4红色所示.否则,文件日期是你上传时候的服务器日期。图3.3.344、确定后出现如图图。3。3.5所示。注意:这里是查看上传文件的格式是以二进制(b
25、inary)还是文本文件上传。对于能用文本文件打开的文件,最好选择文本(text)上传,这样有利于文件比较。对于不能用文本文件打开的文件,需要选择二进制(inary),否则下载下来文件可能打不开或者有问题不能使用。如果查看文件类型不正确,比如:.ra文件的上传类型(Enty knd)是txt,那就不正确,需要修改.选择.rar那行,点击左下角的Eit,选择二进制(Force binar),确定即可.图3。3。3。54、确定后,Import成功会有如下提示,如图3。3。3。6所示.图33。3。6注意:成功后,要删除本地目录,重新从仓库中heck t出来,才可以进行下一步动作。3.3.4 Udae
26、得到最新版本Upde得到最新版本,是将服务端文件更新到本地在对本地的文件修改前,最好先从服务端更新文件,因为多人操作同一个文件时,没有及时更新容易引起冲突。如甲乙检出的版本同为。2,修改提交后的版本为1。3,乙此时没有更新,在本地1。2的基础上修改提交,此时就会产生冲突。 更新文件,点击选中文件(可多选),从右键菜单中选择”uate ”,如图4。3.4。1,出现如图4。3。4。2,选择两个控制项,确定即可.如图4。3。4。1图4。3。4.2注意:()第一个是ee leancopy,大家一定要慎重使用这个复选框,它的含义是从服务器上得到完全的拷贝,并且覆盖本地的同名文件,如果选择了这一项,那么本
27、地上你所做的全部工作都将丢失,因此在实际工作中该项一般是不选的,一旦误操作那么所有的工作都将全部丢失.(2)Cremsng irectoestha ist tereositores,它的含义是如果服务器上含有你本地没有的文件夹,Winvs会自动在你本地创建该文件夹,否则不会在本地创建该文件夹,那么你本地的文件就会比服务器上少,所以一般这个选项需要选上,除非你能保证同一个开发小组的其他人员没有创建新的文件夹。(3)heckou 与 Update的区别:Cckut是把CVS服务器上的mdule下载到本地进行工作。该操作一般只在项目开发的最初进行一次. Updae主要同步本地文件(目录)和CVS服务
28、器库中相应文件(目录)之间的差异,使本地相应文件是最新版本,另外Updte也能执行获取文件旧版本的操作。如果需要提取项目的某个版本的文件。则点击updat后做如图4.3。4。2的选择,然后再作如图4。3。4。3的选择.By revision/tagrac 处选择标签或者分支名称.图4。.4。3如果要查看某个日期之前的文件,则点击updae后做如图。3。4.2的选择, 然后选择Byde,如图。3。4图4。3。.4查看了某个版本或者某个日期的项目之后,现需要提取当前服务器上最新的文件,除了做4。3。2的选择外,还要做如图。4。5的选择.这样就可以提取当前服务器上最新的文件图 .3。4.执行上述操作
29、之后,当前拷贝中的文件与仓库中的文件内容完全一致。特别需要注意的是,如果某个文件在仓库中已经被删除,那么更新之后,工作拷贝中的该文件也被删除了。CVS这样做是为了让工作拷贝与仓库完全一致。3.3.5 Coit提交修改内容从服务端checout项目后,会在本地建立文件的拷贝,在客户端修改后提交(comit)到服务端即可将最新的文件保存到服务端。如图4。5.1,修改后的文件显示为红色。此时的修改只修改了本地的文件。图4.5。1如果要提交到服务器端,点击选中被修改过的文件,从右键菜单中选择”cm命令,出现图4。3。53,在箭头所指的框内填入修改信息,即og日志,点击确定即可提交到服务器。图4。3。5
30、。2图43。3提交到服务器后,文件版本会自动加1。如图4。3。4图4.3.5。如果修改了不同文件夹中的几个文件,现想查看修改的所有文件,则选中根目录,点击两个按钮,如图4.3。5.5红色所示,有侧区域即显示所有修改的文件。图。3。5如果需要一次性提交,则选中根目录,右键commit,如图43。6,然后出现图。3所示的界面,填入log信息,提交即可。图4。3。5。63.3.6 dd 添加文件在本地添加文件后提交到服务端,先选中文件,然后点击“添加按钮”,注意此时有两个按钮,一个添加一般的文件;一个添加二进制文件。如图4。3。6。1红线所示。添加文件后,文件图标会变成红色,表示确认添加,但是还没有
31、添加到服务器上,需要右键菜单中提交命令“comit ”才真正提交到服务器上,如图4。3。6.。图4。36.1图.3。23.3.7 Remov,Erase移除文件Erase:只是在本地删除,不影响服务器。点击ease,如图4。71,然后弹出询问框,是否确认删除,如图4。3。7.2,点击K即可。图4.3。7。1图437。Rev:选择文件后,点击emove,如图4。3。7.3,将文件从本地删除,图标变成红色的.然后选择刚刚的文件,从右键菜单中选择“ome命令,如图.3。,才将服务端的文件删除.图4。3.73图4。.743.3.8 删除文件夹要删除文件夹,需要首先把文件夹下面的文件利用rmoe删除掉,
32、详见4。3。7小节。然后选择本地目录的根目录,点击右键选择pdae,在globals中把prun eptydetoris打勾选择上.确定提交即可.如图4.8.1所示.图。8。13.3.9 找回被删除的文件Erase:Erse操作只删除本地文件,不影响服务器上的文件。所以如果使用rase操作删除了该文件,则点击根目录,右键updae即可pte后出现如图4。1对话框,选择两个控制项,确定即可。图4。1Reove:如果只是点击eove(这是remove后的文件)删除文件,没有commit,则点击Add添加按钮即可将文件找回;或者ctl+L直接输入命令:cvs dd*如果执行了reoe后,又执行了co
33、mmt,这时文件已经从服务端删除,如果要找回被删除文件,则需要执行如下操作:1、 只能用trL,直接输入命令:cvs ad *,如图4。9.所示,确定后会得到一个空文件,如图4。3。9。图.3.。图3。9.32、选中这个空文件,执行pdae操作,得到这个文件实体。3、再次选中这个文件,执行comit操作,得到这个文件的最新版本(在原来被删除版本的基础升级一个版本)。文件的历史版本仍然存在。如图.。.。图4。.9。43.3.10 避免冲突CVS的无限制的版本管理检出的模式,就是检出一个文件并不给定开发者对那个文件的排它权,其它的开发者也可以对其检出,进行他们自已的修改,并且将其登记回去.你可能会
34、问:“后面的登记不是会覆盖前面的吗?”回答是不会的。会自动合并那些改变,但是,如果前后两人修改了相同的地方,可能引起冲突,S把冲突段保留,由用户手工解决.Comit时报pdattodatechckfied ,说明有冲突尽量避免的办法就是:1、CMMIT前先UPDT、修改别人的文件前最好先通知对方3.3.11 查看文件状态在“Qy”菜单下有Diff、Log、ats、raph等操作,如图.3.9。11、 Diff:是将本地拷贝与对应目录或文件任一版本进行比较;2、 L:显示指定文件的所有修订版本的日志信息、日期、标记与作者等;3、 Satus:显示指定文件的状态,如文件是本地以及库中的版本号等;总
35、共可能有四种状态: (1)Upt-dat:表明你要到的文件是最新的.()Loay Moified:表明你曾经修改过该文件,但还没有提交,你的版本比仓库里的新.(3)Nd Patch:表明有个哥们已经修改过该文件并且已经提交了!你的版本比仓库里的旧 (4)Neds Mere:表明你曾经修改过该文件,但是偏偏有个不识相的也修改了这个文件,而且还提交给仓库了!4、 ah:显示指定文件的修改状态,如文件是本地修改还是库中修改,还显示修订版号。本地修订本标记为文档图标(红色的矩形框)。在此,你可以选择两个修订版本比较(dff),用shit键,(注意:图形中红色的虚线框表示已经删除了的版本)图.3。9。1
36、命令:cv iffUnit1。pas在状态窗口中会输出比较结果.Index: dd。tt=RCS ie: /omecvsrot/test/a/i/ad。txt,vetreving evisin.1diffr1。1 dd。txt0a1 aaaaaaNneinat en ofile注意这里输出结果是UIX的diff命令的输出格式。其中0a1表示在原来的版本的第一行后面添加(aad)了内容,这个添加的内容在新版本里的第二行。输出中,以“”开头的行是原有版本的内容,而以“”开头的行是新版本的内容,“-”表示在两个版本之间的界限。命令:cs g iena 查看某文件的日志5、 Anote:sow the
37、hitory of echlne of a fil wit c annotae(注释)3.3.12 增加文件和目录当你创建了想要放到库中的文件时,你要告诉CVS要做相应处理。如果目录包含不在CVS控件制下的文件,你需要增加目录。增加文件或目录,要:1、 选择你要增加的目录或文件2、 选择MoiyAd或Adbinary菜单,对于非文本文档,选择二进制,免得文件会补VS破坏掉3、 文件只是被标记为添加,你要通过交(commit)将其增加到库.如果你要增加一个目录层,而不是几个文件,上面的技术有点麻烦,加上CVS操作不支持增加子目录.在这种情况下,你要使用Imprt,就像创建新模块。1、 选择Cea
38、teImpr mdule菜单.2、 在弹出的文件对话框中,选择你要增加的目录,并使这个文件夹打开。3、 nvs然后试图辨别目录树中的任何二进制文件如果弹出了筛选窗口,确保提及的文件被正确地设置了文本或二进制。4、 在port ttings输入设置对话框,输入模块名。5、 在Wedor tg厂商标记栏输入你的名字或公司的名字(没有空格)。6、 在elase tag发行版本标记栏输入相关名称。7、 点击“确定”。nCv然后将整个目录结构输入到CVS服务器中。注意在输入操作中对你的本地文件没有任何改变也就是说,在输入后,你的本地拷贝没有置于版本控制下。在对你的版本控制源文件工作前,你需要做:1、 移
39、走你的原始目录.2、 在invs中,再heckOut出来即可.这样,WinCs就提供了最新置于版本控制下的目录层。3.3.13 对文件和目录移动或改名对文件和目录移动或改名的操作在VS中是不允许的.这是CS的一个不中之处。你需要合并删除和增加操作来模拟移动或改名。参见增加文件和目录以及删除文件夹。注:在实际操作中,用户可以直接到CVS服务器上,在库目录下,直接对相应的文件作相应移动和改名操作。新文件名要符合CS库文件的命名规则一般情况下,不建议用户直接到CVS服务器上直接修改。修改时,注意文件的属主和存取权限.具体操作如下:改文件的名字后的操作:cvs中原来那个文件还在,彻底删除,先reme再
40、omi,而改过的新文件需先ad再comm。3.3.14 创建标签vag:顾名思义就是做个标签,如张三的文件,他就可以做个标签为”张三”以表明是他的文件。Tg只是在文件上做了一个标签,并没有创建不同的文件,这一点跟ba不同。tg是标志用户特定信息的。创建标签,如图4。3。10。1,选择Crate t by mole,进入图4。.0。,填写tag名字,模块名和CVSOT路径,确定即可。图4。3.1.1图.3.1.注意:VS对有版本标签(分支标签不同)的文件不能进行提交.CS不允许在已经基线化的版本上进行任何修改,只能在主版本,或分支版本上进行修改3.3.15 创建分支Branch:分支是个很有用的
41、概念,当我们在原来的版本基础上需要创建另外一个版本(项目)时,可创建一个分支,分支跟主版本可独立开发,又可以相互合并。如我们的甲项目跟乙项目基本上相同,可直接在甲的基础上创建一个分支v_ds。甲上有用的地方直接合并到乙分支上。一般是有个发布版v.0,在开发v1。2的基础上,同时又在修改v。0,这时就可以创建分支。创建分支,和创建标签类似,如图。3.10。3,选择eate a anh,进入图4。3。0。4,填写branch名字,模块名和CVSROOT路径,确定即可。图。3.1.图4。3.1。4要检出特定标签或分支的文件版本,可以右键选中文件夹(或文件),右键点击后选择ateseeco”.选中“Cetnssng iectois that exist in th positor,切换到“Updateoption”选项卡,在“By Retrieve rev。/g/branch”中填入要切换到的分支名,确定即可。如图4。3。0。5所示:图4。3.0。5如果需要停止在分支上的工作,返回主版本。首先保证分支版本已经完全更新到仓库中。然后需要删除stick标签并更新本地拷贝为主版本的工作拷贝。选择相应的目录或文件,右键点击后选择“pda