Subversion仓库管理

4
在我的项目中,每个错误和/或增强功能必须在合并到主干之前在分支中开发。由于分支(复制主干)在完成后不会被删除,因此我们实际上在存储库中有超过200个未使用的分支(新项目)。
我最近注意到存储库中的小操作速度变慢。我的同事告诉我,删除分支不会改善svn的速度,因为所有先前的版本日志/源代码都留在存储库中。
我对这个想法并不是很信服,相反,我认为如果存储库的HEAD具有更少的文件夹/文件,则其管理应该更快(同时,分支目录应更易于处理)。
您对这个问题有何看法?(如果您有一些说服他们我是正确的参考,请告诉我)
1个回答

2
我相信你的同事是对的,删除旧分支不会提高速度。删除分支实际上会向存储库添加更多的修订版本,所以如果有什么变化,它会减慢速度。但你可能不会注意到,而且你的存储库很可能因为其他原因而变慢。
然而,你绝对是正确的,留下“branches”目录中的旧工作随着时间的推移会变得难以管理。我惊讶于你的项目只有200个这样的修复,它一定非常新。我建议你应该删除旧的工作,因为如果你需要参考它的话,所有的东西仍然留在Subversion历史记录中。拥有一个干净、合理的工作空间比旧工作的碎片更有价值。

修订版本的数量并不重要,重要的是svn服务器构建文件系统树的速度,而不是文件内容。如果我没记错的话,它会在每个修订版本中存储树的快照,而不是从补丁中构建树 - 但我现在找不到任何参考资料了。 - Rup
谢谢您的意见。是的,这是一个非常新的项目(甚至还没有原型),但它也不是很大。所以您的意思是说Subversion并没有针对HEAD进行优化,使其比其他版本更快地运行。 - Phong
@Rup @Phong Subversion以称为“跳过增量”的树状方式存储历史修订,请参见SVN performance after many revisions了解更多信息。恐怕我对Subversion内部的优化不够了解,无法发表评论。 - Greg Hewgill
对于文件内容,当然可以。但我认为它在文件系统树方面会有其他作用,如果分支很多,这将导致性能问题。 - Rup

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接