Subversion存储库应该在哪里?
应该在开发服务器还是Subversion服务器上?
我想这可以扩展到任何客户端-服务器版本控制系统。
解决方案
物理存储库应位于具有常规备份的稳定系统上。
通常,开发服务器不符合此描述...将apache服务器放在开发服务器上并将文件远程托管在稳定的备份文件服务器上是可以接受的(尽管这样做有很多陷阱)方法),如果我们无法获得其他服务器资源。如果我们有一个积极的备份系统来保护代码,则将其托管在开发服务器上可能会很好。
请记住,开发服务器很容易发生配置更改,被破坏或者以其他方式被破坏,这可能会在关键时刻降低回购。
我将自己放在开发服务器上,该服务器还运行Trac,Apache托管项目JavaDocs的自动更新副本以及CI构建平台。一个项目必须具有相当大的比例,才能使用专用的Subversion服务器。
但是,请记住,将Subversion存储库备份到另一位置的另一台计算机上是非常重要的,存储库是我们最宝贵的资产!
我喜欢将自己的服务器保留在自己的服务器上,因为我认为它是组织中最重要的服务器之一,并将其保留在自己的服务器上有助于管理员进行备份和其他维护活动。而且由于服务器非常重要,因此我们不希望其他开发人员以任何可能会意外损害服务器的方式来破坏它。
另外,如果我们有很多开发人员和一个运行中的持续集成服务器在运行,则实际上可能会使CPU大量刺痛,而我们要做的最后一件事就是在提交代码更改时遇到任何阻碍
根据定义,开发箱将被丢弃并掉落。它带有领土!
我们是否真的希望这种情况发生在源代码存储库中?
除了其他人提到的定期对开发服务器进行垃圾回收之外,还有一个性能争论。如果有人在开发服务器上进行某些开发或者测试,则不希望这样做会减慢SVN服务器的检出或者同步速度。同样,如果我们决定在同一台服务器上运行诸如持续集成之类的内容,则我们不希望所有单元测试陷入该服务器上的常规开发/测试操作。
在我公司,我们将其放在提供冗余存储的专用计算机上。我想在我们的文化中,我们高度重视源代码以及创建源代码所花费的时间和精力。由于配置变得难以管理,我们从不使用任何可能损坏或者擦拭干净的测试机。
。我们也出于相同的原因在同一盒子上跟踪缺陷。
我们在存储库中使用干净的空白板岩。具体来说,我们使用Slicehost作为主要存储库。
我们从256MB的片开始,后来又升级到512MB。 Slicehost之所以出色,是因为我们知道自己一台完全干净的服务器,并且可以自行构建所需的东西。
Slicehosts的文章是一流的。
我们的回购服务器如下所示:
- Ubuntu Hardy苍鹭
- 颠覆
- 阿帕奇
- Ruby on Rails
- 仓库
- 乘客通过Apache服务仓库
- 通过Slicehost的每日和每周备份
就是这样。没有太多的开销。
编辑:不试图在这里出售Slicehost,所以如果这不是犹太洁食,请告诉我!
再次编辑:James非常擅长在第三方服务器上托管专有代码。选择主机做这种事情时,一定要格外小心。不幸的是,许多公司根本没有资源来内部构建和管理服务器,这是我们在为代码选择主机之前发现自己的地方。