SlideShare a Scribd company logo
Subversion 简明教程 www.zhlwish.com
S ub v ersio n 简述 简称 SVN 流行的开源版本控制系统 CollabNet 公司 2000 年创建用于替代 CVS Subversion 被贡献给了 Apache ,成为 Apache 的一个子项目
Subversion 安装 Ubuntu apt-get install subversion Windows Windows GUI 客户端: http://tortoisesvn.net Subversion for Windows ( 控制台程序 ) http://sourceforge.net/projects/win32svn/
Subversion 安装 设置环境变量 将 C:\Program Files\Subversion\bin 加入环境变量
对版本控制的需求 协作 :合作开发时能共享代码并及时集成 历史 :能追踪改变,能还原之前的版本 Subversion 并不是一个只能用于管理源代码的系统,它是 通用 的,可以管理任何类型的文件集(电影、账单)
版本控制的原理 Subversion 的版本库实质是一种文件服务器,核心功能是: 共享 文件 在共享文件的过程中,会记录每一次改变 文件 的改变(修改) 目录树 本身的改变(删除、忽略)
共享文件时存在的问题
方案一:锁定 - 修改 - 解锁 问题: “ 死锁”: Harry 锁定文件后忘记解锁 非线性开发: 如果 Harry 锁定一个文件修改其头部, Sally 需要修改其尾部,不得不等 死锁: Harry 编辑 A 文件,依赖 B 文件,但是 Sally 在修改 B 文件,依赖 A 文件
方案二:拷贝 - 修改 - 合并
方案二解释 冲突 Sally 和 Harry 的修改交迭了(修改了同一行代码) Subversion 并不能解决冲突,只能依赖人的智商 手动解决冲突后,将合并的版本再次提交到版本库 锁定 有时候是必须的 Subversion 支持锁定
Subversion 术语 版本库 URL http:// ei.hust.edu.cn : 9000 /svn/efile /trunk 协议   服务器地址   端口   路径   分支 Working Copy 电脑上的一个普通目录 每个文件夹下有个 .svn 文件夹(记录变更) 里面的文件在版本控制之下 不能使用系统命令删除与重命名 需要使用 Subversion 提供的命令将其从版本库中删除和重命名
Subversion 术语 Checkout 从代码仓库中下载源代码,并建立本地的 Working Copy Commit 对本地 Working Copy 修改后,提交到代码仓库 Update 远程代码仓库修改后,同步本地 Working Copy 到最新状态
Subversion 术语 Revision 版本库收到一个新的提交后,版本库进入一个新的状态,被称为一个 Revision ,用一个唯一的数字标识,初始为 0 ,每提交一次 +1 Merge 合并 Conflict 冲突 Repository 仓库
Subversion 的组成 svn 命令行客户端,用于 checkout 、 commit 、 update svnversion 查看 Working Copy 的版本 svnlook 查看远仓库的情况 svnadmin 创建、设置、修改版本仓库 svnserve 单独的服务器程序,可以作为 daemon 进程 svnsync …… ( 请查阅相关资料 )
基本命令 查看帮助 svn help [command] 创建一个版本库 svnadmin create /path/to/repository 将已有的代码结构导入版本库 svn import /file/path /path/to/repository –m ‘comment’
基本命令 Checkout 代码 svn checkout /path/to/repository 修改目录结构 svn add svn delete svn copy svn move svn mkdir 修改文件 神马?不会修改文件?
基本命令 看看修改了哪些 svn diff svn status 取消修改 svn revert 解决冲突 ( 标记为冲突已经被解决 ) svn resolved 提交修改 svn commit –m ‘comment’
基本命令 更新 Working Copy svn update 查看历史 svn log –r 5:19 svn log –r 5 svn log main.c svn diff –r 5:19 main.c 浏览版本库 svn cat svn list
基本命令 获得旧的版本 svn checkcout –r 5 svn update –r 9 忽略不需要版本控制的文件 svn propset  svn:ignore /path/to/file 涉及 SVN 高级用法:属性,请参阅相关文档 锁定 svn lock /path/to/file –m ‘comment’ svn unlock /path/to/file 遇到问题 svn cleanup
一些关键字 可以认为是宏: HEAD :最新版本 BASE : Working Copy 修改前的版本 推荐的版本库布局 /project name /trunk  主枝 /branches  开发分支 /tags  标记分支
高级知识 分支 svn copy /srcrepo /distrepo –m ‘comment’ svn checkout /distrepo 合并分支 ( 和文件的合并不同 ) svn merge 建立标记分支 svn copy /srcrepo /version_3_2_1 搭建一个 SVN 服务器并配置权限
进一步学习 Subversion 自由图书 Version Control with Subversion http://svnbook.red-bean.com 实践出真知 不用仅仅使用 SNV 管理你的代码,他可以管理任何东西
www.zhlwish.com Where there is a will there is a way.

