2009-07-23 31 views
2

我没有为我的应用程序使用最新的Rails gem,而是喜欢将代码放在我自己的git存储库中,这意味着将它放入vendor/rails生产应用程序的推销方式是什么?

有几种方法可以做到这一点:下载我想运行的特定分支/标记的源代码,并将其提交到我的存储库或使用git子模块。

子模块看起来像是一种自然的方式,但是不是每次克隆存储库时都必须手动检查要使用该子模块的分支(否则您只需获得master)?使用这种方法对Capistrano部署有影响吗?

回答

1

我建议冻结在释放:

rake rails:freeze:edge RELEASE=2.3.3 

有2-3个稳定的一个Git分支,但我一直在使用它有一个可怕的时间。子模块有点痛苦。该工具Braid是相当不错的,但我喜欢冻结与释放的Rails。 (Capri的代码库在那里),但是Capistrano本身和你的生产环境不需要改变。

祝你好运!

1

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

集:git_enable_submodules,真正 集:deploy_via,:remote_cache

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

几个月前我经历了这个,并在这里写下了它。它对我来说很好。

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

+0

嗨安迪:) 感谢您的信息。我最初确实关注了您的博客帖子,但我们遇到了一些有关子模块的问题。例如,当你第一次克隆回购时,我发现你需要做一个'git submodule init'等等。当你有很多回购用户,而其中一些用户不是技术人员时,这是不太理想的。我想要最简单的解决方案和耙路轨:freeze:edge似乎对我来说工作得很好。 – Olly 2009-08-05 14:07:17

相关问题