gpt4 book ai didi

ruby-on-rails - 使用从同一存储库 bundle 的 gem 管理 Gemfile.lock

转载 作者:行者123 更新时间:2023-12-01 22:28:54 24 4
gpt4 key购买 nike

情况是这样的。我正在开发一个大型 Rails 3.2.13 应用程序(Ruby 1.9.3、Bundler 1.3.5)。我们最近开始通过将一些组件分解为 gem/engine 来减少这个应用程序的单一性。但是,我们将源代码保存在同一个 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 在开发人员之间不再一致。每当我从源代码管理中获取更改并运行 rspecrails server 或其他任何内容时,我都会得到修改后的 Gemfile.lock ,其中差异如下所示:

 PATH
- remote: /Users/OTHER_DEVELOPER/PATH_TO_APP_SOURCE/gems/engine1
+ remote: /Users/ME/APPNAME/gems/engine1

我们一直遵循我们认为的最佳实践,将 Gemfile.lock 检查到源代码管理中,但现在这导致了 git 的麻烦。以前有人处理过这个问题吗?有什么解决方案吗?

最佳答案

这里的问题是您以非预期的方式使用了 gem。它们是 gem,而不是 DLL。

如果您想要 gem 方法,请将它们托管在专用服务器上并在 GEMFILE 中引用该服务器。

如果您想在 ruby​​ 中使用类似 DLL 的方法,只需为每个库使用一个文件夹即可。

关于ruby-on-rails - 使用从同一存储库 bundle 的 gem 管理 Gemfile.lock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16838173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com