《软件版本控制系统介绍.ppt》由会员分享,可在线阅读,更多相关《软件版本控制系统介绍.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件版本控制系统介绍软件版本控制系统介绍2012-06-29要点要点l概念l浅谈Subversion(SVN)&Gitl版本控制系统的发展概念概念l一些简单的例子:XXX 预览版/测试版/正式版/Beta/RC/ReleaseXXX 1.0/1.1/2.0XXX Edition 0.71l另存为概念概念l软件版本控制系统:Version Control System简称:VCSl功能?版本记录和恢复共享数据追踪修改信息和责任人l核心概念:版本库(Repository)l鼻祖:SCCS(1972年)概念概念Local Only:SCCS(1972年)Centralized(Client Serv
2、er):SVN(2000年)Distributed:Git(2005年)l分类概念概念lLocal Only版本控制系统(Local VCS)模型本地计算机工作目录版本库Rev 1Rev n概念概念l集中式版本控制系统(Centralized VCS)模型计算机A计算机B服务器工作目录工作目录版本库Rev 1Rev n概念概念l分布式版本控制系统(Distributed VCS)模型服务器/计算机C版本库计算机A(工作目录)源文件版本库计算机B(工作目录)源文件版本库Pull/PushPull/PushPull/Push浅谈浅谈Subversion(SVN)lSVN,是一个开放源代码的版本控制
3、系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。2000年,由CVS的开发者Karl Fogel等开发人员开发。2009年11月,Subversion被Apache Incubator项目所接收。2010年1月,正式成为Apache软件基金会的一个顶级项目。浅谈浅谈Subversion(SVN)lSVN?lSVNTortoiseSVN(好比Linux内核发行版)是它?浅谈浅谈Subversion(SVN)lSVN的架构浅谈浅谈Subversion(SVN)模式模式访问方法访问方法file:/直接版本库访问(本地磁盘)http:/通过配置Subversion的Apa
4、che服务器的WebDAV协议https:/与http:/相似,但是包括SSL加密。svn:/通过svnserve服务自定义的协议svn+ssh:/与svn:/相似,但通过SSH封装。版本库访问URL 浅谈浅谈Subversion(SVN)l经典模型User A(Rev X)User B(Rev Y)User C(Rev Z)RepositoryClient(Working Copy)Server(Repository)浅谈浅谈Subversion(SVN)l特点集中式版本控制系统l中央版本库全局版本号l针对目录树进行版本号记录分支/合并l廉价的拷贝User A(Rev X)User B(Re
5、v Y)User C(Rev Z)RepositoryClient(Working Copy)Server(Repository)浅谈浅谈Subversion(SVN)lSVN存储模型增量(差异性)存储文件ARev 1文件ARev 2差异性信息(=|r2-r1|)版本库浅谈浅谈Subversion(SVN)l文件共享模型“锁定-修改-解锁”浅谈浅谈Subversion(SVN)l文件共享模型“拷贝-修改-合并”浅谈浅谈Subversion(SVN)l分支示意图l优点:版本号递增,逻辑明确,符合一般人思维习惯。版本库集中式管理,版本信息不易泄露。唯一的版本库,代码一致性非常高。适合开发人数不多的
6、项目开发。l缺点:服务器压力太大,需要频繁响应访问请求。几乎无法离线工作。不适合大型开源项目开发(开发人员众多且分散)。集中式管理,容易限制开发者积极性及分支应用。浅谈浅谈Subversion(SVN)浅谈浅谈GitlGit:The stupid content tracker,傻瓜内容跟踪器。l早期Linux的开发人员是使用BitKeeper来管理版本控制和维护程式码。2005年的时候,开发BitKeeper的公司同Linux内核开源社区结束合作关系,并收回使用BitKeeper的权利。Linus Torvalds(Linux之父)开始着手开发Git来替代BitKeeper。浅谈浅谈Gitl
7、Git简单模型浅谈浅谈GitlGit的工作模型集中式浅谈浅谈GitlGit的工作模型管理员浅谈浅谈GitlGit的工作模型权限分发(金字塔式)浅谈浅谈GitlGit的存储模型快照存储浅谈浅谈GitlGit的分支追踪图l优点:工作模型多样化,可适用各种工作流。分布式版本库l响应速度快,可离线工作,减轻服务器负担。l可在本地分支,进行开发,并且推送到本地版本库,可提高开发人员积极性。版本信息完整,可追踪分支历史,利于分支合并。l缺点:全球版本号(20位哈希值),非递增序列,需查询提交链获知父子版本信息。分布式版本库,版本信息易被公开。浅谈浅谈GitVCS的发展的发展VCS的发展的发展VCS的发展的发展VCS的发展的发展l版本库的搬迁本地计算机服务器分布式计算机群l版本库设计的改良数据存储方式数据访问分支模型的完善发展趋势信息更完整,存储空间更小访问更便捷,存取速度更快更好的分支模型VCS的发展的发展lGoogle CodeGit,Mercurial(Hg),and SubversionVCS的发展的发展l分布式版本控制系统GitQ&AThank you!