CVS使用手册

合集下载

CVS-7000 Instruction 16_04

CVS-7000 Instruction 16_04
启动和关闭 .................................................................................................................................... 10 CVS主电源................................................................................................................................. 10 MEXA电源................................................................................................................................. 10 MCU电源.................................................................................................................................... 10 启动 ........................................................................................................................................ 10 正常启动................................................................................................................................. 11 报警开启................................................................................................................................. 11 MCU暂停(短期) .................................................................................................................... 11 MCU关机(长期) .................................................................................................................... 11 模块关闭 (长期) ............................................................................................................... 12 警告消息和恢复操作程序.......................................................................................................... 13 采样 ............................................................................................................................................ 14 修改设定参数............................................................................................................................. 15 初始值 .................................................................................................................................... 15

配置管理过程及工具的使用

配置管理过程及工具的使用
不要把CVS作为练习的场所
配置管理过程

岗位及职责 项目建立 配置管理计划 出入库 变更流程 配置状态报告 SCM总结报告 验证
岗位与职责




SCCB(Software Configuration Control Board) SCCB负责人:一般由室主任、项目所有者(Project Owner)或项目负责人担当,主要职责是审批《配置 管理计划》、审批重大的变更; SCCB成员:一般由室主任、项目负责人、SQA人员 共同组成,主要职责是讨论、审批配置项或基线的 变更; SQA:主要职责为审核配置管理活动; 配置管理员:主要职责为制定《配置管理计划》、 创建和维护配置库、定期做《配置状态报告》。
包括中间发布和最后的发布配臵库结构说明3配臵管理放臵项目配臵项清单配臵管理光盘清单配臵状态报告等scm读写其他人只读质量保证放臵项目不符合报告sqa核查表和sqa周报等sqa读写其他人只项目跟踪和监控放臵项目状态报告项目周报个人工作周报等评审和报告基线工作产品入基线时评审的报告项目组长读写其他人只读配臵库使用说明1因为cvs工具本身的问题如果你将文件放在错误的位臵或者命名不规范scm进行位臵移动或者修改文件名称的时候会造成历史版本的丢失想要找回历史版本很不容易给配臵管理造成一定的工作量

配置审核
配置审核包括两方面的内容:配置管理活动审核及基线审核。配 置管理活动审核确保项目组成员所有配置管理活动遵循批准的软 件配置管理方针和规程,比如检入(Check in)/检出(Check Out)的频度,工作产品成熟度提升原则等。实施基线审核,保证 基线化软件工作产品的完整性和一致性,并且满足其功能要求。
the log message”, 请大家一定要填写,主要填写几个方面的内容:修改 的目的,修改的主要内容(段落或者函数名称),修 改可能造成的影响。 尤其是进入编码和测试阶段,要求每个文件的提交必 须有log message。请大家注意!

Synovatron CV Tools 用户手册说明书

Synovatron CV Tools 用户手册说明书

CV Tools User Manual 1

Copyright © 2011 Synovatron Electronic Music. All rights reserved. (Rev 1.2 April 2011) CV Tools User Manual 2

Copyright © 2011 Synovatron Electronic Music. All rights reserved. (Rev 1.2 April 2011) Introduction Thank you for purchasing the Synovatron CV Tools Module. This manual explains what the CV Tools Module is and how it works.

The CV Tools Module is a 12HP (60mm) wide Eurorack analogue synthesizer module and is compatible with the Doepfer™ A-100 modular synthesizer bus standard.

The CV Tools Module is a versatile voltage processor intended for control voltage manipulation such as adding, subtracting attenuating, amplifying and offsetting. It can also be used with audio and gate signals to great effect.

Caution Please ensure you use the CV Tools Module in accordance with these instructions especially taking great care to connect the ribbon cable to the module and the power bus correctly. Always double check!

CVS是什么

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.也希望大家能够不断补充这篇文章,最后能够成为手册,而不仅仅是速成.当然,还要更多地参考别的文档.赞同。

TortoiseSVN中文使用教程

TortoiseSVN中文使用教程

