通过网络推出/发布大量文件的最有效方法是什么?

通过网络推出/发布大量文件的最有效方法是什么?

这是我的情况:

我们需要将一组文件(“工作区”)从源服务器推送到多个目标服务器。这些文件受版本控制 (SVN) 保护,因此第一步是将存储库的最新版本导出到源服务器。然后,我需要确保位于不同大洲的多个区域服务器都拥有该工作区的最新版本。

我有一个使用 ROBOCOPY 的脚本,但它发送全部的工作区到每个目标服务器。复制时间非常长,并且传输可能会堵塞一些连接不太好的站点的网络.....我已经收到投诉了!

在大多数情况下,更改仅适用于所有文件的一小部分,因此某种差异拷贝是理想的。我不太愿意采用同步/镜像方式,因为远程服务器上的文件会经常被使用和修改,而且同步工具很可能会认为区域服务器上的文件较新。

您是否可以推荐一些脚本/工具来提高发布此工作区的效率?如果有价格合理的脚本/工具可以帮助完成这项工作,我也不介意。

操作系统:Windows Server 2003 网络带宽:这是私人公司网络,连接速度可能有很大差异

答案1

鉴于文件处于版本控制之下,如何在 svn 中为文件的“生产就绪”版本创建一个分支。然后,不要在主服务器上执行 svn 导出,而是在全部服务器,并使用“svn update”从“Production Ready”分支更新所有服务器。

拥有可用于生产的分支的理念是,您可以继续处理文件,并在准备将它们“发布”到所有服务器时将文件复制到分支中。这样,您的生产服务器上就不会出现“未完成”的内容。

吉姆。

附言:这与 Dave Cheney 的回答基本相同,只是更详细。

答案2

您提到源代码在 SVN 中。您可以直接执行 svn up 吗?

答案3

在大多数情况下,更改仅适用于所有文件的一小部分,因此某种差异副本将是理想的选择

Rsync。是的,对于Windows 也是如此

如上所述,svn up也可以,但由于

远程服务器上的文件将被经常使用和修改

你需要svn revert

答案4

木偶配置管理工具可能会让您感兴趣。

从功能角度来看,它可能有点过度,但与您正在考虑的解决方案相比,它相对轻量级。

相关内容