Subversion使用什么数据库?

Alb*_*niz 7 database svn repository

Subversion使用什么数据库?

是否有默认值或者您可以将其设置为使用任何数据库吗?

Ben*_*ser 7

服务器

Subversion支持当前的两个后端用于存储存储库.您可以选择使用--fs-typesvnadmin create命令的选项.

  1. FSFS(这是一个默认值),它是一个存储有某些人类可读文件的自定义格式(主要的例外是delta数据是二进制的).FSFS还使用SQLite数据库来跟踪文件内容的哈希值,因此如果需要再次存储相同的内容(重复数据删除),则可以重用现有的内容存储.如果你正在考虑一个典型的关系数据库,那么FSFS中的SQLite用法是最接近的,并且SQLite数据库实际上并不存储任何数据,并且可以随时删除而不会丢失任何数据(因此未来可能需要修改)更多的空间).FSFS已经完成了大量的工作,以便在各种情况下对其进行优化,并且已经发展了许多旋钮,即使在异常情况下也能够使其达到最佳状态.

  2. BDB(这是原始的后端),它使用Berkeley DB来存储存储库.从1.8.0开始,此后端已弃用但仍受支持.它在很长一段时间内没有做很多工作,FSFS几乎在所有情况下都会胜过它.

谷歌至少还有一个其他后端实现,它从未使用谷歌专有的BigTable存储发布.我相信这实际上仍然用于GoogleCode的Subversion支持.

Subversion 1.9.0(在撰写本文时尚未发布)将支持一个名为FSX(发音类似物理学)的新实验存储,它将比FSFS更紧凑,更快速.一旦FSX被认为是稳定的,BDB将被完全删除.

Subversion不支持使用其他通用数据库(如MySQL,PostgreSQL,Oracle等)(RDBMS或NOSQL)来存储所有内容,目前还没有计划支持它们.

客户

对于客户端工作副本,Subversion客户端使用了两种不同的格式

  1. WCv1(没有一个名字,但这就是我们现在调用的名称),它在工作副本的每个目录下的.svn目录中使用了平面文件.当我们改为WC-NG时,Subversion使用它直到1.7.0.

  2. WC-NG,它在工作副本顶层的.svn目录中使用SQLite数据库.Subversion自1.7.0开始使用它.


zer*_*kms 6

Subversion使用FSFS,你既不能也不应该想要改变它.

  • 虽然你现在不应该想从 FSFS 切换是对的,但实际上你可以使用 BDB 以及“svnadmin create”的“--fstype”选项 (2认同)

alr*_*roc 5

为了存储存储库内容,Subversion 使用自己的FSFS数据库。它不是关系数据库意义上的数据库。它是一种基于文件系统的存储存储库内容的方法。

对于某些服务器端功能以及在客户端存储工作副本元数据,它使用SQLite

你不能改变这些决定,也不应该在这些结构中胡思乱想,除非你确切地知道自己在做什么。