Subversion FSFS-存储库中如何存储修订?
-
02-10-2019 - |
题
我想了解Subversion如何将FSF中的修订存储在FSF中,以及如何为给定的修订号构建视图/Shapshot。
我从谷歌搜索中收集到的是,FSF是一个简单的目录结构,每个修订版的子目录如下:
..svn/rev/0/
..svn/rev/1/
..svn/rev/2/
大概只有每个修订目录中记录更改(Deltas)。因此,这是否意味着在修订n构建视图/快照时,必须将所有从0到n的三角洲旋转?
在这一资源上的任何链接都值得赞赏。
谢谢
解决方案
Subversion将每个修订版的所有增量存储在一个(平面)修订文件中。存储库中的每个文件/文件夹(称为“节点”)都有一个内部ID。
单个修订文件由此特定提交的所有压缩三角洲组成,但是,deltas并不反对先前的修订,而是使用称为的方案 “跳过三角洲” 避免为增长版本历史记录线性增长的搜索时间。
重要的是FSF使用 前锋三角洲 而不是使用bdb-backend的向后三角洲。因此,FSF的提交速度更快,但是结帐时较慢,伯克利DB的性能特征是相反的。
您可以在里面阅读更多 有关FSFS的SVN设计说明.
其他提示
这是指向FSFS结构参考的链接(包括文件格式描述): https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_fs/Structure
不隶属于 StackOverflow