2008-11-08 33 views
3

我们很高兴在工作中使用SVN for SCM。目前我已将我们的二进制资产与我们的代码放在同一个SVN存储库中。 SVN支持非常大的文件(它会'流畅地传输'以保持内存使用的健全),但它使一切都很慢。我对缓慢的资产版本控制可以,但是慢速文本操作并不是真的可以接受。SVN优化以保持大型存储库的响应

现在资产处于/ trunk/release(与一打/ trunk /项目并排)。我们应该让他们在一个单独的存储库?我们还能做其他什么优化?我们拥有大约1GB的资产并不断增长。

回答

1

IMNSHO它更好地将每个项目保存在自己的存储库中,如果只是为了保持版本号在它们之间分开。如果项目foo在六个月内没有改变,但项目栏正在积极开发中,为什么foo的当前修订版本号仍在变化。也许例外,如果两者紧密结合(就像他们共享一个共同的图书馆),但即使如此,也许图书馆也应该是自己的项目。

二元资产是否永远在变化或者它们是静态的?如果它们是静态的,也许你根本不需要它们在存储库中(只留下一个小的位置)。

+2

SVN revnum不是项目特定的,它的存储库特定的。它认为foo得到新的revnum是一个错误 - 如果foo没有改变,它就不会得到新的revnum! foo的当前revnum或者是'HEAD',或者是项目foo被更改的最后一个revnum。 – gbjbaanb 2010-07-23 16:34:46

2

你没有说你已经使用了哪些优化。如果您使用的是bsdfs,请查看切换到fsfs是否可以提高性能。如果您有大量修订,请切换到服务器上的更新版本,然后将存储库转换为1.5格式。

0

可能你要得到的最佳答案是把你的二进制文件放到一个单独的目录中,并使用备用目录功能来管理它们 - 也就是说,在你需要它们之前不要检出文件。然后,所有操作都将在源文件上发生,而不是二进制文件。

或者,您可以使用相同的机制来提交或更新 - 而不是更新您的工作副本,您可以使用'更新到修订版',并指定HEAD和减少的深度,因此二进制目录不会更新(直到你需要)。

您也可以'svnadmin pack'您的回购,这将提高服务器端的性能。