版本控制系统
简介
Version Control System,简称VCS。版本控制系统是一种记录一个或多个文件的内容变化,
以便未来查看特定版本的内容变化情况的系统。
简单来讲,就是用来保存文件内容变更记录的系统,可将文件退回到过去某个时间点的状态。
作用
1.查阅文件修改记录;
2.对比不同版本中文件变化细节;
3.将文件返回到之前某个状态。
分类
1.第一代版本控制系统—本地版本控制系统
1.定义:版本库存放在本地磁盘上的控制系统,称为本地版本控制系统。
2.缺点:无法协同开发,一次只能有一个人处理文件。
3.种类: RCS、SCCS(1972年发布)和 DSEE(被认为是 Atria ClearCase 的前身)。
RCS
修订控制系统(Revision Control System,RCS) 是第一代的版本控制系统,目前由 GNU 项目维护。
Purdue University的RCS 官网
GNU官网
GNU RCS项目维护地址
2.第二代版本控制系统—集中化版本控制系统
集中化版本控制系统(Centralized Version Control Systems,CVCS)
1.定义:版本库存集中放在中央服务器上,所有参与人员连接到该服务器上,实现协同开发。
2.注意:用户必须在允许提交之前将当前修订合并到他们的工作中。
3.缺点:本地无法进行版本管理,必须连接到中央服务器才能进行版本控制,若中央服务器瘫痪,则无法工作
4.种类:主要有 CVS、SourceSafe、Subversion、Team Foundation Server、SVK、SVN(代表应用)。
CVS
并发版本系统(Concurrent Versions System,CVS)是最初的第二代版本控制系统。
VSS
VSS ( Visual Source Safe),是美国微软公司出品的版本控制系统。兼容 Check out-Modify-Check in(独占工作模式)与Copy-Modify-Merge(并行工作模式),也属于集中式版本控制系统。2008 年,微软发布了Team Foundation Server的项目生命期管理工具,替代 VSS.
Team Foundation Server
- Team Foundation Server:本地版本,用户安装使用;
- Team Foundation Service:云端版本,使用微软账户登录。
Azure DevOps Server
2019 年,微软发布了全新的 Azure DevOps Server。其版本控制系统是基于 Git 的分布式版本控制系统。
- Azure DevOps Server:本地版本,用户安装使用!是 Team Foundation Server 的升级版本。
- Azure DevOps Service:云端版本,使用微软账户登录!是 Team Foundation Service 的升级版本。
SVN
SVN(Subversion 的缩写)是一个开放源代码的版本控制系统,采用了分支管理系统。
3.第三代版本控制系统—分布式式版本控制系统
分布式式版本控制系统(Distributed Version Control Systems,DVCS)
每个人的电脑都是一个完整的版本库,在本地就可以进行版本管理,无需联网,但一般都会通过远程仓来交换版本的修改,相互间推送版本的修改。
1.注意: ①分布式式版本控制系统也可以有个服务器端的仓库,用来同步各开发者的私有仓库;
②每个人的电脑都是一个完整的版本库,即使服务器端崩溃,我们仍然可以使用 Git(仅在本地仓库管理我们的代码),
在网络具备时,再和服务器进行同步即可。
2.种类:主要有 Bazaar、Git、Mercurial、BitKeeper、Monotone
Git
推荐阅读Git
总结
代 | 网络 | 操作 | 种类 |
---|---|---|---|
第一代 | 无 | 仅一个文件 | RCS、SCCS |
第二代 | 集中式 | 多文件 | CVS、 SourceSafe、 Subversion、 Team Foundation Server、SVN |
第三代 | 分布式 | 允许合并和提交分开 | Bazaar、Git、Mercurial、BitKeeper、Monotone |