这是情况。我在一个大型 Rails 3.2.13 应用程序(Ruby 1.9.3,Bundler 1.3.5)上工作。我们最近开始通过将一些组件分解为 gems/engines 来减少这个应用程序的整体性。但是,我们将源代码保存在同一个 git 存储库中。所以我们有一个文件结构,如:
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
在差异看起来像这样的地方得到修改:
PATH
- remote: /Users/OTHER_DEVELOPER/PATH_TO_APP_SOURCE/gems/engine1
+ remote: /Users/ME/APPNAME/gems/engine1
我们一直遵循我们认为是检查Gemfile.lock
源代码控制的最佳实践,但现在这导致了 git 头痛。以前有没有人处理过这个问题?任何解决方案的想法?