Bundler:总是在Gemfile中使用最新版本的git branch

时间:2011-11-30 10:19:43

标签: ruby git bundler gemfile

我有一个带有私有git repo的Gemfile,格式如下:

gem 'magic_beans', :git => "git@git.example.com:magic_beans.git', :branch => 'super_beans'

当我bundle install时,Gemfile.lock将其锁定到特定的SHA修订版。

我可以让bundler始终检查并使用最新的SHA提交和/或更新Gemfile.lock吗?请注意,当我将更新推送到super_beans分支时,我不会修改gem版本。

理想情况下,每次运行bundle时,它都会检查上游git repo以获取该分支的较新SHA版本。

4 个答案:

答案 0 :(得分:20)

这不是捆绑器的工作原理。 关键是允许依赖项的无缝版本控制。 (特别是因此您确切地知道在任何给定时间部署的代码版本)。

如果想要最新版本,您应该运行。

bundle update magic_beans

这与您刚才说的

完全相同
gem "rails"

我建议,如果你想要更新一系列具体的东西 然后添加一个自定义二进制文件(比如一个名为bundle_update的可执行文件)

#!/usr/bin/env bash
bundle install
bundle update magic_beans

如果您想要更新这些内容,请执行./bundle_update

答案 1 :(得分:1)

您可以bundle update运行{{1}}将所有或特定宝石更新为其最新可用版本,如docs中所述。

那会有帮助吗?

答案 2 :(得分:1)

在搜索完文件后,我终于找到了做到这一点的神奇方法:

bundle update magic_beans --source magic_beans

这只是为了更新magic_beans宝石,而不是触及其他锁定的宝石。关于此的文档是:http://bundler.io/man/bundle-update.1.html

答案 3 :(得分:0)

删除.gemlock对我有用:/