《使用Subversion版本控制》由会员分享,可在线阅读,更多相关《使用Subversion版本控制(41页珍藏版)》请在金锄头文库上搜索。
1、使用Subversion版本控制软件学院科协目标l理解版本控制的重要性与优点,在开发中使用版本控制lTortoiseSVN快速入门lSubversion服务器简单配置和管理内容l版本控制引入lSubversion介绍与基本概念l使用TortoiseSVN客户端协同开发lSubversion 服务器安装、配置lSubversion服务器管理为什么需要版本控制l多人开发环境l记录所有人的更改l快速恢复到特定版本的状态l查看、合并其他人的修改l工程管理需要l与需求管理以及BUG管理集成l多产品多版本的发布管理需要l软件维护的需要软件开发过程的版本控制 Configuration Builder(Bu
2、ild scripting tool)Bug & Request ManagementVersion Control & Release ManagementDatabase版本控制系统做什么?l跟踪、提交、恢复和比较源代码和文档的更改l支持、同步不同地区的并发开发典型的版本控制和发布RELEASE 1.0RELEASE 1.5RELEASE 2.0版本控制系统l商业化lIBM Rational ClearCaselTelologic Synergy lMicrosoft Visual SourceSafelOpen Source / FreelCVS (Brian Berliner & Je
3、ff Polk, 1992)lGNU ArchlSubversion (Karl Fogel, 2002)lSVK (clkao, 2004)SubversionlCVS的替代品,操作与CVS类似lCVS的缺点l安全性l目录操作控制l二进制文件l效率l多样化的服务器配置方式:lApache web server sshlSvnserve sshSubversionl集中式版本控制系统 (Centralized VCS)lOpen SourcelHTTP/WebDAV accessl“Better CVS”lGraphical Client ToolslTortoiseSVN,RapidSVNS
4、ubversion特征l目录版本控制l原子提交 l网络传输快 l更佳的二进制文件处理 l高效率的分支和标签l可修改性l管理、配置简单Subversion的架构 Repository Resourcesl所有被Subversion管理的目录、文件有唯一路径l支持的协议有http,https,svn,svns,filehttp:/59.66.96.188/svn/kexie/proj/account/trunk/protocolhostrepositorydirectorySubversion基本概念lrepository 版本库 lrevision number lcheck out lwork
5、ing copieslcheck in (submit) lbranchlmerge lconflict Revision numberlrevision number 代表整个repository更改的版本号l“HEAD” 表示最新的版本Revision numberTortoiseSVNlSubversion ClientlWindows Explorer ExtensionTortoiseSVN主要操作lImport/Checkout/Update/CommitlBranch/Switch/TaglMerge/View Diff/Conflict ResolvelShow Log/Rep
6、o-Browser/Revision GraphIMPORTl将本地目录新增至现存的repositorylImport,开发需要再次 check outl确保其他开发者也能check outCentral RepositoryLocal Workspace(s)AimportACentral RepositoryLocal Workspace(s)Abeforeafterin syncIMPORTimport CHECK OUTl从repository中取出文档,在本机建立工作副本(working copy)l开始工作前的前置动作CHECK OUTCentral RepositoryLocal
7、 Workspace(s)checkoutACentral RepositoryLocal Workspace(s)Abeforeafterin syncA CHECK OUTCOMMITl提交操作使workspace与repository保持同步l本地端的修改包含:l文件内容修改、文件目录删除l需要发布到repository时COMMITCentral RepositoryLocal Workspace(s)commitACentral RepositoryLocal Workspace(s)Abeforeafterin syncAACOMMITl最好能够一次提交概念性、功能性或任务性的修改
8、l确保源代码编译通过COMMIT UPDATEl将repository上的版本整合到本地端的工作副本(workspace)l将workspace 同步于 repositoryl可能会出现冲突,需要手动解决UPDATECentral RepositoryLocal Workspace(s)updateACentral RepositoryLocal Workspace(s)Abeforeafterin syncAAUPDATEl检查repository相对于本工作副本是否有修改l更新本地工作副本到最新版本BRANCHl独立于主分支的“新项目”l新项目开始于某一稳定版本的revision,通过re
9、vision copy得到建立BRANCH的时机l开发可能会对主分支产生影响l从某一版本产生独立的“特殊”产品l解决BUGl增加新功能BRANCH TAGl与BRANCH类似,给稳定的版本做记号l从TAG中取出的代码可以编译成独立的产品l一般与Release目录下产品一一对应SWITCHl切换工作副本MERGEl合并BRANCH的修改到主分支l合并主分支的最新版本到工作副本lBUG修正后将BUG去除的代码合并到其他“特殊”BRANCH开发人员开发流程l从项目负责人获取开发的提交权限l按分配的功能新建Branch,后续开发在此分支上lCheckout/Modify/Commit,完成所有的待开发
10、功能lMerge to truck,Merge后需确保主分支上编译通过项目负责人项目管理流程lImport项目文档以及初始代码l创建开发人员帐户、权限,分配项目功能到各开发人员l开发人员完成功能Merge到主分支上后,给项目做标签Tag,发布新版本ReleaseSubversion服务器的安装lWindows平台l安装Apache服务器l安装Subversion,安装程序能自动识别已经安装Apachel配置Apache模块l用户以及用户权限配置资源lApache服务器下载 http:/httpd.apache.org/download.cgi lSubversion下载http:/subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 lTortoiseSVNhttp:/