代码之家  ›  专栏  ›  技术社区  ›  zapping

SVN服务器自动同步

  •  5
  • zapping  · 技术社区  · 16 年前

    我在局域网上有一个SVN服务器,它在Windows上。开发人员使用并从中签入/签出。为了更安全起见,我们从Rackspace(Linux平台)购买了一台服务器。是否可以执行从本地SVN服务器到远程服务器的每周自动同步。远程备份主要用作远程备份,但万一有人想要访问,他们可以这样做,因为我们的局域网没有静态或外部IP。

    3 回复  |  直到 16 年前
        1
  •  4
  •   jeroenh    16 年前

    我建议用 svnsync 为此。当从提交后挂钩触发时,此工具(SVN分发的一部分)允许在两个(或更多)SVN服务器之间进行实时同步。

        2
  •  0
  •   Peter Eisentraut    16 年前

    只要备份服务器是只读的,rsync之类的基本功能就可以工作。但是,您可能希望实现一个重试循环,该循环将一直同步,直到没有任何同步内容,这样在某人提交某个内容时,您就不会精确地同步状态。

    如果您需要在两个站点上进行读/写访问,那么使用git和在客户端使用git-svn作为“向后兼容性”可能会更安全、更容易。

    另一个选择是使用 SVK 基于SVK的分布式版本控制系统。但这对客户也不是完全透明的。

        3
  •  0
  •   Community Mohan Dere    9 年前

    你可以使用 svnadmin dump 转储整个存储库。 您可以使用后命令挂钩和同一命令以独立格式转储提交,稍后可以重新应用该格式。

    结合这些和rsync,您可以在任何其他服务器上有效地复制您的服务器。只要备份服务器是只读的,就可以使用它。在发生故障的情况下,一个简单的SVN开关将允许开发人员使用备份服务器。

    我建议你 setup acls 禁止写入备份服务器,除非它成为主服务器。

    彼得提到的另一个解决方案可能是SVK,但它不能用于完全自动同步:如果两个服务器上的更改发生冲突,会发生什么?脚本将失败或破坏此操作。任何像分布式合并这样的东西都必须由人来审查。

    另一个解决方案是SVN——镜像方式

    有关保持回购同步的详细信息,请尝试阅读以下内容: How to synchronize two Subversion repositories? :)