【发布时间】:2013-11-25 07:57:47
【问题描述】:
我有一个正在本地开发的 gem,供项目使用。
如果我在 中使用 path 指定 gem 的位置,我可以进行更改并且项目会获取新代码:
gem 'example', :path => "~/path/to/gems/example"
但是,当我推送到 Heroku 时,捆绑失败,因为 Heroku 无法访问我本地计算机上的 gem 源。
所以我可以将 gem 源推送到远程仓库并将 gem 源指向那里:
gem 'example', :github => 'example/example', :branch => 'example_feature'
但是我现在需要将更改推送到此存储库,然后更新 gem 以获取我的项目中的新更改:
$ cd ~/path/to/gems/example
$ git c -a -m "Update gem"
$ git push origin example_feature
$ cd ~/path/to/projects/project
$ gem update example
我可以通过为我的本地 repo 设置本地覆盖来稍微减轻痛苦:
$ bundle config local.example ~/path/to/gems/example
但是如果我想在我的项目中进行新的更改,我仍然需要在每次更改 gem 源时将更改的文件添加到 git、commit 和 $ gem update example。
有什么方法可以让我的项目自动获取本地更改(就像我使用 path 时所做的那样),但仍然在生产中使用远程仓库?
【问题讨论】:
-
我几天前就被这个问题困住了。
bundle config local.gem /path/to/gem是我所知道的最好的方式。
标签: ruby-on-rails ruby gem bundle gemfile