【问题标题】:How to upload new/changed files from development server to the production one?如何将新的/更改的文件从开发服务器上传到生产服务器?
【发布时间】:2012-11-29 05:25:31
【问题描述】:

最近我开始在我的开发工作流程中融入良好的实践,因此我将开发服务器和生产服务器分开。我还使用 Subversion (Tortoise SVN) 合并了一个版本控制系统。

现在我遇到了将生产服务器(Apache 共享主机)与本地机器上最后一个开发版本的文件同步的问题。

之前我没有这个问题,因为我是通过 Filezilla 直接处理服务器文件的。但是现在我不知道如何以有效的方式传输文件以及这方面的良好做法。

我读过一些关于 Ant 和 Phing 的文章,但我不确定这是否适合我或者是否是不必要的复杂性。

【问题讨论】:

  • 您对部署策略只字未提:对 DEV 的所有提交都必须转移到 PROD,您如何组织 DEV 和 PROD 工作区:它们是未版本化的文件还是您的 REPO 的 WC(以及 repo 的哪一部分- 树干?“SomeBranch”)

标签: apache svn ftp


【解决方案1】:

旁注:

您必须打开有关您的工作流程和配置的更多详细信息 - 适用的解决方案取决于它。我看到游戏中有 4 个主要节点:Workplace、Repo Server、DEV、PROD,一些节点可能是联合的(1+2、2+3),可能有不同的工具集(你有 SSH、Rsync、NFS、Subversion clients 在 DEV|PROD)。所有细节都很重要

在任何情况下 - Subversion 存储库都有这样的东西,如 hooks,在你的情况下是 post-commit hook(每次提交后在存储库服务器端执行)

如果这个钩子(任何代码,可以在无人值守模式下执行),您可以定义和实施任何规则,以便在任何条件下执行部署到任何目标。你必须只知道

  • 将使用哪种传输方式传输文件
  • 您在服务器上的 webspaces 是什么(只是干净的未版本控制文件的工作副本 - 两种解决方案都有 pro 和 contra 集) - 它将定义您必须在 hook 中实施的部署策略(“导出”或“更新”)

Some links to scripts,将受修订(或修订范围)影响的文件导出到未版本化的树中

【讨论】:

    【解决方案2】:

    也许有更多结构化的解决方案,但使用 Tortoise SVN,您可以仅导出文件夹树结构中版本之间更改的文件。然后,像往常一样在 Filezilla 中上传。

    看看: http://verysimple.com/2007/09/06/using-tortoisesvn-to-export-only-newmodified-files/

    • 使用 TortoiseSVN,右键单击您的工作文件夹并选择 TortoiseSVN 菜单中的“显示日志”。
    • 点击上次发布的修订版
    • Ctrl+单击 HEAD 修订版(或您想要的任何修订版) 发布),以便旧版本和新版本都是 突出显示。
    • 右键单击任一突出显示的修订并选择 “比较修订。”这将打开一个对话框窗口,列出所有 新的/修改的文件。
    • 从此列表中选择所有文件 (Ctrl+a),然后右键单击 突出显示的文件,然后选择“将选择导出到...”

    【讨论】:

      【解决方案3】:

      Rsync 是一个跨平台工具,旨在帮助解决此类情况;我曾多次将其用于类似目的。这个DevShed tutorial 可能会有所帮助。

      【讨论】:

        【解决方案4】:

        我认为您不想“自动化”它,而是要建立对您的部署和集成过程的控制。我通常喜欢 SVN,但它有一些错误,我遇到的一个问题是它不支持基线 - 相反,如果你想拥有一个稳定的版本来提升到更高的环境,你需要创建存储库的物理分支同时继续推进trunk

        不管怎样,你应该看看持续集成和Jenkins。这是一个相当广泛的话题,无法给出具体的答案。有很多来龙去脉,你有什么。取决于您的应用程序平台、组件、您是否有数据库更改、您是在处理外部 Web 服务还是第 3 方 API 等。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多