CVS培训 版本控制系统的意义.pptx

CVS培训 研发部(09-04-06) 日程版本控制系统的意义版本控制系统的概念手把手实战CVS(基础篇)手把手实战CVS(进阶篇)势在必行版本控制系统的意义为何需要使用版本控制可以对你所做的修改在整个项目的范围内进行撤销!它之前的工作状态。可以带你回到一个小时、一天或者一周能够帮助多个开发者以一种受控的方式对同一份代码进行操作。记录了以前对代码所做的每次修改。如果你发现某份代码好好的就变成一团糟的话,你可以轻易的找出是什么人,在什么时间以及为何进行这些这些修改。为何需要使用版本控制可以使你同时发布软件的多个版本,并且不会中断开发的主线。恰当的使用CVS,甚至在进行多项目的并行开发时也能很好的相互协同。几个要素版本控制系统的概念提纲仓库工作区项目、模块、文件分支、标签、合并锁、冲突仓库集中存放项目文件所有版本的主要副本的地方。数据库或者普通文件。最关键,必须被定期备份。可以支持本地或者网络化访问。有些版本控制系统需要在线工作,而有些可以离线工作(CVS属于后者)。工作区项目、模块、文件项目:一份完整且独立的代码。模块:可以将一个项目划分为多个模块。可以是层次式的,也可以是非层次式的。同样的文件或者文件集合可以出现在多个不同的模块中。文件:项目中处理的单个文件。主干、分支、标签、合并 主干提交更新 更新提交主干(mainline):在正常的开发过程中,大部分人在一个共同的代码基础上展开工作,他们将签出代码文件进行修改,将变更签入仓库,并且每个人都能共享每次修订。分支背景:当需要发布新版本时,此时不需要添加新功能,只需要进行Bug修复。如果开发员还需要编辑代码,并为下一个版本的发布做准备,那么这个发布的版本的稳定性将会受到影响。此时可以冻结代码,但是意味着开发将不能继续进行。还有一个是将代码复制到另外一个地方,请问弊端是什么?分支修复BUG发布版本继续开发创建发布分支此时就可以采用分支了:标签发布版本的时候,为发布版本的代码情况创建标签,可以顺利的找到当时发布版本的情况。可以为任何代码情况设立标签。照片。合并在分支上修复的BUG,在主干线上也存在,那么就需要将分支上修复的BUG合并到主干线上去。综合图修复BUG发布版本继续开发创建发布分支黑色:主干线绿色:分支红色:标签锁两个开发者(dev_a和dev_b)同时编辑同一份代码,当他们将代码提交时,将会发生冲突。版本控制系统使用锁解决此冲突。严格锁。乐观锁:如果上次签出文件之后,这个文件已经在仓库中更新了,仓库就不允许你签入这个文件,而是请求你在签入之前更新这个文件的本地副本,以得到仓库中被修改的版本。冲突1 typedef struct student {2 Boolean male;3 Int age; Int weight; Int height;6 } _student; 代码如下所示:dev_a修改了第4行为 Int net_weight,并且已经提交,然而dev_b修改第4行为Int gross_weight,当它提交的时候此时将产生冲突。如果dev_b修改第5行为Int net_height,则不会产生冲突。 基础篇手把手实战CVS提纲安装CVS创建仓库创建项目更新、修改、提交代码安装CVS以Linux系统为例,首先执行cvs -v,看是否cvs已经在你的系统中安装了。在我的Mandriva 2009系统上面,直接urpmi cvs便可以安装。其他系统可以在/non-gnu/cvs/寻找对应的安装软件进行安装。创建仓库比如说打算创建一个叫做sandbox(沙箱)的仓库。那么将仓库放在什么位置了,如果这个仓库只是给你自己使用的话,那么就可以放在你自己的主目录下,比如~/sandbox,使用以下命令创建仓库:arnina@chordos:~$ cvs -d ~/sandbox init查看仓库仓库目录如下(没有全部列出):创建项目一个仓库可以放置多个项目,我们首先创建一个名为mps(Multifunction packet sender)的项目。mps的代码已经初步完成,比如放在一个临时目录如/home/arnina/tmp/:arnina@chordos:~/tmp/mps$ lltotal 24-rw-r--r-- 1 arnina arnina 24 2008-11-22 21:36 Makefile-rw-r--r-- 1 arnina arnina 11251 2008-11-23 18:28 mps.c-rw-r--r-- 1 arnina arnina 1595 2008-11-23 17:37 mps.h-rw-r--r-- 1 arnina arnina 37 2008-11-23 16:30 version.h创建项目使用cvs

文档评论(0)

1亿VIP精品文档

相关文档