3

那些很难用谷歌搜索的问题之一。

前几天,我们的 svn 存储库的速度遇到了问题。对此的标准解决方案似乎是“更多 RAM!更多 CPU!” 等等,这让我想知道,是否有任何使用文档/nosql 数据库(mongodb、couchdb 等)作为数据库的源代码控制系统?看起来这可能很自然——但我不是源代码控制数据库理论的专家。也许有一种方法可以配置更新的源代码控制以使用文档数据库作为存储?

4

3 回答 3

3

我所知道的都没有,他们也不想这样做。考虑到测试程度的差异,它可能会损害健壮性(对于源代码存储库来说是一件非常糟糕的事情)。由于无法进行增量存储,它可能最终也会损害性能。

请注意,Subversion 有两种截然不同的存储机制,一种由嵌入式 Berkeley DB 支持,另一种由简单文件支持。其中一个或另一个可能更适合您的使用。

另外,由于您提出的问题非常广泛,我将对 Git 和 TFS 发表评论。

Git 使用文件系统中非常有效的打包文件来存储存储库。通常,整个历史记录小于结帐。对于我实验室的一个非常古老的项目,整个历史是 57MiB,而工作树(不计算历史)是 56MiB。

TFS 将大量(可能是全部)数据存储在 SQL 数据库中。

于 2010-09-27T19:33:23.320 回答
3

Git 像 MongoDB 一样使用内存映射文件 :)

虽然 Git 实际上并没有使用 MongoDB,但我认为它不会想要。如果你看一下 Git,它实际上并不需要NoSQL DB,它基本上就是一个 DB。

于 2010-10-03T06:53:35.453 回答
0

据我所知,没有任何 VCS 使用基于 noSQL/文档的数据库。使用 couchdb 等的想法并不新鲜......但到目前为止还没有人实施过这样的事情......

于 2010-09-27T19:06:29.530 回答