Database Subversion使用什么数据库?

Database Subversion使用什么数据库?,database,svn,repository,Database,Svn,Repository,Subversion使用什么数据库 是否有默认设置或是否可以将其设置为使用任何数据库?Subversion使用,并且您既不能也不应该更改它。对于存储库内容,Subversion使用自己的数据库。它不是关系数据库意义上的数据库。它是一种基于文件系统的存储存储库内容的方法 对于某些服务器端功能,以及在客户端上存储工作副本元数据,它使用 你不能改变这些决定中的任何一个,也不应该在这些结构中胡闹,除非你确切知道自己在做什么。Server Subversion目前支持两个后端来存储存储库。您可以使用svn

Subversion使用什么数据库


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

Subversion使用,并且您既不能也不应该更改它。

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

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


你不能改变这些决定中的任何一个,也不应该在这些结构中胡闹,除非你确切知道自己在做什么。

Server

Subversion目前支持两个后端来存储存储库。您可以使用
svnadmin create
命令的
--fs type
选项选择哪个

  • FSFS(这是默认值),它是一种自定义格式,与一些人类可读的文件一起存储(主要的例外是增量数据是二进制的)。FSFS还使用一个数据库来跟踪文件内容的散列,因此,如果需要再次存储相同的内容(解除复制),则可以重用现有的内容存储。如果您考虑的是一个典型的关系数据库,那么FSFS中的SQLite使用率是最接近的,SQLite数据库实际上不存储任何数据,并且可以在任何时候删除而不丢失数据(结果是将来的修订可能会占用更多空间)。FSFS已经做了大量的工作来针对各种情况对其进行优化,并且已经增加了许多旋钮,以便能够使其即使在异常情况下也能达到最佳

  • BDB(这是原始后端),它使用来存储存储库。从1.8.0开始,此后端已弃用,但仍受支持。在很长一段时间内,它还没有做过很多工作,FSF在几乎所有情况下都会表现出色

  • 谷歌至少还有另外一个后端实现,从未使用发布。我相信这实际上仍然用于谷歌代码的颠覆支持

    Subversion 1.9.0(在撰写本文时尚未发布)将支持一种称为FSX(发音类似于physics)的新实验存储,它将比FSFS更紧凑、更快。预计一旦FSX被认为稳定,BDB将被完全移除

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

    客户端

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

  • WCv1(没有确切的名称,但我们现在就这么称呼它)使用了工作副本每个目录下.svn目录中的平面文件。直到1.7.0版我们改用WC-NG之前,Subversion一直在使用它

  • 它使用工作副本顶层的.svn目录中的数据库。自1.7.0以来,Subversion就一直使用此选项


  • 我真的很好奇你为什么问?您是否有一个项目,在该项目中,不同的数据库将显著提高搜索速度?请参阅“除非你确切知道自己在做什么”-如果你知道-你就不会问它:-)回答得很好虽然你是对的,但此时你不应该想从FSFS转换,实际上,您可以将BDB与
    --fstype
    选项一起使用来创建
    svnadmin
    @Ben Reser:我的主要回答是:“您可以将其设置为使用任何db吗?”。但事实上,有一点unclear@zerkms,为什么SVN不使用sqlite呢?