Svn 使用Subversion在单个服务器上自动部署测试和生产网站

Svn 使用Subversion在单个服务器上自动部署测试和生产网站,svn,version-control,Svn,Version Control,由于资源有限,我想在当前运行我们生产网站的单个服务器上实现以下内容。目标是实现版本控制和测试服务器,同时保持尽可能安全的服务器 使用设置Subversion存储库 Apache和SSL以及第二个虚拟机 主机用作我们的测试服务器,使用 不同的dns名称和端口 将生产站点导入存储库,然后签出生产和测试文档根中的文件 创建提交后bash脚本以 对正在运行的测试运行更新 复制并根据 commit被标记为特定的 关键字,同时在上运行更新 制作工作副本 我肯定会有一些我已经忘记的小的实现细节,但是这是一个好

由于资源有限,我想在当前运行我们生产网站的单个服务器上实现以下内容。目标是实现版本控制和测试服务器,同时保持尽可能安全的服务器

  • 使用设置Subversion存储库 Apache和SSL以及第二个虚拟机 主机用作我们的测试服务器,使用 不同的dns名称和端口

  • 将生产站点导入存储库,然后签出生产和测试文档根中的文件

  • 创建提交后bash脚本以 对正在运行的测试运行更新 复制并根据 commit被标记为特定的 关键字,同时在上运行更新 制作工作副本

  • 我肯定会有一些我已经忘记的小的实现细节,但是这是一个好的策略,忽略对服务器的任何性能影响吗?我缺少什么?

    我建议不要基于提交消息中的关键字自动部署到生产环境。很容易错误地将代码推送到生产环境中,也很难确定它发生的时间/原因

    我更希望看到您编写一个脚本,可以在准备投入生产时手动执行。此脚本将标记代码并基于标记导出到生产环境。这将允许您在您想要的时候拉那个标记的修订,并为您提供一个起点,如果您需要在开发下一个主要版本的新功能的同时为生产支持创建一个分支。
    另外,除非您正在推动每个提交测试,否则您也应该标记您的推动测试。

    您有点使用版本控制(svn)来完成自动构建和部署工具的工作。您最好使用ant、nant、cruise control、team city等工具,它们可以监视subversion,然后进行构建和部署,包括测试等。