SVN简明使用手册目录SVN简明使用手册 (1)1关于TortoiseSVN (2)2基本操作 (2)2.1建立项目文件 (2)2.2在TortoiseSVN下进行开发 (4)3 附录 (11)3.1 SVN各种图标的含义 (11)3.2 CVS项目转换到SVN (12)33参考文档 (19)SVN视频教程下载:/video/1关于TortoiseSVNTortoiseSVN是Subversion版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。

文件保存在中央的repository,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。

你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。

这就是为什么许多人将Subversion和版本控制系统看作一种“时间机器”。

某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性- 比如,对编程语言的支持,或者提供程序构建工具。

不过Subversion并不是这样的系统;它是一个通用系统,可以管理任何类型的文件集,包括源代码。

该使用手册主要针对使用客户端的程序员,目的是使我们WEB Team能够快速掌握新的版本控制软件的使用。

提高开发效率。

2基本操作2.1建立项目文件在本地PC硬盘上新建一个文件夹,并重新命名。

下载假设该文件夹名为WORK,对该文件夹点击鼠标右键,鼠标移动到T ortoiseSVN选项上,然后选取CHECK OUT选项,如图:在URL中输入上节讲的服务器地址,刚新建的文件夹就会添加到directory中。

Revision中默认选项是HEAD,下载最新项目版本,如果你要下载其他版本,可以选取第二个选项,输入想要下载版本号。

点击OK就可以进行下载了。

这个时候如果要求输入用户名和密码,就填写自己的域帐号和密码。

格式如上一节所示。

施耐德Easypact CVS塑壳断路器替代NSE快速选型手册

施耐德Easypact CVS塑壳断路器替代NSE快速选型手册

CVS 订货号 LV510666 LV510667 LV510330 LV510331 LV510332 LV510333 LV510 LV510341 LV510342 LV510343 LV510344 LV510345 LV510346 LV510347 LV510330P LV510331P LV510332P LV510333P LV510334P LV510335P LV510336P LV510337P LV510340P LV510341P LV510342P LV510343P LV510344P LV510345P LV510346P LV510347P LV510561 LV510562 LV510563 LV510564 LV510565 LV510566 LV510567 LV510571 LV510572 LV510573 LV510574 LV510575 LV510576 LV510577 LV510681 LV510682 LV510683 LV510684 LV510685 LV510686 LV510687 LV510691
描述 CVS100B TM32D 3P3D 断路器 CVS100B TM40D 3P3D 断路器 CVS100B TM50D 3P3D 断路器 CVS100B TM63D 3P3D 断路器 CVS100B TM80D 3P3D 断路器 CVS100B TM100D 3P3D 断路器 CVS100B TM16D 4P3D 断路器 CVS100B TM25D 4P3D 断路器 CVS100B TM32D 4P3D 断路器 CVS100B TM40D 4P3D 断路器 CVS100B TM50D 4P3D 断路器 CVS100B TM63D 4P3D 断路器 CVS100B TM80D 4P3D 断路器 CVS100B TM100D 4P3D 断路器 CVS100B TM16D 3P3D 插入式断路器 CVS100B TM25D 3P3D 插入式断路器 CVS100B TM32D 3P3D 插入式断路器 CVS100B TM40D 3P3D 插入式断路器 CVS100B TM50D 3P3D 插入式断路器 CVS100B TM63D 3P3D 插入式断路器 CVS100B TM80D 3P3D 插入式断路器 CVS100B TM100D 3P3D 插入式断路器 CVS100B TM16D 4P3D 插入式断路器 CVS100B TM25D 4P3D 插入式断路器 CVS100B TM32D 4P3D 插入式断路器 CVS100B TM40D 4P3D 插入式断路器 CVS100B TM50D 4P3D 插入式断路器 CVS100B TM63D 4P3D 插入式断路器 CVS100B TM80D 4P3D 插入式断路器 CVS100B TM100D 4P3D 插入式断路器 CVS100B VIJ TM25D 3P3D 断路器 CVS100B VIJ TM32D 3P3D 断路器 CVS100B VIJ TM40D 3P3D 断路器 CVS100B VIJ TM50D 3P3D 断路器 CVS100B VIJ TM63D 3P3D 断路器 CVS100B VIJ TM80D 3P3D 断路器 CVS100B VIJ TM100D 3P3D 断路器 CVS100B VIJ TM25D 4P3D 断路器 CVS100B VIJ TM32D 4P3D 断路器 CVS100B VIJ TM40D 4P3D 断路器 CVS100B VIJ TM50D 4P3D 断路器 CVS100B VIJ TM63D 4P3D 断路器 CVS100B VIJ TM80D 4P3D 断路器 CVS100B VIJ TM100D 4P3D 断路器 CVS100B VIJ al TM25D 3P3D 断路器 CVS100B VIJ al TM32D 3P3D 断路器 CVS100B VIJ al TM40D 3P3D 断路器 CVS100B VIJ al TM50D 3P3D 断路器 CVS100B VIJ al TM63D 3P3D 断路器 CVS100B VIJ al TM80D 3P3D 断路器 CVS100B VIJ al TM100D 3P3D 断路器 CVS100B VIJ al TM25D 4P3D 断路器 CVS100B VIJ al TM32D 4P3D 断路器 CVS100B VIJ al TM40D 4P3D 断路器 CVS100B VIJ al TM50D 4P3D 断路器 CVS100B VIJ al TM63D 4P3D 断路器

