我的局域网上有一个svn服务器在Windows上。开发人员使用和签入/签出。为了更加安全,我们从rackspace中选择了一台服务器。是否可以从本地svn服务器到远程服务器进行每周自动同步。远程备份将主要用作远程备份,但万一有人想要访问,那么他们可以这样做,因为我们的局域网没有静态或外部IP。
答案 0 :(得分:4)
我建议使用svnsync。当从提交后挂钩触发时,此工具(svn发行版的一部分)允许在2个(或更多)svn服务器之间进行实时同步。
答案 1 :(得分:0)
只要备份服务器以只读方式使用,像rsync这样的基本服务器就可以工作。但是你可能想要实现一个重试循环来保持同步,直到没有任何东西可以同步,这样你就不会在有人提交某些内容时完全同步状态。
如果您需要在两个站点上进行读/写访问,那么使用git之类的东西可能更安全,更容易,并且在客户端使用git-svn作为“向后兼容性”。
另一个选择是使用SVK,这是一个建立在SVK之上的分布式版本控制系统。但这对客户来说也不会完全透明。
答案 2 :(得分:0)
您可以使用svnadmin dump转储整个存储库。 您可以使用postcommit钩子和相同的命令以独立格式转储提交,以后可以重新应用
将这些和rsync结合起来,您可以在任何其他服务器上有效地复制您的服务器。只要您的备份服务器只能以只读方式访问,就可以使用它。如果发生故障,简单的svn开关将允许开发人员使用备份服务器。
我建议您setup acls禁止写入备份服务器,除非它成为主服务器。
peter提到的另一个解决方案可能是svk,但不能用于完全自动同步:如果在两台服务器上发生冲突,会发生什么?脚本将失败或破坏这个。像分布式合并这样的东西必须由人来审查。
另一个解决方案是svn --mirror方式
您应该尝试阅读此内容,以获取有关保持回购同步的更多详细信息:How to synchronize two Subversion repositories?:)