以下是情况。我在一个大的Rails 3.2.13应用程序(Ruby 1.9.3,Bundler 1.3.5)上工作。我们最近开始通过将某些组件分解为宝石/引擎来使这款应用程序不那么庞大。但是,我们已将源代码保存在同一个git存储库中。因此,我们有一个像文件结构:管理Gemfile.lock与来自同一存储库的gem捆绑在一起
APPNAME
|-app
|-gems
|---engine1
|---engine2
|-lib
等
随后的Gemfile看起来像:
gem 'engine1', :path => File.expand_path('../gems/engine1', __FILE__)
gem 'engine2', :path => File.expand_path('../gems/engine1', __FILE__)
到目前为止好。我的问题是Gemfile.lock
在开发者之间不再一致。每当我从获取源代码控制的变化和运行rspec
或rails server
或什么的,我得到了修改Gemfile.lock
,其中DIFF样子:
PATH
- remote: /Users/OTHER_DEVELOPER/PATH_TO_APP_SOURCE/gems/engine1
+ remote: /Users/ME/APPNAME/gems/engine1
我们一直遵循我们认为是检查我们的Gemfile.lock
的最佳实践进入源代码控制,但现在这是造成git头痛。有没有人处理过这个问题?任何解决方案的想法?
尽管这是一种很好的做法,但如果它不适合你,你总是可以选择忽略来自git的'.lock'文件。 – Kashyap
FWIW,当你开始将应用程序重构成引擎时,你会开发一个gem :) – Kashyap