施耐德 CVS 塑壳断路器中文样本_20110822


Schneider Electric Building, No. 6, East WangJing Rd., Chaoyang District Beijing 100102 P.R.C. Tel: (010) 8434 6699 Fax: (010) 8450 1130
由于标准和材料的变更,文中所述特性和本资料中的图像只有经过我们 的业务部门确认以后,才对我们有约束。
EasyPact CVS
塑壳断路器 100A ~ 630A
产品目录
施耐德电气中国版权所有
客户关爱中心热线:400 810 1315
施耐德电气中国 Schneider Electric China
北京市朝阳区望京东路6号 施耐德电气大厦
邮编: 100102 电话: (010) 8434 6699 传真: (010) 8450 1130
本手册采用生态纸印刷
SCDOC1619
2011.08
施耐德电气
善用其效 尽享其能
全球能效管理专家施耐德电气为世界100多个国家提供整体解决方案,其中在能 源与基础设施、工业过程控制、楼宇自动化和数据中心与网络等市场处于世界领 先地位,在住宅应用领域也拥有强大的市场能力。致力于为客户提供安全、可 靠、高效的能源,施耐德电气2010年的销售额为196亿欧元,拥有超过110,000 名员工。施耐德电气助您——善用其效,尽享其能!
在II类开关柜中的安装
所有EasyPact CVS断路器均为II类绝缘。可安装在II类开关柜内(符合IEC61140及 60664-1标准),而不会降低开关柜的绝缘等级。 在断路器装配有旋转手柄或电动操 作机构的时候也符合该特性。
防护等级
符合IEC 60529(IP防护等级)标准和IEC 62262(IK抗外部机械冲击等级)标准。 断路器裸机 Q 配有拨动手柄: IP40、IK07 Q 配有延伸旋转手柄:IP 55、IK08 安装在开关柜中的断路器 Q 配有拨动手柄:IP40、IK07 Q 配有延伸旋转手柄:IP 55、IK08

DataViewer-2.0用户指南

DataViewer 用户指南
DataViewer 用户手册
HanSight DataViewer 2.0
HanSight 2014/11/18
DataViewer 用户指南
目录
1、采集器配置 ............................................................................................................................................................. - 2 1.1 采集器配置实例 ............................................................................................................................................ - 2 2、转发器配置 ............................................................................................................................................................. - 2 2.1 转发器配置实例 ............................................................................................................................................ - 3 3、数据源配置 ............................................................................................................................................................. - 3 3.1 第一步 ............................................................................................................................................................ - 3 3.2 第二步 ............................................................................................................................................................ - 4 3.3 第三步 ............................................................................................................................................................ - 6 3.4 第四步 ............................................................................................................................................................ - 7 3.5 第五步 ............................................................................................................................................................ - 8 4、采集器和转发器启动 ............................................................................................................................................. - 9 4.1 采集器启动 .................................................................................................................................................... - 9 4.2 转发器启动 .................................................................................................................................................... - 9 5、配置状态详情 ....................................................................................................................................................... - 10 5.1 采集器状态 .................................................................................................................................................. - 10 5.2 转发器状态 .................................................................................................................................................. - 10 5.3 数据源配置 .................................................................................................................................................. - 10 6、Kibana 使用 ........................................................................................................................................................... - 11 6.1 简介 .............................................................................................................................................................. - 11 6.2 快速入门 ...................................................................................................................................................... - 11 6.3 行控制 .......................................................................................................................................................... - 14 6.4 面板控制 ...................................................................................................................................................... - 15 -

