我参与的几个 Rails 项目都喜欢频繁的增量更新,我认为这很棒。我们当前的部署策略是手动的,但我们正在考虑切换到 Capistrano 等自动化工具;不过,我也想到,直接部署 Subversion 工作副本可能更好。
以下是我能想到的、显而易见的好处:
- 无需导出/压缩/复制/ssh/unzip 来部署代码(只需
svn update
)。 - 轻松回滚到任何修订版本(例如
svn update -r 123
)。 - 轻松确定当前部署的修订版(
svn info
/svn diff
)。
当然,这种策略不适合具有环境控制和分离的大型机构,但除此之外,与正式的自动化部署工具相比,这种策略还有哪些缺点?
答案1
如果有人提交了快速破坏性的更改或者提交了仍处于调试状态的更改,会发生什么情况?
如果您希望部署提交,最好将提交标记为“生产”或类似内容。然后编写一个部署脚本,定期检查是否有新的生产版本,删除所有调试文件/选项,并将文件放在正确的位置。