【发布时间】:2012-08-19 11:17:36
【问题描述】:
我一直在研究 Bundler 的页面和 RubyGem 的页面(以及 SO 帖子),但似乎无法弄清楚这一点。
在 Gemfile 中,您可以向 Bundler 指定要使用的 Gem 版本。这就是我所知道的所有真实情况......剩下的就是我猜测幕后发生的事情。
所以看起来 Bundler 会转到 RubyGems.org 或其他一些来源,以找出 Gem 的版本、依赖项和源文件的位置。这是我的大假设。
然后,Bundler 很可能会转到代码存储库(很可能是 Github)来下载源代码。这就是我坚持的地方。如果有人指定了 1.0.0 版本,Bundler 怎么知道哪个 Git 提交对应于 1.0.0 版本?
-Bundler 是否通过标签?
- 或者 Bundler 是否去头部一个与版本号命名相同的分支?
-或者是否在 RubyForge 某处指定了特定的提交?
-或者是直接通过 RubyForge 获得的源代码快照?
我想知道是否我将 Gem 指定为 1.0.0 并进行捆绑安装。 Bundle 在 1.0.0 分支的头部进行提交(如果 Bundler 是这样做的),那么如果该分支上有后续提交(但版本保持不变),这是否意味着我会有不同的版本那个 Gem 比在我之后捆绑的人(在分支上的后续提交之后)?
bundler 将版本解析为特定的提交是有道理的,但是 bundler 如何选择提交?因为 1.0.0 版本可以存在于多个提交中。
感谢您的宝贵时间!
【问题讨论】:
标签: github gem version bundler rubyforge