废弃号一路前行

vcs是什么软件(VCS技术演进从SCCS到Git)

当今IT界,VCS版本控制系统的的使用已经成了一种日常不可或缺部分。不光是程序员、IT界甚至在其他领域也是逐渐了有了共识。通过Github写书也不再是天方夜谭或者技术段子,而是实实在在天天发生的事情。本文,我们来一起回顾下历史上主要版本控制系统(VCS)的发展过程,涉及了内容有:SCSS、RCS、CVS、SVN,Git和Mercurial。

回顾VCS的发展历程,总体上可以划分为三个阶段。

第一代VCS,包括SCSS和RCS。立足于对单个文件变化的跟踪,检出的文件一次只能由一个用户在本地进行编辑,用户通过自己的帐户登录到同一共享Unix主机方式实现。

第二代VCS,包括CVS和SVN。通过引入网络,从而形成了包含正式意义上的项目版本的集中式版本存储库。相比第一代VSC,有了实质性的发展,可以供多个用户同时检出并使用代码,但是他们都需要重新提交到同一中央存储库。存在的问题是严重依赖于中央存储库,对网络和实时性同步要求很大。

第三代VSC,包括Git和Mercurial。V到现在发展成为了分布式VCS。在分布式VCS中,创建存储库的所有副本都是相同的,无需一个集中的中央存储库。无需通过网络实时同步内容,只需本地创建提交,分支和合并打开了路径,在合适时候再推送到远端库。

VCS重要软件发展历史时间表:

和CVS一样,SVN也使用集中式存储库模型。远程用户必须依赖网络来实现连接才能将其更改提交到中央存储库。

Subversion引入了原子提交的功能,确保提交将完全成功,或者在发生问题时被完全放弃。在CVS中,如果提交操作中途失败(例如,由于网络中断),则存储库可能损坏和不一致的状态。

Subversion中的提交或修订可以包含多个文件和目录。这样可以允许用户以项目为单位的跟踪相关更改集,而无需分别跟踪每个文件的更改。

Subversion用于跟踪文件的存储模型称为FSFS(File System atop the File System),使用与运行的操作系统文件系统相匹配的文件和目录结构来创建其数据库结构。Subversion文件系统的独特之处在于,它不仅可以跟踪其包含的文件和目录,还可以跟踪这些文件和目录的不同版本,并且它们会随着时间变化。它是一个具有附加时间维度的文件系统。

Subversion以文件夹为基本管理单位。可以在Subversion中提交空文件夹,而在其它(甚至是Git)VCS中,无法管理空文件夹。

创建Subversion存储库后,将创建一个空的文件和文件夹数据库作为其一部分。将创建一个名为db/revs的目录,其中存储了已检入(已提交)文件的所有修订跟踪信息。每次提交(可以包括对多个文件的更改)都存储在revs目录中的新文件中,并以从1开始的顺序数字标识符命名。当首次提交文件时,将存储其全部内容。为了节省空间,同一文件的在次提交时候将仅存储变化部分,也称为diffs或deltas。

赞(0)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xiaokang360@qq.com举报,一经查实,本站将立刻删除。
文章名称:《vcs是什么软件(VCS技术演进从SCCS到Git)》
分享到: 更多 (0)

废弃号一路前行

联系我们联系我们