版本控制系统

  • 简介
  • 作用
  • 分类
  • 1.第一代版本控制系统---本地版本控制系统
  • RCS
  • 2.第二代版本控制系统---集中化版本控制系统
  • CVS
  • VSS
  • Team Foundation Server
  • Azure DevOps Server
  • SVN
  • 3.第三代版本控制系统---分布式式版本控制系统
  • Git
  • 总结


简介

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)是最初的第二代版本控制系统。

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