施耐德低压断路器说明书 - Compact NSX, Easypact CVS, Easypact

Low Voltage Circuit Breaker 1 to 1600ACompact NSX 100 /160/250Compact NSX 400/630Compact NS 800 to 1600Easypact CVS 160/250Easypact CVS 400/630Easypact EZC 100Acti 9Low Voltage Circuit Breakers 1 to 1600 APageActi 92681226344256Easypact EZC 100Easypact CVS 160 to 630Compact NSX 100 to 630Compact NS 800 to 1600Accessories OverviewTripping Curves Dimensions and Mounting Secection TableSelection table -Acti 9Acti9Vigi iC60漏電保護模組應用技術資料Vigi iC60漏電模組內含殘餘電流電磁機械動作方式,無須輔助電源。

額定電流:動作時間重量(g)接線小於25A :電纜最大可接至25mm 22P 斷路器3P 斷路器組合示意圖2P Vigi 模組3P Vigi 模組小於63A :電纜最大可接至35mm 225A 145 63A165 25A 184 63A 210符合IEC61008/61009跳脫時間(Triping time)與漏電電流(I Δn)關係如下:Vigi iC60 漏電模組內含濾波裝置,可有效防止由於瞬間電壓變化。

(照明或設備產生線路電壓波動…)和突波電流所引起的誤動作。

Vigi iC60漏電模組適用63A 及63A 以下的iC60 系列斷路器Vigi iC60漏電模組(額定電流)選定可向下相容:Ex. Vigi iC60 ≦40A 可直接搭配 Acti-9 iC60N MCB 40A 或40A 以下。

bochs中文用户手册

Bochs使用C++语言编写,且可以运行于多个host平台[1],这其中就包括x86,PPC,Alpha,Sun以及 MIPS.当然无论是何种host平台,Bochs仿真的平台都是x86.也就说,Bochs并不依赖于host机器 的指令.这即是Bochs与很多其他x86虚拟软件如plex86,Vmware等的主要不同之处,这有好处 也有坏处.好处是因为Bochs能够使用软件来虚拟每一条x86指令,因此它能够在Sun或者Alpha 平台上仿真运行Windows程序.坏处是Bochs仿真的性能较差.
为了正确仿真x86处理器,每仿真一条指令Bochs需要运行多条指令,因此使用Bochs仿真的机 器要比现实当中的机器慢上好几倍.商业化的虚拟机能够(Vmware,Connetix,等)通过使用一种 名为”Virtualization”[2]的技术来取得高效率虚拟的效果,但是它们不是不能移植到非x86平台, 就是闭源.一个可用来替代使用”Virtualization”技术的商业x86虚拟软件是开源的Plex8ቤተ መጻሕፍቲ ባይዱ项目.
[1]Bochs运行于多个不同平台又可仿真多个不同平台.因此在这里我们有必要对一些术语进 行界定:host平台是指运行Bochs的机器.guest平台是Bochs仿真的操作系统和应用程序. [2]Virtualizatoin依靠同为x86平台的这一先天优势,使得大部分仿真能够以原生平台的速度进 行.但是如果仿真机器要与硬件直接打交道或者要求进入特权模式(比如内核代码),那么仿真 软件就有必要接收控制权然后使用软件来低速仿真相应代码,这与Bochs所做的一模一样. [3]这里我们需要了解Bochs的一些历史.通过探寻 Bochs最初目的以及其用途来了解其背景 知识是十分有趣的一件事.我记得我在一个谈话节目听到Kevin谈起过Bochs编写的原因及其 他一些背景信息.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CVS使用手册 本资料由织雀教育从网上整理,仅供学习交流,请务做商业用途 CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。工作模式如下:

