《计算机学院学年论文cvs的认识与配置》

上传人:j****9 文档编号:45428138 上传时间:2018-06-16 格式:DOC 页数:6 大小:81.50KB
返回 下载 相关 举报
《计算机学院学年论文cvs的认识与配置》_第1页
第1页 / 共6页
《计算机学院学年论文cvs的认识与配置》_第2页
第2页 / 共6页
《计算机学院学年论文cvs的认识与配置》_第3页
第3页 / 共6页
《计算机学院学年论文cvs的认识与配置》_第4页
第4页 / 共6页
《计算机学院学年论文cvs的认识与配置》_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《《计算机学院学年论文cvs的认识与配置》》由会员分享,可在线阅读,更多相关《《计算机学院学年论文cvs的认识与配置》(6页珍藏版)》请在金锄头文库上搜索。

1、 CVS 的的 认认 识识 与与 配配 置置内容摘要内容摘要 CVS 是基于 C/S 结构的系统,由一个中心版本控制系统记录文件版本,从而实现很多人同时开发一个项目的时候能够实现文件版本同步。CVS 的全称是 Current Version Control 即版本控制工具,它是一种广泛应用的、开源的、透明于网 络的版本控制系统,用户可以通过 CVS 来实现项目的共享,运用 CVS 命令,来实现对 CVS 的控制,对项目的控制。关键词关键词 版本控制工具,BUG,功能,术语命令,模块,安装1.11.1 章章 CVSCVS 的的 引引 入入1.1.11.1.1 CVSCVS 是什么是什么CVS 的

2、全称是 Current Version Control 即版本控制工具,它是一种广泛应用的、 开源的、透明于网络的版本控制系统。用户使用 CVS 时,首先要架设一台 CVS 服务器, 在 CVS 服务器上导入项目实例、设置 CVS 项目访问控制等。而客户则通过客户端来访 问 CVS 服务器,客户可以取得项目最新代码副本,提交自己修改的代码等,而客户可 以从 Internet、LAN 甚至本机来访问 CVS 服务器。1.1.21.1.2 CVSCVS 的工作的工作CVS 的基本工作思路是这样的:在一台服务器上建立一个仓库,仓库里可以存放许 多不同项目的源程序由仓库管理员统一管理这些源程序这样,就

3、好象只有一个人 在修改文件一样避免了冲突每个用户在使用仓库之前,首先要把仓库里的项目文 件下载到本地用户做的任何修改首先都是在本地进行,然后用 cvs 命令进行提交, 由 cvs 仓库管理员统一修改这样就可以做到跟踪文件变化,冲突控制等等 1.1.CVSCVS 引入的原因引入的原因 在安装 cvs 的过程中,我们时常会问为什么要使用 CVS?如果没有 cvs 的协助, 在开发中我们经常会遇到下面的一些问题: (一)代码管理混乱。如果是别人添加或删除一个文件,你很难发现。没有办法 对文件代码的修改追查跟踪。甚至出现文件丢失,或新版本代码被同伴无意覆 盖等现象。 (二)解决代码冲突困难。当大家同时

4、修改一个公共文件时,解决代码冲突是一 件很头疼的事。最原始的办法是手工打开冲突文件,逐行比较,再手工粘贴复 制。更高级的做法是使用文件比较工具,但仍省不了繁杂的手工操作,一不小 心,甚至会引入新的 bug。 (三)在代码整合期间引入深层 BUG。例如开发者 A 写了一个公共函数,B 觉得 正好可以复用;后来 A 又对这个公共函数进行了修改,添加了新的逻辑,而这 个改动的却是 B 不想要的。或者是 A 发现这个公共函数不够用,又新做了一个计算机学院学年论文-CVS 的认识与配置2函数,B 却没有及时获得通知。这些,都为深层 BUG 留下隐患。 (四)无法对代码的拥有者进行权限控制。代码完全暴露在

