《使用Subversion版本控制.ppt》由会员分享,可在线阅读,更多相关《使用Subversion版本控制.ppt(41页珍藏版)》请在三一办公上搜索。
1、使用Subversion版本控制,软件学院科协,目标,理解版本控制的重要性与优点,在开发中使用版本控制TortoiseSVN快速入门Subversion服务器简单配置和管理,内容,版本控制引入Subversion介绍与基本概念使用TortoiseSVN客户端协同开发Subversion 服务器安装、配置Subversion服务器管理,为什么需要版本控制,多人开发环境记录所有人的更改快速恢复到特定版本的状态查看、合并其他人的修改工程管理需要与需求管理以及BUG管理集成多产品多版本的发布管理需要软件维护的需要,软件开发过程的版本控制,Configuration Builder(Build scri
2、pting tool),Bug&Request Management,Version Control&Release Management,Database,版本控制系统做什么?,跟踪、提交、恢复和比较源代码和文档的更改支持、同步不同地区的并发开发,典型的版本控制和发布,C.I.1,1.0,1.1,1.2,C.I.2,1.0,C.I.3,1.0,1.1,1.2,C.I.X,1.0,1.3,版本控制系统,商业化IBM Rational ClearCaseTelologic Synergy Microsoft Visual SourceSafeOpen Source/FreeCVS(Brian B
3、erliner&Jeff Polk,1992)GNU ArchSubversion(Karl Fogel,2002)SVK(clkao,2004),Subversion,CVS的替代品,操作与CVS类似CVS的缺点安全性目录操作控制二进制文件效率多样化的服务器配置方式:Apache web server sshSvnserve ssh,Subversion,集中式版本控制系统(Centralized VCS)Open SourceHTTP/WebDAV access“Better CVS”Graphical Client ToolsTortoiseSVN,RapidSVN,Subversion
4、特征,目录版本控制原子提交 网络传输快 更佳的二进制文件处理 高效率的分支和标签可修改性管理、配置简单,Subversion的架构,Repository Resources,所有被Subversion管理的目录、文件有唯一路径支持的协议有http,https,svn,svns,filehttp:/svn/kexie/proj/account/trunk/,protocol,host,repository,directory,Subversion基本概念,repository 版本库 revision number check out working copiescheck in(submit)
5、branchmerge conflict,Revision number,revision number 代表整个repository更改的版本号“HEAD”表示最新的版本,Revision number,TortoiseSVN,Subversion ClientWindows Explorer Extension,TortoiseSVN主要操作,Import/Checkout/Update/CommitBranch/Switch/TagMerge/View Diff/Conflict ResolveShow Log/Repo-Browser/Revision Graph,IMPORT,将本地
6、目录新增至现存的repositoryImport,开发需要再次 check out确保其他开发者也能check out,Central Repository,Local Workspace(s),A,import,A,Central Repository,Local Workspace(s),A,before,after,in sync,IMPORT,import,CHECK OUT,从repository中取出文档,在本机建立工作副本(working copy)开始工作前的前置动作,CHECK OUT,Central Repository,Local Workspace(s),checkou
7、t,A,Central Repository,Local Workspace(s),A,before,after,in sync,A,CHECK OUT,COMMIT,提交操作使workspace与repository保持同步本地端的修改包含:文件内容修改、文件目录删除需要发布到repository时,COMMIT,Central Repository,Local Workspace(s),commit,A,Central Repository,Local Workspace(s),A,before,after,in sync,A,A,COMMIT,最好能够一次提交概念性、功能性或任务性的修改
8、确保源代码编译通过,COMMIT,UPDATE,将repository上的版本整合到本地端的工作副本(workspace)将workspace 同步于 repository可能会出现冲突,需要手动解决,UPDATE,Central Repository,Local Workspace(s),update,A,Central Repository,Local Workspace(s),A,before,after,in sync,A,A,UPDATE,检查repository相对于本工作副本是否有修改更新本地工作副本到最新版本,BRANCH,独立于主分支的“新项目”新项目开始于某一稳定版本的re
9、vision,通过revision copy得到,建立BRANCH的时机,开发可能会对主分支产生影响从某一版本产生独立的“特殊”产品解决BUG增加新功能,BRANCH,TAG,与BRANCH类似,给稳定的版本做记号从TAG中取出的代码可以编译成独立的产品一般与Release目录下产品一一对应,SWITCH,切换工作副本,MERGE,合并BRANCH的修改到主分支合并主分支的最新版本到工作副本BUG修正后将BUG去除的代码合并到其他“特殊”BRANCH,开发人员开发流程,从项目负责人获取开发的提交权限按分配的功能新建Branch,后续开发在此分支上Checkout/Modify/Commit,完成所有的待开发功能Merge to truck,Merge后需确保主分支上编译通过,项目负责人项目管理流程,Import项目文档以及初始代码创建开发人员帐户、权限,分配项目功能到各开发人员开发人员完成功能Merge到主分支上后,给项目做标签Tag,发布新版本Release,Subversion服务器的安装,Windows平台安装Apache服务器安装Subversion,安装程序能自动识别已经安装Apache配置Apache模块用户以及用户权限配置,资源,Apache服务器下载 http:/Subversion下载=91 TortoiseSVNRapidSVN下载,