我正在尝试使用bundler
从存储库中获取旧版本。
例如,在我的宝石文件我有:
...
gem "custom-metrics", "~> 0.14.0", git: "https://gitlab.custom.co/gems/custom-metrics.git"
...
这是正确地安装了0.14.0
版本,然后我将0.14.1
版本推送到了依赖项存储库中,它仍然是相同的,正如预期的那样。
在依赖项中,我将.gemspec
文件中的版本设置为:
Gem::Specification.new do |spec|
spec.name = "custom-metrics"
spec.version = 0.14.0
...
end
如果我现在推送一个0.15.0
版本,它将停止工作。在这种情况下,我必须指定ref:
到以前的提交。所以看起来不是bundler不能安装该版本,而是它只查找最后一个MINOR版本中的版本(在这种情况下,它将在0.15.*
中)
我找不到任何医生来证实我的假设。
〉我错过了什么吗?
〉是否可以指定一个版本并确保bundler总是能找到它?
1条答案
按热度按时间eni9jsuy1#
当直接从git仓库加载gem时,Bundler会加载在ref或tag处定义的分支中找到的版本。
当您定义应该使用特定版本的gem时,Bundler将检查在存储库中找到的gem版本是否与该条件匹配。
因此,你可能不想直接从GitHub的主分支安装gem的最新版本,而是定义从特定的分支、标记或引用安装可能更容易管理。
来自Bundler文档的How to install gems from git repositories。