4

我想了解 subversion 如何在 FSFS 中存储修订,以及如何为给定的修订号构建视图/快照。

我从谷歌搜索得到的是 FSFS 是一个简单的目录结构,每个版本都有子目录,例如:

..svn/rev/0/
..svn/rev/1/
..svn/rev/2/

大概只有更改(增量)记录在每个修订目录下。那么这是否意味着在为修订版 N 构建视图/快照时,必须循环从 0 到 N 的所有增量?

非常感谢任何指向此资源的链接。

谢谢

4

2 回答 2

6

Subversion 将每个修订的所有增量存储在一个(平面)修订文件中。存储库中的每个文件/文件夹(称为“节点”)都有一个内部 ID。

单个修订文件包含此特定提交的所有压缩增量,但是增量不针对先前的修订,而是使用称为“跳过增量”的方案避免线性增长的搜索时间来增长版本历史。

重要的是 FSFS 使用前向增量而不是使用 BDB 后端的后向增量。所以 FSFS 在提交时更快,但在检出时更慢,Berkeley DB 的性能特点是相反的。

您可以在SVN 设计说明中阅读更多关于 FSFS 的内容。

于 2010-09-12T22:24:21.250 回答
3

这是 FSFS 结构参考的链接(包括文件格式说明):https ://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_fs/structure

于 2012-01-16T16:34:52.923 回答