如果您可以设置生产服务器以通过安全通道访问 SVN 存储库,例如带有 webdav 的 https,则可以尝试以下操作:
在生产服务器上创建一个脚本,允许您输入标签目录和/或修订号/日期并执行 svn 导出。这样,prod 服务器就会从 svn 中提取更改。
现在,如果你有办法安全地调用这个脚本,比如说提交脚本。瞧,你有自动化。
最重要的是,您不希望对您未计划的 prod 服务器执行自动更新。
要解决这个问题:
提交脚本应仅在将某些内容提交到“/path/to/tags/release/dir”时调用 prod 更新脚本
确保只有适当的变更控制人员(或当前控制手动生产部署的人员)才能在 repo 中执行 svn 复制到此目录。
例如,假设您的回购设置为:
/yourWebsite
--> /branches
--> /trunk
--> /tags
----> /releases
触发自动部署到 prod 的提交将类似于:
svn copy https://mySvnRepo/yourWebSite/trunk \
https://mySvnRepo/yourWebSite/tags/releases/x.y \
-m "Tagging for production deployment"
回滚可以通过提交到以前的版本目录来实现。但是请注意,这不会导致添加的新文件回滚。
当然,您的里程可能会有所不同;这只是对您的调查的建议。如果设置不正确,您应该花时间考虑安全隐患和潜在的灾难。
希望这会有所帮助,即使只是为了让您考虑其他解决方案。