版本控制系统技术演进史,从SCCS到Git(14)

技术实现

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

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

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

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

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

推荐阅读