首页 CVS快速入门

CVS快速入门

举报
开通vip

CVS快速入门 用 CVS组建小型软件开发团队 刘 楷 摘 要 本文主要介绍如何使用 Windows NT 平台的 CVS 服务器 CVSNT 和 Windows 平台的 CVS客户端 WinCVS来组建 CVS系统。 关键词 CVS,CVSNT,WinCVS 一、引言 在一个项目的开发过程中,开发团队成员的个人能力是一个重要因素,而管 理的重要性也是不能忽视的,特别是对于软件开发团队,源代码和文档等的管理 和维护更是尤为重要。因此,对每个团队成员而言,必须学会使用这类管理软件, 比较典型的有 VSS...

CVS快速入门
用 CVS组建小型软件开发团队 刘 楷 摘 要 本文主要介绍如何使用 Windows NT 平台的 CVS 服务器 CVSNT 和 Windows 平台的 CVS客户端 WinCVS来组建 CVS系统。 关键词 CVS,CVSNT,WinCVS 一、引言 在一个项目的开发过程中,开发团队成员的个人能力是一个重要因素,而管 理的重要性也是不能忽视的,特别是对于软件开发团队,源代码和文档等的管理 和维护更是尤为重要。因此,对每个团队成员而言,必须学会使用这类管理软件, 比较典型的有 VSS和 CVS。对于一个小型的软件开发团队而言,CVS作为一款 免费软件而备受青睐。 CVS全称 Concurrent Versions System,主要用于管理在开发过程中生成的源 代码、文档等资料,记录他们的更新历史,使开发团队各成员可以更好的协作。 CVS 系统分为服务器端和客户端两个部分,服务器端一般安装于 Linux 系统或 Windows NT系统(注:Windows 2000 Professional、Windows 2000 Server、Windows XP、Windows 2003 Server都属于Windows NT系统),客户端则根据客户机操作 系统的不同而有众多类别。 对于大部分软件开发团队来说,其开发平台为Windows系统,所以客户端一 般使用的是Windows平台的客户端WinCVS。而大多数人对 Linux系统又比较陌 生,因此本文主要介绍使用 Windows NT 系统的服务器端 CVSNT 和 Windows 平台的客户端WinCVS来组建 CVS系统。 二、服务器端的安装和配置 首先,需要一台性能较好、工作稳定的计算机作为服务器,操作系统为 Windows NT系列系统。CVS 可安装于任何Windows NT系统平台,但对于不同 的Windows NT平台其 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 现可能会略有不同,这主要是由不同Windows NT系统 的默认安全设置决定的,文中的服务器安装的是Windows XP Professional,不过 对其进行了一些设置,打开“控制面板->文件夹选项”,翻到“查看”页,将“使 用简单文件共享(推荐)”前的勾去掉。见图一。还需要为 CVSNT建立两个必要 的目录,一个是仓库(Repository)所在目录,另一个是 CVS 存放临时文件的临时 目录。这两个目录最好位于一个单独的 NTFS分区,如果位于 FAT/FAT32分区, 则一些和权限相关的操作将没有效果。然后需要为开发团队的每个成员建立用 户,建立用户的方法不再赘述,如果没有经过特别设定,这些新建的用户都是在 Users组里的。为了提高性能和稳定性,不建议在 CVS服务器上安装其他应用软 件,另外,为了提高安全性,所有用户都建议使用复杂密码,特别是管理员必须 使用复杂密码。 图一 CVSNT可以到 http://www.cvsnt.org下载,网站上还有 CVSNT的使用说明等 文档。文中使用的 CVSNT版本是 2.0.8。安装后系统中会多出两个服务,CVSNT Service和 CVSNT Lock Service。然后就可以开始配置 CVS 服务器了,点击“开 始->所有程序->CVSNT->Service control panel,应该出现如下配置对话框,见图 二。 图二 图二说明 CVSNT的两个服务正在运行。再翻到“Repositories”页,见图三, 按下“Add”按钮,出现提示框, 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 输入仓库(Repository)目录,这时输入刚才 为 CVS建立的仓库目录或者按下右边的“… ”选择即可,然后按下“OK”,在接 下来的提示框中选择“是”,见图四。 图三 图四 这样,一个 CVS仓库就建立好了,在本例中它位于 E:\CVS\Root,这时该目 录中应该有一个名位 CVSROOT的子目录。再翻到“Advanced”页,勾上“Use local users for pserver authentication instead of domain users”,设置好 Temporary目 录,见图五。设置完成后重新启动一下计算机,重启后 CVS 服务器就已经可以 正常工作了。 图五 三、客户端的安装和配置 CVS 的 Windows 平 台 客 户 端 WinCVS 的 下 载 地 址 是 http://sourceforge.net/project/,本文以 WinCVS1.3.13.1 Beta 13 (Build 1)为例。 WinCVS的安装很简单,安装后第一次运行会要求进行一些配置,见图六。 图六 Authentication是身份验证 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 选择,我们选择 pserver,口令验证。这种协议 的口令传输只是简单的加密,安全性很低,不过一般的小型开发团队都是在局域 网内部,对此要求不高。 Path是 CVS仓库的服务器路径,写法见图六。 Host address是 CVS 服务器的机器名或 IP地址,一般我们建议使用机器名, 使用 IP 地址的局限是如果以后 CVS 服务器 IP 地址改变将是一件比较麻烦的事 情。 User name是你在 CVS服务器上的用户名。 CVSROOT是有系统自动填写的。 然后翻到“Globals”页,见图七。 图七 Checkout read-only 具有文件修改跟踪功能,但勾上这个选项后 Checkout 出 来的文件是只读的,比较麻烦,因此我们取消了这个功能。 TCP/IP compression是压缩传输,可以节省网络带宽,局域网内带宽不是问 题,勾不勾这个选项无所谓。 再翻到“CVS”页,见图八。 图八 设置一下 HOME路径,这个路径是用来缓存密码的,放在哪里看个人喜好。 然后再按下工具栏中的“Change location”按钮更改一下工作目录,见图九。 图九 如此,WinCVS的基本设置就完成了。 四、CVS的基本操作 CVS的功能很多,其中最基本的有 Login,Logout,Import,Checkout,Commit, Update,Add。本文将逐一讲解他们的基本使用方法。 Login即用户登陆,用于验证用户身份,选择菜单“Admin->Login”,输入密 码后请等待结果,如成功则返回“***** CVS exited normally with code 0 *****”,失败返回是“***** CVS exited normally with code 1 *****”。 Logout 即退出登陆,结束本次会话。如果关闭WinCVS 前没有 Logout,则 WinCVS可以记住本次登陆密码,下次打开时可以不必 Login。 Import 的作用是向 CVS 服务器上传一个模块(Module),我们通常把一个模 块放在工作目录的一个子目录中,这样可以在Workspace视图中看到,如图十。 在上传之前,最好先将模块中无用的文件删除(如临时文件、目标码文件等),然 后在要上传的Module上按下鼠标右键,选择“Import Module…”,这时 CVS会 检测模块中每个文件的类型,请耐心等待。 图十 待WinCVS检测完毕后会给出一个 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 窗口,告诉你WinCVS自动检测的结 果,状态为“OK”说明没有出现冲突,而“Error”则说明存在冲突,即同一后 缀的文件存在两种或两种以上的类型。见图十一。 图十一 图中的检测结果是 c文件检测为 TEXT类型,而 swf文件出现了冲突。出现 冲突后应该手工解决冲突,将这一后缀的文件全部强制为某种类型,在出现冲突 的那类文件上双击,手工更改其类型,一般来说我们都是将出现冲突的文件全部 强制为 BINARY 类型。对没有冲突的后缀也应该仔细检查,确认无误后再按下 “Continue”按钮,这一步检查工作非常重要,必须保证无误,否则以后难以修 正。这时会出现一个“Import settings”窗口,在这里填写必要的信息后确认上传。 见图十二。 图十二 Checkout 的作用是从 CVS 服务器上下载一个全新的模块。在 Workspace视 图中的工作目录上按下鼠标右键,选择“Checkout Module…”,在弹出的“Checkout settings”窗口中填写模块名称和下载的本地路径,确定。见图十三。注意不要按 模块名右边的那个“…”按钮,那个按钮的作用是列出 CVS 服务器上已经登记 的模块名,但按照刚才的方法是不会在 CVS 服务器上登记模块名的,那个按钮 是没有作用的。 图十三 稍等一会儿,WinCVS的 Output视图中就会给出提示,如下所示。 cvs -z9 checkout -P TEST (in directory D:\work) cvs server: warning: cannot write to history file E:/CVS/Root/CVSROOT/history: Permission denied cvs server: Updating TEST U TEST/2450.swf U TEST/ex1.c U TEST/ex2.swf ***** CVS exited normally with code 0 ***** 虽然 Checkout是成功的,但大家可以看到有一个警告,造成这个警告的原因 是 CVS服务器上 Users组的成员没有对这个文件的改写权。解决方法也很简单, 赋予 Users组对这个文件的改写权就可以了。见图十四。 图十四 Commit 是将自己改过的文件提交给 CVS 服务器,自己改过的文件在 WinCVS中图标是红色的,其 Status 是Mod. File或Mod. Binary等。在文件上按 下鼠标右键,选择“Commit selection…”就可以将所选文件提交。见图十五。 图十五 但是大家可以发现WinCVS提示出现了错误,如下。 cvs -z9 commit -m "user2 modify" (in directory C:\work\TEST\) cvs commit: Examining . Checking in ex1.c; E:/CVS/Root/TEST/ex1.c,v <-- ex1.c new revision: 1.2; previous revision: 1.1 cvs [server aborted]: cannot rename file E:/CVS/Root/TEST/,ex1.c, to E:/CVS/Root/TEST/ex1.c,v: Permission denied ***** CVS exited normally with code 1 ***** 造成这个错误的原因也是CVS服务器上Users组的成员没有对这个目录的改 写权。解决方法也很简单,赋予 Users组对这个目录的改写权就可以了。见图十 六。 图十六 再次 Commit,成功了,WinCVS提示如下。 cvs -z9 commit -m "user2 modify" ex1.c ex2.swf (in directory C:\work\TEST\) Checking in ex1.c; E:/CVS/Root/TEST/ex1.c,v <-- ex1.c new revision: 1.2; previous revision: 1.1 done Checking in ex2.swf; E:/CVS/Root/TEST/ex2.swf,v <-- ex2.swf new revision: 1.2; previous revision: 1.1 done ***** CVS exited normally with code 0 ***** 如果 Commit时出现如下提示。 cvs -z9 commit -m "no message" ex1.c (in directory D:\work\TEST\) cvs server: Up-to-date check failed for `ex1.c' cvs [server aborted]: correct above errors first! ***** CVS exited normally with code 1 ***** 这说明你想提交的文件已经被别人改过并且提交了,出现这种情况时,你只 能先 Update,下面就介绍一下 Update功能。 Update 是从 CVS服务器上获得某个模块的更新版本。在模块名上按下鼠标 右键,选择“Update selection…”即可,然后在弹出的对话框中勾上“Create missing directories that exist in repository”,确定。见图十七。“Create missing directories that exist in repository”的作用是下载别人在模块中新增的目录,如果不勾上,你就 不能下载别人在模块中新增的目录。 图十七 稍等之后,WinCVS给出了结果,如下。 cvs -z9 update -P -d (in directory D:\work\TEST\) cvs server: Updating . RCS file: E:/CVS/Root/TEST/ex1.c,v retrieving revision 1.2 retrieving revision 1.3 Merging differences between 1.2 and 1.3 into ex1.c rcsmerge: warning: conflicts during merge cvs server: conflicts found in ex1.c C ex1.c U ex2.swf P ex3.c M ex4.c RCS file: E:/CVS/Root/TEST/ex5.c,v retrieving revision 1.1 retrieving revision 1.2 Merging differences between 1.1 and 1.2 into ex5.c M ex5.c ***** CVS exited normally with code 0 ***** 请注意这些提示信息。凡是出现“RCS file:”的地方说明那个文件别人改过 并提交过,而且你也改过,CVS系统将进行并和操作。而“rcsmerge: warning: conflicts during merge”的意思则是并和操作没有顺利完成,你改动的 部分和别人改动的部分在同一个地方,存在冲突,如上面的 ex1.c这个文件就存 在冲突。如果存在冲突,只能手工解决冲突,可以在源代码中查找“<<<<<<<” 字符串,在“<<<<<<<”和“>>>>>>>”之间是冲突部分。再看上面的 ex5.c这 个文件,这个文件也是你和别人都进行了改动,不过 CVS 系统已经顺利的把你 们的改动并和在一起了,对于这类文件也要留心一下,有时 CVS 并和操作的结 果是不合人意的。红色的字母 C 表示有冲突的文件,绿色的字母 U表示服务器 上的文件比本地文件新而且文件是 BINARY类型的,蓝色的字母 P 表示服务器 上的文件比本地文件新而且文件是 TEXT类型的。粉色的字母 M表示本地文件 比服务器上的文件新。 Add 是向 CVS 服务器中一个已经存在的模块里添加新的目录、文件。Add 操作很简单,只要选中需要添加的目录或文件,然后按下工具栏中的“Add selection”或“Add selection binary”即可。添加文本文件和目录请用“Add selection”,添加二进制文件请用“Add selection binary”。注意添加目录时,其中 的子目录和文件都不会自动添加,而只能手工进行操作。最后别忘了将添加的目 录和文件 Commit一次,否则不能添加到 CVS服务器中。见图十八、十九。 图十八 图十九 在实际的工作中,我们都要进行大量的 Commit和 Update操作,因此良好的 分工是很重要的,使各人负责的文件功能尽可能的独立,这样可以减少冲突的出 现。另外必须注意,团队中每个成员上传的文件都是整个模块的一部分,因此上 传前务必仔细调试,必须确保整个模块工作无误,否则会有严重后果。 五、Tag和 Branch的使用 Tag 的意思是标记,通常你可以把它看成是整个模块的版本号。在开发过程 中,一个模块一般都包含很多文件,初始时每个文件的版本号都是 1.1.1.1,而随 着开发的进行,各个文件被修改的次数并不是一样的,因此众多文件的版本号是 越来越乱,如果你想 Checkout 某一特定时期的中间产品时会发现基本是不可能 的任务了。而应用 Tag就很容易解决这个问题。比如,当我们发布产品 1.00版 本时,我们把整个模块加一个 Tag,如 R1_00。一个月后我们又发布了 1.10版本 的产品,我们就再加一个 Tag,R1_10。这样,我们以后就可以非常清晰的看到 产品各个版本的发布时间,以及每次升级所修改的文件,这对 Bug 跟踪也有很 大的帮助。给模块加 Tag的方法是选中模块,然后按下工具栏中的“Tag selection”, 见图二十。 图二十 如要指定 Tag来 Checkout 某个模块,只需在 Checkout前指定所需 Tag即可, 即在图十三的“Checkout options”中指定,指定 Tag来 Update时也类似。指定 Tag来 Checkout或 Update后,可以在 Tag这一栏中看到 Tag的名字。 Tag 的使用并不局限于产品版本号,也不局限于整个模块,你可以随意的给 任何一个文件加 Tag,不过滥用 Tag就会使 Tag失去它应有的作用。 Branch是分支,与分支对应的是 Main trunk,即主线。在一个模块的初始是 没有分支的,而在以后的开发过程中可以从主线上引出分支,这有些类似于城市 的供水系统,在主干管线上不断的有细小的管线引出至附近的居民楼。 在我的开发过程中,分支的引出多数是由于客户需求变更导致的。对开发人 员来说,客户需求变更通常导致很大的改动,如果哪天客户需求再变回去就是白 费力气了。这时我就在主线上引出一个分支来专门对付变更后的客户需求,而主 线则保持原来的开发进程。 分支的建立方法是,选中模块,然后选择菜单中的“Modify-》Create a branch”,见图二十一。如果要指定 Branch来 Checkout 某个模块,只需在 Checkout 前指定所需 Tag即可(指定 Branch和指定 Tag是一样的),即在图十三的“Checkout options”中指定,指定 Branch来 Update时也类似。指定 Branch来 Checkout或 Update后,可以在 Tag这一栏中看到 Branch的名字。 图二十一 六、结束语 本文简单的介绍了 CVS 系统的安装和基本使用方法。作为一套版本管理软 件,CVS 系统的功能非常复杂,很多功能可以看看帮助,在使用过程中逐渐学 习。 参考文献 1、WinCVS客户端自带帮助。 2、http://www.cvsnt.org
本文档为【CVS快速入门】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_495074
暂无简介~
格式:pdf
大小:1MB
软件:PDF阅读器
页数:16
分类:互联网
上传时间:2011-08-15
浏览量:22