More Related Content

PPT
Subversion备份服务器的创建
DOC
Centos下安装apache + subversion
PPT
香港六合彩
PDF
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
PPT
Bst svn专项培训
PDF
Cent os 安装 subversion
PPTX
Docker 101
PPT
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Subversion备份服务器的创建
Centos下安装apache + subversion
香港六合彩
Scrum gathering 2012 shanghai 精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Bst svn专项培训
Cent os 安装 subversion
Docker 101
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)

What's hot (17)

PPT
Osvn client 簡介
PPT
六合彩
PPTX
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
PPTX
1, shell intro
PPTX
5, system admin
ODP
Mecurial hg
PDF
Ruby on Rails 開發環境建置 for Ubuntu
PDF
Ruby on Rails 開發環境建置 for Mac
PDF
Deployment with Capistrano
PDF
Intro to svn
PDF
Docker
PPTX
Svn安裝與使用簡易教學
PPTX
Docker一期培训
PPTX
使用Rpm&yum进行基础软件管理
PPT
[精华回顾]讲座:How To Install Linux
PPT
PPT
Cfengine培训文档 刘天斯
Osvn client 簡介
六合彩
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
1, shell intro
5, system admin
Mecurial hg
Ruby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for Mac
Deployment with Capistrano
Intro to svn
Docker
Svn安裝與使用簡易教學
Docker一期培训
使用Rpm&yum进行基础软件管理
[精华回顾]讲座:How To Install Linux
Cfengine培训文档 刘天斯
Ad

Similar to Subversion简明教程 (20)

PDF
Cvs tutorial
PPT
miywh
PPT
六合彩,香港六合彩
PDF
自由軟體鑄造場_20111023_Subversion版本控制系統之操作_曾義峰(ant)
PPT
Subversion
DOC
【转】CVS使用手册
PPT
香港六合彩 » SlideShare
DOC
Ubuntu 下安装 svn 服务器
PPTX
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
ODP
GNU Build System
PPT
Sub Version Setting
PPTX
Git Essence Tutorial
PPT
Version control0221
PPT
1~60
PPT
面向美术和策划的SVN经验谈
PPT
Linux 系统应用与程序设计
PPTX
Maven初级培训
PPT
Development Environment
PPTX
Nae client(using Node.js to create shell cmd)
PPTX
Git前世今生
Cvs tutorial
miywh
六合彩,香港六合彩
自由軟體鑄造場_20111023_Subversion版本控制系統之操作_曾義峰(ant)
Subversion
【转】CVS使用手册
香港六合彩 » SlideShare
Ubuntu 下安装 svn 服务器
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
GNU Build System
Sub Version Setting
Git Essence Tutorial
Version control0221
1~60
面向美术和策划的SVN经验谈
Linux 系统应用与程序设计
Maven初级培训
Development Environment
Nae client(using Node.js to create shell cmd)
Git前世今生
Ad

