软件版本控制系统介绍 共35页
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
另存为……
概念
软件版本控制系统:Version Control System
– 简称:VCS
功能?
– 版本记录和恢复 – 共享数据 – 追踪修改信息和责任人
核心概念:版本库(Repository) 鼻祖:SCCS(1972年)
概念
分类
Local Only:SCCS (1972年) Centralized (Client – Server):SVN (2000年) Distributed:Git (2019年)
计算机A(工作目录) 服务器/计算机C
源文件
版本库 Pull/Push
Pull/Push 计算机B(工作目录)
Pull/Push
源文件
版本库
版本库
浅谈Subversion (SVN)
SVN,是一个开放源代码的版本控制系统,相 对于的RCS、CVS,采用了分支管理系统, 它的设计目标就是取代CVS。
响应速度快,可离线工作,减轻服务器负担。 可在本地分支,进行开发,并且推送到本地版本库,可提高开
发人员积极性。
– 版百度文库信息完整,可追踪分支历史,利于分支合并。
缺点:
– 全球版本号(20位哈希值),非递增序列,需查询提交链获 知父子版本信息。
– 分布式版本库,版本信息易被公开。
VCS的发展
svn+ssh:// 与svn://相似,但通过SSH封装。
浅谈Subversion (SVN)
经典模型
User A (Rev X)
User B (Rev Y)
Repository
User C (Rev Z)
Client (Working Copy) Server (Repository)
浅谈Subversion (SVN)
浅谈Git
Git简单模型
浅谈Git
Git的工作模型——集中式
浅谈Git
Git的工作模型——管理员
浅谈Git
Git的工作模型——权限分发(金字塔式)
浅谈Git
Git的存储模型——快照存储
浅谈Git
Git的分支追踪图
浅谈Git
优点:
– 工作模型多样化,可适用各种工作流。 – 分布式版本库
软件版本控制系统介绍
mybluesoul1989gmail 2019-06-29
要点
概念 浅谈Subversion (SVN) & Git 版本控制系统的发展
概念
一些简单的例子:
– XXX 预览版/测试版/正式版/Beta/RC/Release – XXX 1.0/1.1/2.0 – XXX Edition 0.71…
SVN存储模型——增量(差异性)存储
文件A Rev 1
文件A Rev 2
差异性信息 (Δ=|r2-r1|)
版本库
浅谈Subversion (SVN)
文件共享模型——“锁定-修改-解锁”
浅谈Subversion (SVN)
文件共享模型——“拷贝-修改-合并”
浅谈Subversion (SVN)
浅谈Subversion (SVN)
SVN的架构
浅谈Subversion (SVN)
版本库访问URL
模式
访问方法
file:///
直接版本库访问(本地磁盘)
通过配置Subversion的Apache服务器的WebDAV协议
https://
与相似,但是包括SSL加密。
svn://
通过svnserve服务自定义的协议
浅谈Git
Git:The stupid content tracker,傻瓜内容跟 踪器。
早期Linux的开发人员是使用BitKeeper来管理 版本控制和维护程式码。2019年的时候,开 发BitKeeper的公司同Linux内核开源社区结束 合作关系,并收回使用BitKeeper的权利。 Linus Torvalds(Linux之父)开始着手开发 Git来替代BitKeeper。
分支示意图
浅谈Subversion (SVN)
优点:
– 版本号递增,逻辑明确,符合一般人思维习惯。 – 版本库集中式管理,版本信息不易泄露。 – 唯一的版本库,代码一致性非常高。 – 适合开发人数不多的项目开发。
缺点:
– 服务器压力太大,需要频繁响应访问请求。 – 几乎无法离线工作。 – 不适合大型开源项目开发(开发人员众多且分散)。 – 集中式管理,容易限制开发者积极性及分支应用。
– 2000年,由CVS的开发者Karl Fogel等开发人员开 发。
– 2009年11月,Subversion被Apache Incubator项目 所接收。
– 2019年1月,正式成为Apache软件基金会的一个顶 级项目。
浅谈Subversion (SVN)
SVN?
是它?
SVN≠TortoiseSVN(好比Linux内核≠发行版)
概念
Local Only版本控制系统(Local VCS)模型
本地计算机
工作目录
版本库 Rev 1 …… Rev n
概念
集中式版本控制系统(Centralized VCS)模 型
计算机A
服务器
工作目录 计算机B 工作目录
版本库 Rev 1 …… Rev n
概念
分布式版本控制系统(Distributed VCS)模型
VCS的发展
Local only CDliisetnrti– butsedrver
Free/open-source
Free/open-source Free/open-source Proprietary Proprietary
Proprietary
CGVNSU (a1r9c9h0)(2001) CDVaSrNcTs (12909082) SDuCbVvSer(s2i0o0n2)(2000) SoVfKtw(a2r0e03C)hange Manager (1970s) CMloenaortCoansee((21090932)) CSMCoVCdCSev(i1l9l97e42)(2005) VRGiCsStua(l1290S80o25u)rceSafe (1994) PMeVrCfScour(c1ie9a8l(51)(929050)5) SBtaazraTaeram(2(010959)5) MFKoSssIinlte(g2r0i0t7y) (2001) AVcecruaRceivtySC(M20(1210)02) SToeuarmcWeaArneyw(h1e9r9e0s(?2)003) SCoudreceCGoe-aorp V(a1u9l9t7)(2003) TBeiatmKeFeopuenrda(t1i9o9n8)Server (2005) RPaltaisotniaclSTCeMam(2C0o0n6c)ert (2008)
特点
– 集中式版本控制系统 User A
中央版本库
(Rev X)
– 全局版本号
针对目录树进行版本号记U录ser B
– 分支/合并
(Rev Y)
廉价的拷贝
User C (Rev Z)
Repository
Client (Working Copy) Server (Repository)
浅谈Subversion (SVN)
概念
软件版本控制系统:Version Control System
– 简称:VCS
功能?
– 版本记录和恢复 – 共享数据 – 追踪修改信息和责任人
核心概念:版本库(Repository) 鼻祖:SCCS(1972年)
概念
分类
Local Only:SCCS (1972年) Centralized (Client – Server):SVN (2000年) Distributed:Git (2019年)
计算机A(工作目录) 服务器/计算机C
源文件
版本库 Pull/Push
Pull/Push 计算机B(工作目录)
Pull/Push
源文件
版本库
版本库
浅谈Subversion (SVN)
SVN,是一个开放源代码的版本控制系统,相 对于的RCS、CVS,采用了分支管理系统, 它的设计目标就是取代CVS。
响应速度快,可离线工作,减轻服务器负担。 可在本地分支,进行开发,并且推送到本地版本库,可提高开
发人员积极性。
– 版百度文库信息完整,可追踪分支历史,利于分支合并。
缺点:
– 全球版本号(20位哈希值),非递增序列,需查询提交链获 知父子版本信息。
– 分布式版本库,版本信息易被公开。
VCS的发展
svn+ssh:// 与svn://相似,但通过SSH封装。
浅谈Subversion (SVN)
经典模型
User A (Rev X)
User B (Rev Y)
Repository
User C (Rev Z)
Client (Working Copy) Server (Repository)
浅谈Subversion (SVN)
浅谈Git
Git简单模型
浅谈Git
Git的工作模型——集中式
浅谈Git
Git的工作模型——管理员
浅谈Git
Git的工作模型——权限分发(金字塔式)
浅谈Git
Git的存储模型——快照存储
浅谈Git
Git的分支追踪图
浅谈Git
优点:
– 工作模型多样化,可适用各种工作流。 – 分布式版本库
软件版本控制系统介绍
mybluesoul1989gmail 2019-06-29
要点
概念 浅谈Subversion (SVN) & Git 版本控制系统的发展
概念
一些简单的例子:
– XXX 预览版/测试版/正式版/Beta/RC/Release – XXX 1.0/1.1/2.0 – XXX Edition 0.71…
SVN存储模型——增量(差异性)存储
文件A Rev 1
文件A Rev 2
差异性信息 (Δ=|r2-r1|)
版本库
浅谈Subversion (SVN)
文件共享模型——“锁定-修改-解锁”
浅谈Subversion (SVN)
文件共享模型——“拷贝-修改-合并”
浅谈Subversion (SVN)
浅谈Subversion (SVN)
SVN的架构
浅谈Subversion (SVN)
版本库访问URL
模式
访问方法
file:///
直接版本库访问(本地磁盘)
通过配置Subversion的Apache服务器的WebDAV协议
https://
与相似,但是包括SSL加密。
svn://
通过svnserve服务自定义的协议
浅谈Git
Git:The stupid content tracker,傻瓜内容跟 踪器。
早期Linux的开发人员是使用BitKeeper来管理 版本控制和维护程式码。2019年的时候,开 发BitKeeper的公司同Linux内核开源社区结束 合作关系,并收回使用BitKeeper的权利。 Linus Torvalds(Linux之父)开始着手开发 Git来替代BitKeeper。
分支示意图
浅谈Subversion (SVN)
优点:
– 版本号递增,逻辑明确,符合一般人思维习惯。 – 版本库集中式管理,版本信息不易泄露。 – 唯一的版本库,代码一致性非常高。 – 适合开发人数不多的项目开发。
缺点:
– 服务器压力太大,需要频繁响应访问请求。 – 几乎无法离线工作。 – 不适合大型开源项目开发(开发人员众多且分散)。 – 集中式管理,容易限制开发者积极性及分支应用。
– 2000年,由CVS的开发者Karl Fogel等开发人员开 发。
– 2009年11月,Subversion被Apache Incubator项目 所接收。
– 2019年1月,正式成为Apache软件基金会的一个顶 级项目。
浅谈Subversion (SVN)
SVN?
是它?
SVN≠TortoiseSVN(好比Linux内核≠发行版)
概念
Local Only版本控制系统(Local VCS)模型
本地计算机
工作目录
版本库 Rev 1 …… Rev n
概念
集中式版本控制系统(Centralized VCS)模 型
计算机A
服务器
工作目录 计算机B 工作目录
版本库 Rev 1 …… Rev n
概念
分布式版本控制系统(Distributed VCS)模型
VCS的发展
Local only CDliisetnrti– butsedrver
Free/open-source
Free/open-source Free/open-source Proprietary Proprietary
Proprietary
CGVNSU (a1r9c9h0)(2001) CDVaSrNcTs (12909082) SDuCbVvSer(s2i0o0n2)(2000) SoVfKtw(a2r0e03C)hange Manager (1970s) CMloenaortCoansee((21090932)) CSMCoVCdCSev(i1l9l97e42)(2005) VRGiCsStua(l1290S80o25u)rceSafe (1994) PMeVrCfScour(c1ie9a8l(51)(929050)5) SBtaazraTaeram(2(010959)5) MFKoSssIinlte(g2r0i0t7y) (2001) AVcecruaRceivtySC(M20(1210)02) SToeuarmcWeaArneyw(h1e9r9e0s(?2)003) SCoudreceCGoe-aorp V(a1u9l9t7)(2003) TBeiatmKeFeopuenrda(t1i9o9n8)Server (2005) RPaltaisotniaclSTCeMam(2C0o0n6c)ert (2008)
特点
– 集中式版本控制系统 User A
中央版本库
(Rev X)
– 全局版本号
针对目录树进行版本号记U录ser B
– 分支/合并
(Rev Y)
廉价的拷贝
User C (Rev Z)
Repository
Client (Working Copy) Server (Repository)
浅谈Subversion (SVN)