CVS服务器(文件版本库) / | \ (版 本 同 步) / | \ 开发者1 开发者2 开发者3

作为一般开发人员挑选2,6看就可以了,CVS的管理员则更需要懂的更多一些,最后还简单介绍了一些Windows下的cvs客户端使用,CVS远 程用户认证的选择及与BUG跟踪系统等开发环境的集成问题。

1. CVS环境初始化:CVS环境的搭建 管理员 2. CVS的日常使用:日常开发中最常用的CVS命令, 开发人员 管理员 3. CVS的分支开发:项目按照不同进度和目标并发进行 管理员 4. CVS的用户认证:通过SSH的远程用户认证,安全,简单 管理员 5. CVSWEB:CVS的WEB访问界面大大提高代码版本比较的效率 管理员 6. CVS TAG:将$Id$ 加入代码注释中,方便开发过程的跟踪开发人员 7. CVS vs VSS: CVS和Virsual SourceSafe的比较 开发人员 管理员 8. WinCVS: 通过SSH认证的WinCVS认证设置 9. 基于CVSTrac的小组开发环境搭建:通过CVSTrac实现web界面的CVS用户管理,集成的BUG跟踪和WIKI交流 10. CVS中的用户权限管理:基于系统用户的CVS权限管理和基于CVSROOT/passwd的虚拟用户管理

一个系统20%的功能往往能够满足80%的需求,CVS也不例外,以下是CVS最常用的功能,可能还不到它全部命令选项的20%,作为一般开发人员平时会用cvs update和cvs commit就够了,更多的需求在实际应用过程中自然会出现,不时回头看看相关文档经常有意外的收获。

CVS环境初始化

环境设置:指定CVS库的路径CVSROOT tcsh setenv CVSROOT /path/to/cvsroot bash CVSROOT=/path/to/cvsroot ; export CVSROOT 后面还提到远程CVS服务器的设置: CVSROOT=:ext:$USER@test.server.address#port:/path/to/cvsroot CVS_RSH=ssh; export CVSROOT CVS_RSH

初始化:CVS版本库的初始化。 cvs init

一个项目的首次导入 cvs import -m "write some comments here" project_name vendor_tag release_tag 执行后:会将所有源文件及目录导入到/path/to/cvsroot/project_name目录下 vender_tag: 开发商标记 release_tag: 版本发布标记

项目导出:将代码从CVS库里导出 cvs checkout project_name cvs 将创建project_name目录,并将最新版本的源代码导出到相应目录中。这个checkout和Virvual SourceSafe中的check out不是一个概念,相对于Virvual SourceSafe的check out是cvs update, check in是cvs commit。

CVS的日常使用

注意:第一次导出以后,就不是通过cvs checkout来同步文件了,而是要进入刚才cvs checkout project_name导出的project_name目录下进行具体文件的版本同步(添加,修改,删除)操作。

将文件同步到最新的版本 cvs update 不制定文件名,cvs将同步所有子目录下的文件,也可以制定某个文件名/目录进行同步 cvs update file_name 最好每天开始工作前或将自己的工作导入到CVS库里前都要做一次,并养成“先同步 后修改”的习惯,和Virvual SourceSafe不同,CVS里没有文件锁定的概念,所有的冲突是在commit之前解决,如果你修改过程中,有其他人修改并commit到了CVS 库中,CVS会通知你文件冲突,并自动将冲突部分用 >>>>>> content on cvs server <<<<<< content in your file >>>>>> 标记出来,由你确认冲突内容的取舍。 版本冲突一般是在多个人修改一个文件造成的,但这种项目管理上的问题不应该指望由CVS来解决。

确认修改写入到CVS库里 cvs commit -m "write some comments here" file_name

注意:CVS的很多动作都是通过cvs commit进行最后确认并修改的,最好每次只修改一个文件。在确认的前,还需要用户填写修改注释,以帮助其他开发人员了解修改的原因。如果不用写-m

