5

我将获得一些任意大小的服务器空间,并获得对它的 ssh 访问权限以建立一个颠覆存储库。

但是,我不知道需要多少空间。现在,它将托管我的 cms 项目,以便我的同事也可以为代码做出贡献。但如果它得到任何地方,我们希望扩展系统,可能会将许多项目放入 repo。

它将包含 php 和其他基于 Web 的代码,以及一些图像。在不过度使用的情况下,多少空间是一个很好的空间?20MB?200MB?

4

4 回答 4

5

考虑到一个典型的带有几个图像和要下载的 PDF 的 Web 项目本身的大小可能为 20MB,如果您想存储 SVN 历史记录,您将需要更多。

例如,在我的个人 SVN 服务器上,对于一个 web 项目(我的博客,它并不大),SVN 存储库的大小为 181 MB - 并且不超过 150 次左右的修订(我已经停止为该项目使用 SVN)

另一个(较小:几乎没有像图像这样的二进制文件,并且框架是通过 链接的svn:externals pet-project 具有大约 100 个修订版,其存储库大小为 49MB。

还有另一个项目(小型网站,只有几个修订,因为它是一个我不再维护的网站,我只是 SVN 我的 SVN 服务器作为备份机制)的存储库大小为 22M ;考虑到这个项目,任何更小的东西都会显得很奇怪......

因此,对于一个体面的项目,可能需要几百 MB 一天或一天​​,特别是如果有几个不同的开发人员。

于 2009-12-11T22:19:36.730 回答
4

这取决于项目规模。显然,您至少需要与项目大小一样多的空间。然后,您将需要更多空间来存储 SVN 跟踪的更改。

如今,由于空间成本高,您为什么担心过度使用它?只需向它扔几场演出。

于 2009-12-11T22:20:48.000 回答
2

获取一个完整修订版的大小并将其填入下一个公式:

TotalSize = OneRevisionSize * (n * 1.09)

其中 n 是预期的修订量。(如果您不知道,请使用 1000 作为 n)每个分支都应使用相同的公式单独重新计算。对于每个标签,应保留相同的大小作为一个修订版。

于 2015-03-03T16:07:09.250 回答
1

如果存储库中只有文本,它不会变得很大。Subversion 非常擅长使用文本进行 delta 压缩,如果操作正确,它不会复制带有分支、标签和合并的对象。

但是,如果您要存储随时间变化的大型二进制文件,尤其是图像或视频等预压缩文件,则存储库将快速增长。此外,如果您签入已编译的可执行文件、Java 类、.NET 程序集,即使只对源代码进行很小的更改,它们实际上也会有很大的不同。Subversion 仍然尝试对这些文件进行 delta 压缩,但是它们在一个字节级别上从一个修订版到另一个修订版都发生了如此大的变化,如果有的话,它也无能为力。

我们有两个用于一个大型项目的存储库……“源”存储库只有几百 MB,尽管有超过 40000 个文件和 20000 个修订版以及许多分支和合并。它大部分只有文本文件,或不变的图像。同一个项目的“构建”存储库大小接近 10 GB,因为我们签入了构建的 Java .class 文件(在某些情况下还有整个 JAR 和 EAR 文件)。我们维护“已构建”存储库以进行快速部署和回滚(我们不希望必须从源代码构建以在紧急情况下回滚到好的版本)。

于 2009-12-11T23:00:11.173 回答