ruby-on-rails – 应该将Gemfile.lock提交到Windows上的源代码控制?

Ruby newb这里.

我通过rubyinstaller下载ruby,gem安装rails,解决了几个缺少的库,最后分了ruby project我想要工作.

在触摸任何东西之前,我看到我的Gemfile.lock已修改

diff --git a/Gemfile.lock b/Gemfile.lock
index aefda68..9ebccba 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -46,6 +46,7 @@ GEM
     diff-lcs (1.1.3)
     erubis (2.7.0)
     eventmachine (1.0.0)
+    eventmachine (1.0.0-x86-mingw32)
     execjs (1.4.0)
       multi_json (~> 1.0)
     hike (1.2.1)
@@ -65,11 +66,17 @@ GEM
     multi_json (1.3.6)
     multi_xml (0.2.2)
     pg (0.14.1)
+    pg (0.14.1-x86-mingw32)
     polyglot (0.3.3)

...

 PLATFORMS
   ruby
+  x86-mingw32

所有修改后的行似乎都是Windows相关的. This answer似乎表明我不应该gitignore Gemfile.lock(它已经承诺到我克隆的repo). This answer意味着我可能会收到错误,如果我提交&推送到heroku(有意义,因为我不希望我的应用程序依赖于Windows特定的文件).

那是什么呢我该如何解决?我应该从我的repo中删除Gemfile.lock吗?

解决方法

最后一次我用Windows Gemfile.lock推送到Heroku,它非常优雅地处理它.我不记得如果它失败并重建了Gemfile.lock或者刚刚剥离了二进制gem标签.

我看到有两个可行的选择.
一个是假设这个行为不会是一个问题.这意味着使用严格的宝石版本要求或更新您的捆绑包,并确认所有的工作,然后再推.

一个是使用:platform flag in your Gemfile.我不会推荐这个,但它应该强制源码,并在本地编译宝石.这意味着需要任何外部依赖关系.有很多二进制宝石(如宝石宝石),这不是一件容易的事情.与其他一些宝石,几乎是不可能的.再次,我不建议这样做.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...