2014-04-24 79 views
0

我有一個用於開發的應用程序目錄:d:/some/dir/myapp。我有一個名爲sample-repo的存儲庫,但它有兩個分支:developmasterRails將Gemfile.lock部署到開發和生產庫

我的應用程序的Gemfile中使用sample-repo庫特定環境下的分支:

RAILS_ENV = ENV['RAILS_ENV'] || 'development' 
gem 'sample-repo', git: "[email protected]:MyUserName/sample-repo.git", 
       branch: "#{ RAILS_ENV.to_sym == :production ? :master : :develop }" 

我的虛擬主機有兩個獨立的目錄;一個用於開發,另一個用於生產。每個都通過各自分支的git pull進行更新(development => develop,production => master)。

這是一個問題,因爲當我在我的開發機器上運行bundle update時,Gemfile.lock包含sample-repo gem,指定了develop分支。然後我把gmfile.lock推到我的回購(開發和主),現在主回購包含一個Gemfile.lock指定開發分支!

即,問題是隻有一個Gemfile.lock的文件到developmaster部門之間四處走動。

回答

0

This answer解決了我的問題。我創建了一個名爲.rails-env的文件,其中包含一個指定環境捆綁器應該使用的簡單字符串。該文件必須保存在存儲庫之外。如果不存在,bundler默認爲開發。

問題的第二部分是我必須調整我的部署過程。我創建了一個小腳本,在開發環境下運行bundle update,並在生產之前等待按鍵。一旦生成了開發Gemfile.lock文件,我將更改推送到我的develop存儲庫分支。在生產完成後,我推送到master