其中一个难以谷歌的问题。
前几天我们以svn存储库的速度遇到了问题。对此的标准解决方案似乎是“更多RAM!更多CPU!”让我想知道的是,有没有任何使用文件/ nosql数据库(mongodb,couchdb等)的数据库的源控制系统?看起来它可能是天生的 - 但我他不是源控制数据库理论方面的专家。也许有一种方法可以配置更新的源代码控制以将文档数据库用作存储?
答案 0 :(得分:3)
我知道没有,他们不想这样做。鉴于测试程度的差异,它可能会损害稳健性(对于源代码存储库来说真的很糟糕)。由于无法进行增量存储,它可能还会导致伤害性能。
请注意,Subversion有两种截然不同的存储机制,一种由嵌入式Berkeley DB支持,另一种由简单文件支持。其中一个或另一个可能更适合您的使用。
另外,由于你提出的问题非常广泛,我会对Git和TFS发表评论。
Git在文件系统中使用非常高效的打包文件来存储存储库。通常,整个历史记录都小于结帐。对于我实验室的一个非常古老的项目,整个历史记录是57MiB,而工作树(不包括历史记录)是56MiB。
TFS将大量(可能全部)数据存储在SQL数据库中。
答案 1 :(得分:3)
Git使用与MongoDB类似的内存映射文件:)
虽然Git实际上并没有使用MongoDB,但我认为它不会。如果你看一下Git,它实际上并不是需要一个NoSQL数据库,它基本上是一个数据库。
答案 2 :(得分:0)
据我所知,VCS没有使用基于SQL /文档的数据库。使用couchdb等的想法并不新鲜......但到目前为止还没有人实现过这样的事情......