Subversion简明教程

  • 2. S ub v ersio n 简述 简称 SVN 流行的开源版本控制系统 CollabNet 公司 2000 年创建用于替代 CVS Subversion 被贡献给了 Apache ,成为 Apache 的一个子项目
  • 3. Subversion 安装 Ubuntu apt-get install subversion Windows Windows GUI 客户端: http://tortoisesvn.net Subversion for Windows ( 控制台程序 ) http://sourceforge.net/projects/win32svn/
  • 4. Subversion 安装 设置环境变量 将 C:\Program Files\Subversion\bin 加入环境变量
  • 5. 对版本控制的需求 协作 :合作开发时能共享代码并及时集成 历史 :能追踪改变,能还原之前的版本 Subversion 并不是一个只能用于管理源代码的系统,它是 通用 的,可以管理任何类型的文件集(电影、账单)
  • 6. 版本控制的原理 Subversion 的版本库实质是一种文件服务器,核心功能是: 共享 文件 在共享文件的过程中,会记录每一次改变 文件 的改变(修改) 目录树 本身的改变(删除、忽略)
  • 8. 方案一:锁定 - 修改 - 解锁 问题: “ 死锁”: Harry 锁定文件后忘记解锁 非线性开发: 如果 Harry 锁定一个文件修改其头部, Sally 需要修改其尾部,不得不等 死锁: Harry 编辑 A 文件,依赖 B 文件,但是 Sally 在修改 B 文件,依赖 A 文件
  • 10. 方案二解释 冲突 Sally 和 Harry 的修改交迭了(修改了同一行代码) Subversion 并不能解决冲突,只能依赖人的智商 手动解决冲突后,将合并的版本再次提交到版本库 锁定 有时候是必须的 Subversion 支持锁定
  • 11. Subversion 术语 版本库 URL http:// ei.hust.edu.cn : 9000 /svn/efile /trunk 协议 服务器地址 端口 路径 分支 Working Copy 电脑上的一个普通目录 每个文件夹下有个 .svn 文件夹(记录变更) 里面的文件在版本控制之下 不能使用系统命令删除与重命名 需要使用 Subversion 提供的命令将其从版本库中删除和重命名
  • 12. Subversion 术语 Checkout 从代码仓库中下载源代码,并建立本地的 Working Copy Commit 对本地 Working Copy 修改后,提交到代码仓库 Update 远程代码仓库修改后,同步本地 Working Copy 到最新状态
  • 13. Subversion 术语 Revision 版本库收到一个新的提交后,版本库进入一个新的状态,被称为一个 Revision ,用一个唯一的数字标识,初始为 0 ,每提交一次 +1 Merge 合并 Conflict 冲突 Repository 仓库
  • 14. Subversion 的组成 svn 命令行客户端,用于 checkout 、 commit 、 update svnversion 查看 Working Copy 的版本 svnlook 查看远仓库的情况 svnadmin 创建、设置、修改版本仓库 svnserve 单独的服务器程序,可以作为 daemon 进程 svnsync …… ( 请查阅相关资料 )
  • 15. 基本命令 查看帮助 svn help [command] 创建一个版本库 svnadmin create /path/to/repository 将已有的代码结构导入版本库 svn import /file/path /path/to/repository –m ‘comment’
  • 16. 基本命令 Checkout 代码 svn checkout /path/to/repository 修改目录结构 svn add svn delete svn copy svn move svn mkdir 修改文件 神马?不会修改文件?
  • 17. 基本命令 看看修改了哪些 svn diff svn status 取消修改 svn revert 解决冲突 ( 标记为冲突已经被解决 ) svn resolved 提交修改 svn commit –m ‘comment’
  • 18. 基本命令 更新 Working Copy svn update 查看历史 svn log –r 5:19 svn log –r 5 svn log main.c svn diff –r 5:19 main.c 浏览版本库 svn cat svn list
  • 19. 基本命令 获得旧的版本 svn checkcout –r 5 svn update –r 9 忽略不需要版本控制的文件 svn propset svn:ignore /path/to/file 涉及 SVN 高级用法:属性,请参阅相关文档 锁定 svn lock /path/to/file –m ‘comment’ svn unlock /path/to/file 遇到问题 svn cleanup
  • 20. 一些关键字 可以认为是宏: HEAD :最新版本 BASE : Working Copy 修改前的版本 推荐的版本库布局 /project name /trunk 主枝 /branches 开发分支 /tags 标记分支
  • 21. 高级知识 分支 svn copy /srcrepo /distrepo –m ‘comment’ svn checkout /distrepo 合并分支 ( 和文件的合并不同 ) svn merge 建立标记分支 svn copy /srcrepo /version_3_2_1 搭建一个 SVN 服务器并配置权限
  • 22. 进一步学习 Subversion 自由图书 Version Control with Subversion http://svnbook.red-bean.com 实践出真知 不用仅仅使用 SNV 管理你的代码,他可以管理任何东西
  • 23. www.zhlwish.com Where there is a will there is a way.