"comments"而直接确认`cvs commit file_name` 的话,cvs会自动调用系统缺省的文字编辑器(一般是vi)要求你写入注释。 注释的质量很重要:所以不仅必须要写,而且必须写一些比较有意义的内容:以方便其他开发人员能够很好的理解 不好的注释,很难让其他的开发人员快速的理解:比如: -m "bug fixed" 甚至 -m ""

好的注释,甚至可以用中文: -m "在用户注册过程中加入了Email地址校验"

修改某个版本注释:每次只确认一个文件到CVS库里是一个很好的习惯,但难免有时候忘了指定文件名,把多个文件以同样注释commit到CVS库里了,以 下命令可以允许你修改某个文件某个版本的注释: cvs admin -m 1.3:"write some comments here" file_name

添加文件 创建好新文件后,比如:touch new_file cvs add new_file 注意:对于图片,Word文档等非纯文本的项目,需要使用cvs add -kb选项按2进制文件方式导入(k

表示扩展选项,b表示binary),否则有可能出现文件被破坏的情况 比如: cvs add -kb new_file.gif cvs add -kb readme.doc

如果关键词替换属性在首次导入时设置错了怎么办? cvs admin -kkv new_file.css

然后确认修改并注释 cvs ci -m "write some comments here"

删除文件 将某个源文件物理删除后,比如:rm file_name cvs rm file_name 然后确认修改并注释 cvs ci -m "write some comments here" 以上面前2步合并的方法为: cvs rm -f file_name cvs ci -m "why delete file" 注意:很多cvs命令都有缩写形式:commit=>ci; update=>up; checkout=>co/get; remove=>rm;

添加目录 cvs add dir_name

查看修改历史 cvs log file_name cvs history file_name

查看当前文件不同版本的区别 cvs diff -r1.3 -r1.5 file_name 查看当前文件(可能已经修改了)和库中相应文件的区别 cvs diff file_name cvs的web界面提供了更方便的定位文件修改和比较版本区别的方法,具体安装设置请看后面的cvsweb使用

正确的通过CVS恢复旧版本的方法: 如果用cvs update -r1.2 file.name 这个命令是给file.name加一个STICK TAG: "1.2" ,虽然你的本意只是想将它恢复到1.2版本 正确的恢复版本的方法是:cvs update -p -r1.2 file_name >file_name 如果不小心已经加成STICK TAG的话:用cvs update -A 解决

移动文件/文件重命名 cvs里没有cvs move或cvs rename,因为这两个操作是可以由先cvs remove old_file_name,然后cvs add new_file_name实现的。

删除/移动目录 最方便的方法是让管理员直接移动,删除CVSROOT里相应目录(因为CVS一个项目下的子目录都是独立的,移动到$CVSROOT目录下都可以作为新的 独立项目:好比一颗树,其实砍下任意一枝都能独立存活),对目录进行了修改后,要求其开发人员重新导出项目cvs checkout project_name 或者用cvs update -dP同步。

项目发布导出不带CVS目录的源文件 做开发的时候你可能注意到了,每个开发目录下,CVS都创建了一个CVS/目录。里面有文件用于记录当前目录和CVS库之间的对应信息。但项目发布的时候 你一般不希望把文件目录还带着含有CVS信息的CVS目录吧,这个一次性的导出过程使用cvs export命令,不过export只能针对一个TAG或者日期导出,比如: cvs export -r release1 project_name cvs export -D 20021023 project_name cvs export -D now project_name

CVS Branch:项目多分支同步开发

确认版本里程碑:多个文件各自版本号不一样,项目到一定阶段,可以给所有文件统一指定一个阶段里程碑版本号,方便以后按照这个阶段里程碑版本号导出项目, 同时也是项目的多个分支开发的基础。

cvs tag release_1_0 开始一个新的里程碑: cvs commit -r 2 标记所有文件开始进入2.x的开发

注意:CVS里的revsion和软件包的发布版本可以没有直接的关系。但所有文件使用和发布版本一致的版本号比较有助于维护。

版本分支的建立 在开发项目的2.x版本的时候发现1.x有问题,但2.x又不敢用,则从先前标记的里程碑:release_1_0导出一个分支 release_1_0_patch cvs rtag -b -r release_1_0 release_1_0_patch proj_dir

相关文档
最新文档