Subversion FSFS - 如何将修订存储在存储库中?

Ric*_*d H 4 svn berkeley-db repository fsfs

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

我从Googling收集到的是FSFS是一个简单的目录结构,每个版本的子目录如下:

..svn/rev/0/
..svn/rev/1/
..svn/rev/2/
Run Code Online (Sandbox Code Playgroud)

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

任何关于资源的链接都非常赞赏.

谢谢

Pet*_*ker 5

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

单个修订文件由此特定提交的所有压缩增量组成,但增量不会与先前版本相反,但使用称为"跳过增量"的方案,以避免线性增长搜索时间以增加版本历史记录.

重要的是,FSFS使用前向增量而不是使用BDB后端的后向增量.因此FSFS在提交时速度更快,但在结账时速度更慢,Berkeley DB的性能特征则相反.

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