使用 Subversion 并推送到登台,然后是 Live Server

Posted

技术标签:

【中文标题】使用 Subversion 并推送到登台,然后是 Live Server【英文标题】:Using Subversion and Pushing to Staging and then Live Sever 【发布时间】:2011-05-18 16:40:56 【问题描述】:

我们想在我们的开发管道中添加一个登台服务器和版本控制。我们的站点是一个复杂的 Web 应用程序,运行在带有 phpmysql 和 Apache 的远程 Linux 服务器上。我们刚刚在办公室 LAN 上设置了 Subversion,并让它在 Dreamweaver CS5 中运行。我们的开发机器运行 Windows。

问题是如何最好地将临时服务器添加到此设置中。我们是一个小团队,只有 3 名开发人员,所以我们不需要过于强大/复杂的解决方案。我不明白的是如何将更改从我们的 Subversion 存储库(位于开发人员的一台机器上)推送到临时服务器或实时服务器。

    我读了很多关于人们为此编写钩子的文章,但这是否意味着我们需要在登台服务器和实时服务器上安装 Subversion?我宁愿不这样做。

    我想在开发人员将文件提交到 Subversion 时自动将文件上传到暂存服务器。如何做到这一点?

    然后我需要一个将文件从暂存服务器上传到实时服务器的自动化过程。这是我真的不明白的部分。特别是因为我不想在 Live 上安装 Subversion。这通常是如何完成的?

    是否所有来自暂存服务器的文件都推送到 Live?或者有没有办法只推送自上次推送以来发生变化的那些?

    我希望使用 Windows XAMPP 来设置暂存服务器,但我们的 Live 服务器是 Linux,并且我们的一些站点代码具有 Linux 特定的文件路径,它们似乎无法在 Windows 中运行.这个问题通常如何解决?是创建新 Linux 暂存服务器的唯一解决方案吗?如果可能的话,我宁愿避免这种情况。

    在我们的网站上,用户可以上传图片,这些图片存储在网站根目录之外的单独文件夹中。 Windows XAMPP 可以与诸如设置一起使用吗?我们现在最大的挑战是确保相同的代码在 Linux/Windows 上工作。有哪些注意事项?这在理论上是可能的吗?

谢谢!

【问题讨论】:

一个问题太多了。你能把范围缩小一点吗? 【参考方案1】:

    不需要。这些钩子可以在您的版本控制服务器上运行。挂钩应该能够将构建推送到登台服务器。

    Hooks 可以提供这些功能,但为什么不将其与版本控制分开。

    自动上传意味着无法控制何时推送构建。在开发的大部分时间里,中间构建都被破坏了。我建议您在工作流程中包含像 BuildBot 这样的“持续集成工具”。这将完成报告损坏的构建和构建健康的当前状态的工作。如果您愿意,您可以随时使用此机制将好的构建自动上传到登台服务器。

    Staging 用于在完整的实时环境中测试构建,这在您的 QA 环境中很难复制。因此,如果发现有问题,可能不会将基于 staging 的构建推送到实际环境。

    XAMPP 可以在 Windows 上运行。在谷歌上查看。不过,您的暂存环境和实时环境应该完全相同,因为这就是暂存环境的用途。

    理论上,它应该可以工作。您必须测试您的特定功能。

【讨论】:

【参考方案2】:

对于问题 1 和 2,您在 subversion 存储库上使用提交后挂钩(不需要在 Web 服务器上),它将最新版本复制到您的登台服务器。

Re 3),这是一个坏主意,您不应该自动部署到生产环境。如果您这样做,错误的提交可能会导致您的网站崩溃。

4、5 和 6 是完全不同的问题,应分别提出。

【讨论】:

以上是关于使用 Subversion 并推送到登台,然后是 Live Server的主要内容,如果未能解决你的问题,请参考以下文章

Oracle PL/SQL 程序在源表中拆分逗号分隔的数据并推送到目标表中

在 Web 应用程序中接收数据并推送到客户端浏览器的套接字

从外部附件输入流中读取并推送到 s3 的最有效方法?

使用gitlab+jenkins+nexus拉取springcloud并根据不同模块构建docker镜像,并推送到nexus里的docker仓库

Github 项目克隆并推送到临时机器上

匹配字谜并推送到数组