2009-07-23 63 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

相關問題