我可以阻止Bundler将RUBY VERSION添加到Gemfile.lock

pjm*_*rse 15 ruby bundler

每次我在命令行上运行任何gem命令时,Bundler都会坚持触摸我的Gemfile.lock文件来添加这一行:

RUBY VERSION
   ruby 2.2.2p95
Run Code Online (Sandbox Code Playgroud)

我不想将它提交到我们的存储库,因为这意味着使用不同补丁级别的Ruby 2.2.2的每个开发人员都将与我进行一次提交战争.(我已经将自己辞去了类似的问题BUNDLED_WITH.)但是除非我确实提交了那条线,否则我无法部署,因为我们的部署通过rake任务运行并运行部署线程Bundler来添加此块,于是部署过程说,"等待!您的工作树很脏!您可能正在部署不完整的更改!!!! 1!" (好吧,不是字面意思,但你明白了.)

我可以告诉Bundler离开RUBY VERSION(并且,理想情况下BUNDLED_WITH),Gemfile.lock所以我们不必做这种荒谬的舞蹈吗?

(如何防止Bundler向Gemfile.lock添加平台信息似乎是同一个问题,但是没有答案,natch.)

MrT*_*rus 9

我不这么认为,但也许没关系:

从2.1.0开始,Ruby不再具有针对给定版本的多个补丁级别版本.请参阅已接受的答案关于版本号如何适用于MRI Ruby?

2.2.2p95是唯一将发布的2.2.2补丁级别.'p95'仅表示自2.2.0以来已有95次提交.

因为你的整个团队无论如何都会在2.2.2上,所以不应该在你的Gemfile.lock中留下问题.(只要每个人都将Bundler更新为执行此操作的版本.否则,添加和删除ruby版本时仍会存在冲突.)

  • 然而事实证明,无论如何我们都会遇到提交战争,不是在 Ruby 版本上,而是在不同版本的 Bundler 添加和删除这个块上。*叹* (3认同)