当对 Gemfile 源使用“ref”选项时,bundler 是否会搜索 repo 的所有分支以查找提交?

Does bundler search all branches of a repo for the commit when using `ref` option for Gemfile source?

提问人:MicFin 提问时间:7/12/2023 更新时间:7/13/2023 访问量:24

问:

当使用 Gemfile 源选项时,bundler 是否会在存储库的所有分支中搜索提交?ref

gem 'rails', github: 'rails', ref: 'a9752dcfd15bcddfe7b6f7126f3a6e0ba5927c56'

例如,如果 or 分支上不存在提交哈希,那么如果提交存在于另一个分支上,那么 bundler 是否仍能找到提交(并且不是最新的提交,因此该选项不够)?a9752dcfd15bcddfe7b6f7126f3a6e0ba5927c56mainmasterfeature1branch:

ruby-on-rails rubygems ruby-on-rails-5 打包器 gemfile

评论


答:

0赞 Vasily Kolesnikov 7/13/2023 #1

如果提交哈希 a9752dcfd15bcddfe7b6f7126f3a6e0ba5927c56 在主分支或主分支上不存在,如果 bundler 仍能找到提交(并且不是最新的提交,因此 branch: 选项不够用)?

是的

即使没有合并到分支,Bundler 也将能够获取指定的 ref。由于 Git/GitHub 的性质,这对 Bundler 来说很容易做到:你可以通过引用来选择任何提交,而与提交合并到的分支无关。master

根据 Bundler 的源代码:

  • ref期权比期权有优势branch
  • branch期权比期权有优势tag

两者都是 ref 的符号名称,仅用于方便用户使用。branchtag