首先,我要了解一下我想要实现的目标。
我正在编写一个用于基本项目管理的小型Django应用程序,类似于简化的Google代码,我想要严格的SVN集成,这意味着我希望能够管理用户访问权限。我还希望我的应用程序在创建项目时创建存储库,就像Google Code一样。
现在出现问题:
我可以提供单个存储库并将我的所有项目都放在根文件夹中(就像我现在这样)或者为每个存储库启动一个svnserve守护程序。
我不能使用单一服务器设置,因为所有项目都将被视为一个大项目,使得版本编号边界无用,并且每个项目权限管理都不可能(我认为)。
我发现这篇文章主要描述了我将要做的事情:
http://articles.slicehost.com/2007/9/6/multiple-repositories-and-subversion
然而,我的同事认为这是一种矫枉过正,我不应该这样做。
对于我自己而言,我认为考虑到我几乎不会超过100个项目,这不是问题。即使我不切实际地拥有500个活动项目,服务器也可以应对500个空闲进程。
谁是对的?
或者我应该去寻找别的东西,比如Mercurial?
答案 0 :(得分:2)
使用多个存储库。这就是我所做的,这不是矫枉过正。我使用VisualSVN Server Manager之类的东西来管理它们。它甚至可以为您设置https和简化的Apache服务器。 (仅限Windows)
答案 1 :(得分:1)
IIRC Apache选择了一个大的存储库vs.s.许多较小的存储库。我相信,如果您需要跨存储库共享代码,那么驱动选择方法的差异最为明显。有些工具和操作根本无法与单独的存储库一起使用。我记得,在最新版本的TortoiseSVN和/或Subversion的发行说明中有一些详细的评论,其中提到了一些限制。我个人已经击中了其中一些地雷,特别是在与第三方存储库合作时。
FWIW - 我使用单独的存储库,因为我为许多不同的客户工作。 Malfist也提到过VisualSVN服务器非常好,你在Windows上也很容易设置多个存储库。从头开始手动执行相同操作需要更多专业知识,特别是如果您使用Apache HTTPD作为前端。 Apache是首选方法,特别是如果您将SNV暴露给Internet或需要更多的访问控制权。