有一个共同的模式:
有许多开发人员在一个项目上工作,Gemfile(.lock)通过SCM共享.但是,如果一些开发人员想要使用不同的工具进行测试和开发呢?怎么做?
问题是,当您将条件部分放入Gemfile时,每个开发人员的Gemfile.lock也会有所不同,因此每次提交SCM时都会遇到冲突.
有一些简单,广泛认可的解决方案吗?
Aug*_*aas 19
我喜欢在我的Gemfile中有这个:
local_gemfile = File.dirname(__FILE__) + "/Gemfile.local"
if File.file?(local_gemfile)
  require local_gemfile
end
我在gitignore中也有Gemfile.local和Gemfile.lock.我知道我不是"应该",但我不认为这些警告(例如你在问题中提到的那些)是值得的.
截至2011年3月3日更新Bundler 1.0.10
local_gemfile = File.dirname(__FILE__) + "/Gemfile.local.rb"
if File.file?(local_gemfile)
  self.instance_eval(Bundler.read_file(local_gemfile))
end
我不得不在Rails 3和Bundler 1.0.10中使用它.
我想这个install_if方法(最近添加的)解决了这个问题:
install_if -> { `whoami`.strip == 'jakub' } do
  gem "pry-rails"
end
请参阅http://bundler.io/v1.14/man/gemfile.5.html#INSTALL_IF