我想了解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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top