SVN优化以保持大型存储库的响应速度

SVN优化以保持大型存储库的响应速度,svn,version-control,asset-management,Svn,Version Control,Asset Management,我们很高兴在工作中使用SVN进行SCM。目前,我们的二进制资产与代码位于同一个SVN存储库中。SVN支持非常大的文件(它以“流线型”的方式传输这些文件以保持内存使用的正常),但它使一切都变得缓慢。我同意缓慢的资产版本控制,但缓慢的文本操作实际上是不可接受的 目前资产正在/trunk/release下(与十几个/trunk/projects并排)。我们是否应该将它们保存在单独的存储库中?我们还可以做哪些其他优化?我们有大约GB的资产,并且在不断增长。您没有说您已经使用了哪些优化。如果您使用的是BS

我们很高兴在工作中使用SVN进行SCM。目前,我们的二进制资产与代码位于同一个SVN存储库中。SVN支持非常大的文件(它以“流线型”的方式传输这些文件以保持内存使用的正常),但它使一切都变得缓慢。我同意缓慢的资产版本控制,但缓慢的文本操作实际上是不可接受的


目前资产正在/trunk/release下(与十几个/trunk/projects并排)。我们是否应该将它们保存在单独的存储库中?我们还可以做哪些其他优化?我们有大约GB的资产,并且在不断增长。

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

imn如果只是为了将修订号分开,最好将每个项目保留在自己的存储库中。如果ProjectFoo在六个月内没有被更改,但ProjectBar正在积极开发中,为什么foo当前的修订号要不断更改。如果这两个库紧密耦合(就像它们共享一个公共库),则可能会出现例外,但即使如此,库也应该是它自己的项目


二进制资产到底是不断变化还是静止的?如果它们是静态的,那么您可能根本不希望它们出现在存储库中(只需在存储库中留下一个小的占位符)。

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

或者,您可以使用相同的机制来提交或更新,而不是更新您的工作副本,您可以使用“update to revision”,并指定头和减少的深度,以便二进制目录不会得到更新(直到您需要)


您还可以“svnadmin pack”您的repo,这将提高服务器端性能。

SVN revnum不是特定于项目的,而是特定于存储库的。认为foo得到一个新的revnum是一个错误——如果foo中没有任何变化,它就不会得到一个新的revnum!foo的当前revnum是“HEAD”或更改项目foo的最后一个revnum。