为生产应用程序销售导轨的推荐方法是什么?

时间:2009-07-23 15:38:03

标签: ruby-on-rails ruby git

我没有在我的应用程序中使用最新的Rails gem,而是希望将代码本地放在我自己的git存储库中,这意味着将它放在vendor/rails中。

有两种方法可以执行此操作:下载我要运行的特定分支/标记的源代码并将其提交到我的存储库,或使用git子模块。

子模块似乎是一种自然的方式,但不是每次克隆存储库时都必须手动检查要使用该子模块的分支(否则你只会得到) master)?使用这种方法会对Capistrano部署产生影响吗?

2 个答案:

答案 0 :(得分:1)

我建议冻结一个版本:

rake rails:freeze:edge RELEASE=2.3.3

有一个2-3稳定的git分支,但我使用它的时间很糟糕。子模块有点痛苦。工具Braid非常好,但我喜欢用发行版冻结Rails。

Capistrano将更加缓慢地部署您的代码(整个Rails代码库都在那里),但是capistrano本身和您的生产设置不需要改变。

祝你好运!

答案 1 :(得分:1)

Capistrano支持子模块,如果您通过remote_cache进行部署,则部署非常快速。在您的deploy.rb中,您需要:

set:git_enable_submodules,true set:deploy_via,:remote_cache

当您询问有关克隆存储库时,我不太清楚您的意思。一旦将Rails作为子模块出售,就可以将其固定到特定的提交/标记/分支。这会在您的仓库中存储一种分布式符号链接(至少就是我的想法),指向有问题的Rails提交。当你克隆你的仓库时,那个提交的树也会被自动拉下来(我想!)。

几个月前我自己经历过这个并在这里写下来。它对我有用。

http://blog.airbladesoftware.com/2009/4/28/how-to-vendor-rails