5、所有的开发者面前, 任何人都可以随意进行增、删、改操作,无法指定明确的人对代码进行负责。 特别是产品的开发,这是极其危险的。 (五)项目不同版本发布困难。特别是对产品的开发,你会频繁的进行版本发布, 这时如果没有一个有效的管理产品版本的工具,一切将变得非常艰难。 这些问题对于一个团队来说,更是首要解决的问题,由此可以看出,版本控制工具 的使用非常重要。 2.2.CVSCVS 的功能介绍的功能介绍 (一)代码统一管理,保存所有代码文件更改的历史记录。对代码进行集中统一 管理,可以方便查看新增或删除的文件,能够跟踪所有代码改动痕迹。可以随 意恢复到以前任意一个历史版本。并避免了因为版本不同引入的深

6、层 BUG。 (二)完善的冲突解决方案,可以方便的解决文件冲突问题,而不需要借助其它 的文件比较工具和手工的粘贴复制。 (三)代码权限的管理。可以为不同的用户设置不同的权限。可以设置访问用户 的密码、只读、修改等权限,而且通过 CVS ROOT 目录下的脚本,提供了相应 功能扩充的接口,不但可以完成精细的权限控制,还能完成更加个性化的功能。(四)支持方便的版本发布和分支功能。 3.3. CVSCVS 术语术语 (一)Repository-仓库: CVS 服务器的根目录。模块(Module)的集合。 (二)Module-模块:,CVS 服务器根目录下的第一级子目录。通常用于存放 一个项目的所有文

7、件。 (三)Checkout-检出: 通常指将仓库中的一整个模块首次导出到本地。 (四)Import-导入:通常指通过提交整个目录结构并创建一个新的模块。 (五)Release-发行版本:整个产品的版本。 (六)Revision-修订版:单个文件的版本。 (七)Tag-标签:在一个开发的特定期对一个文件集给定的符号名。 (八)Update-更新:从模块中下载其他人的修改过的文件,更新本地的拷贝。(九)Commit-提交:将自己修改过的文件提交到模块中。1.21.2 章章 CVSCVS 常常 用用 的的 命命 令令命令格式说明:基本格式以蓝色字体标明,蓝色的 option 为可选项,必选的选项

8、以橙色、重要的选项以红色标示,请注意。 1.2.11.2.1 importimport 导入源码导入源码 命令格式 import m message repository vendortag releasetag . 导入源码到 CVS 上,用来新建一个项目或大批量更新代码。 命令格式中后三个选项是必须的。repository 指定需导入的目录名称,vendortag 指定分支标记,releasetag 用来区分每次导入的唯一。 如果我们用命令行 import 的话一定要记得用-W 这是一个比较重要的 option, 他会令 cvs 对 import 的程序包进行过滤,如果有不同的类型同时存在

9、,它会以不 同的方式来处理,所以每一种格式都要指定-W,这点必不可少。不过一般来说我们用计算机学院学年论文-CVS 的认识与配置3WINCVS 里的 import 选项就可以了,它会自动针对不同类型做不同动作,在做了 IMPORT 之后我们可以看它生成的命令行. 1.2.21.2.2 checkoutcheckout 检出模块检出模块 命令格式 checkout r tag D date j x j y modules 不指定任何选项时,checkout 检出仓库中模块的最新版本。 主要选项常用到的就是-r,它是用来指定 tag 的,比如技术支持每次要取的发布版 本就是通过指定 tag 检出的

10、。当然也可以按日期来检出,用-D 选项。 另外两个比较重要的是-A 和 -j 。 -A 是完成清除 stick tag 的,检出不带任何 sticky tag 的模块当然是令人比较省 心的。 -j (jion) 合并修订版间的修改到工作目录, 两个-j 选项:checkout j x j y filename 与 update j x j y filename 接近,都是将两个版本号的前一个合并到后一个,通常 x 是大于 y 的,换种说法就是 将文件恢复到某一个旧的版本。当然,版本号取的仍然是新的。当 x 小于 y 时,就是 把 x 合并到 y。 一个-j 选项:合并指定版本到最初的版本 or

