1 / 41

使用 Subversion 版本控制

使用 Subversion 版本控制. 软件学院科协. 目标. 理解版本控制的重要性与优点,在开发中使用版本控制 TortoiseSVN 快速入门 Subversion 服务器简单配置和管理. 内容. 版本控制引入 Subversion 介绍与基本概念 使用 TortoiseSVN 客户端协同开发 Subversion 服务器安装、配置 Subversion 服务器管理. 为什么需要版本控制. 多人开发环境 记录所有人的更改 快速恢复到特定版本的状态 查看、合并其他人的修改 工程管理需要 与需求管理以及 BUG 管理集成 多产品多版本的发布管理需要

jadyn
Download Presentation

使用 Subversion 版本控制

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 使用Subversion版本控制 软件学院科协

  2. 目标 • 理解版本控制的重要性与优点,在开发中使用版本控制 • TortoiseSVN快速入门 • Subversion服务器简单配置和管理

  3. 内容 • 版本控制引入 • Subversion介绍与基本概念 • 使用TortoiseSVN客户端协同开发 • Subversion 服务器安装、配置 • Subversion服务器管理

  4. 为什么需要版本控制 • 多人开发环境 • 记录所有人的更改 • 快速恢复到特定版本的状态 • 查看、合并其他人的修改 • 工程管理需要 • 与需求管理以及BUG管理集成 • 多产品多版本的发布管理需要 • 软件维护的需要

  5. Database Bug & Request Management 软件开发过程的版本控制 Version Control & Release Management Configuration Builder (Build scripting tool)

  6. 版本控制系统做什么? • 跟踪、提交、恢复和比较源代码和文档的更改 • 支持、同步不同地区的并发开发

  7. RELEASE 2.0 1.7 1.6 1.5 1.5 1.4 1.4 1.4 RELEASE 1.5 1.3 1.3 RELEASE 1.0 1.2 1.2 1.1 1.1 典型的版本控制和发布 1.3 1.2 1.2 1.1 1.1 1.0 1.0 1.0 1.0 C.I. 1 C.I. 2 C.I. 3 C.I. X

  8. 版本控制系统 • 商业化 • IBM Rational ClearCase • Telologic Synergy • Microsoft Visual SourceSafe • Open Source / Free • CVS(Brian Berliner & Jeff Polk, 1992) • GNU Arch • Subversion (Karl Fogel, 2002) • SVK (clkao, 2004)

  9. Subversion • CVS的替代品,操作与CVS类似 • CVS的缺点 • 安全性 • 目录操作控制 • 二进制文件 • 效率 • 多样化的服务器配置方式: • Apache web server+ ssh • Svnserve+ ssh

  10. Subversion • 集中式版本控制系统(Centralized VCS) • Open Source • HTTP/WebDAV access • “Better CVS” • Graphical Client Tools • TortoiseSVN,RapidSVN

  11. Subversion特征 • 目录版本控制 • 原子提交 • 网络传输快 • 更佳的二进制文件处理 • 高效率的分支和标签 • 可修改性 • 管理、配置简单

  12. Subversion的架构

  13. Repository Resources • 所有被Subversion管理的目录、文件有唯一路径 • 支持的协议有http,https,svn,svns,file http://59.66.96.188/svn/kexie/proj/account/trunk/ protocol host repository directory

  14. Subversion基本概念 • repository 版本库 • revision number • check out • working copies • check in (submit) • branch • merge • conflict …

  15. Revision number • revision number 代表整个repository更改的版本号 • “HEAD” 表示最新的版本

  16. Revision number

  17. TortoiseSVN • Subversion Client • Windows Explorer Extension

  18. TortoiseSVN主要操作 • Import/Checkout/Update/Commit • Branch/Switch/Tag • Merge/View Diff/Conflict Resolve • Show Log/Repo-Browser/Revision Graph

  19. IMPORT • 将本地目录新增至现存的repository • Import,开发需要再次 check out • 确保其他开发者也能check out

  20. IMPORT before import A Central Repository Local Workspace(s) after in sync A A Central Repository Local Workspace(s)

  21. import    

  22. CHECK OUT • 从repository中取出文档,在本机建立工作副本(working copy) • 开始工作前的前置动作

  23. CHECK OUT before checkout A Central Repository Local Workspace(s) after in sync A A Central Repository Local Workspace(s)

  24. CHECK OUT    

  25. COMMIT • 提交操作使workspace与repository保持同步 • 本地端的修改包含: • 文件内容修改、文件目录删除 • 需要发布到repository时

  26. COMMIT before commit A A’ Central Repository Local Workspace(s) after in sync A’ A’ Central Repository Local Workspace(s)

  27. COMMIT • 最好能够一次提交概念性、功能性或任务性的修改 • 确保源代码编译通过

  28. COMMIT   

  29. UPDATE • 将repository上的版本整合到本地端的工作副本(workspace) • 将workspace 同步于repository • 可能会出现冲突,需要手动解决

  30. UPDATE before update A’ A Central Repository Local Workspace(s) after in sync A’ A’ Central Repository Local Workspace(s)

  31. UPDATE • 检查repository相对于本工作副本是否有修改 • 更新本地工作副本到最新版本

  32. BRANCH • 独立于主分支的“新项目” • 新项目开始于某一稳定版本的revision,通过revision copy得到

  33. 建立BRANCH的时机 • 开发可能会对主分支产生影响 • 从某一版本产生独立的“特殊”产品 • 解决BUG • 增加新功能

  34. BRANCH  

  35. TAG • 与BRANCH类似,给稳定的版本做记号 • 从TAG中取出的代码可以编译成独立的产品 • 一般与Release目录下产品一一对应

  36. SWITCH • 切换工作副本

  37. MERGE • 合并BRANCH的修改到主分支 • 合并主分支的最新版本到工作副本 • BUG修正后将BUG去除的代码合并到其他“特殊”BRANCH

  38. 开发人员开发流程 • 从项目负责人获取开发的提交权限 • 按分配的功能新建Branch,后续开发在此分支上 • Checkout/Modify/Commit,完成所有的待开发功能 • Merge to truck,Merge后需确保主分支上编译通过

  39. 项目负责人项目管理流程 • Import项目文档以及初始代码 • 创建开发人员帐户、权限,分配项目功能到各开发人员 • 开发人员完成功能Merge到主分支上后,给项目做标签Tag,发布新版本Release

  40. Subversion服务器的安装 • Windows平台 • 安装Apache服务器 • 安装Subversion,安装程序能自动识别已经安装Apache • 配置Apache模块 • 用户以及用户权限配置

  41. 资源 • Apache服务器下载 http://httpd.apache.org/download.cgi • Subversion下载http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 • TortoiseSVN http://voxel.dl.sourceforge.net/sourceforge/tortoisesvn/TortoiseSVN-1.2.6.4786-svn-1.2.3.msi • RapidSVN下载 http://www.rapidsvn.org/download/RapidSVN-0.9.0.exe

More Related