svn服务器自动同步

时间:2010-01-25 06:52:32

标签: svn version-control synchronization subversive

我的局域网上有一个svn服务器在Windows上。开发人员使用和签入/签出。为了更加安全,我们从rackspace中选择了一台服务器。是否可以从本地svn服务器到远程服务器进行每周自动同步。远程备份将主要用作远程备份,但万一有人想要访问,那么他们可以这样做,因为我们的局域网没有静态或外部IP。

3 个答案:

答案 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?:)