11、 合并分支到主干。 1.2.31.2.3 updateupdate 更新工作列表更新工作列表 命令格式 update p r A C j x j y filesname update 使本地工作目录与仓库的更新同步。他令仓库里面的修改合并到本地目录, 这样可以为多人同时开发提供了减少冲突的可能。 选项说明: -A 清除 sticky tag -A 选项将把本地的改变合并进树干顶部的文件,并且忽 略中间的任何粘性标签、设置日期或选项。使用此选项同客户端 update settings 里 的 Reset any sticky date/tag/k options -p 清除空目录 同客户端 Gl

12、obles 里面的 prune empty dirctories r 更新到版本 tag 同客户端 update options 里的 retrieve rev./tag/branch C 放弃修改,将服务器版本覆盖本地副本。 j 跟 checkout 的-j 选项相似,区别就在于 update 可以对单独的文件进行合并, 而 checkout 最小单位必须是目录 -j x j y 在客户端的 merge option 里面选择 plus with this rev./tag 可选填 X 和 Y。 一个-j 选项则合并指定版本到最初的版本 or 合并分支到主干。 1.2.41.2.4 comm

13、itcommit 提交修改提交修改 命令格式 commit l R r f filesname 把修改提交到仓库。为避免提交时产生冲突,commit 之间最好先做 update。Update 会把更新合并到本地,给解决冲突提供了机会。 选项说明: -l 仅在当前目录运行 R 递归操作 r 提交到某一版本,些版本必须是分支或 主干上的最新版 f 强制提交;单独使用时与-R 相抵制,禁止递归操作。 Commit 本身不是可递归的,如果对顶级目录进行了 commit,只能提交当层目录中 的文件,并不影响子目录。如果需要提交整个模块,需要选定 commit option 里面的 Force recur

14、se 令提交操作可以递归,些操作与使用-R 选项相同。 如果想要强制递归提交可同时选用-R 与 f 1.2.51.2.5 tagtag 与与 rtagrtag 本地标记与仓库标记本地标记与仓库标记计算机学院学年论文-CVS 的认识与配置4tagtag 命令格式 tag b c D d l R r filesname 给文件打标签,它作用于本地工作目录 选项说明 -b 建立分支-c 检测未提交的文件 D 给 date 的修订版打标签 d 删除 标签 R 递归执行 r 给己经打好的 tag 打标签,即标记重命名,不删除原 标记。 l 当前目录运行 1.2.61.2.6 diffdiff 比较两不同

15、版本之间的区别比较两不同版本之间的区别 命令格式 diff l R D r filesname 无选项时默认为本地文件当前版本与服务器版本比较 选项说明: -l 当前目录运行 R 递归操作 D 指定日期比较 r 指定标记版本比较。 对于 date 与 tag 之间的影响关系尚需进一步验证 1.2.71.2.7 loglog查看日志信息查看日志信息 命令格式 log l h t d b N R r s w filesname 显示日志信息 选项说明: l 只在当前工作目录运行(默认递归) h 只显示 RCS 文件名 t 同 -h,外加说明文字d 显示版本提交的日期,分号隔开列表 b 显示默认分支上的版本信息,通常是主干最新 N 不显示文件的标签列表R 只显示RCS 文件的名字 r 显示由逗号分隔的 revisions 列表指定范围内的版本 s 显示匹配状态列表的修订版w 显示列表指定用户提交的修订版 1.2.81.2.8 releaserelease 断开文件断开文件/ /目录与目录与 CVSCVS 的关联的关联 命令格式 release d directories -d 如果成功,删除工作目录中文件的副本 releaserelease 命令递归地删除所有的目录和文件,如果有未添加到工作目录的文件,将 无提示地被删除,除非你想彻底删除本地文件,否则不建议使用! 1.2.91.2.9

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号