应该将Gemfile.lock提交到Windows上的源代码管理吗?

rip*_*234 13 ruby windows ruby-on-rails heroku

Ruby newb在这里.

我通过rubyinstaller下载ruby,做了gem install rails,解决了一些缺少的库,最后分叉了我想要处理的ruby项目.

在接触任何东西之前,我看到我的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
Run Code Online (Sandbox Code Playgroud)

所有修改后的行似乎都与Windows相关.这个答案似乎表明我不应该gitignore Gemfile.lock(它已经承诺了我克隆的repo无论如何).这个答案意味着如果我提交并将其推送到heroku,我可能会遇到错误(这是有道理的,因为我不希望我的应用程序依赖于Windows特定的文件).

那么,这是什么?我该如何解决?我应该从我的仓库中删除Gemfile.lock吗?

Azo*_*olo 3

上次我用 Windows 推送 Heroku 时,Gemfile.lock它处理得相当优雅。我不记得它是否失败并重建Gemfile.lock或只是剥离了二进制宝石标签。

我看到有两个可行的选择。
一是假设这种行为不会出现问题。这意味着使用严格的 gem 版本要求或bundle在推送之前更新并确认一切正常。

:platform另一种方法是在 Gemfile 中使用该标志。我不会推荐这样做,但它应该强制关闭源代码并在本地编译 gem。这意味着任何外部依赖项都需要可用。对于很多二元宝石(如pggem),这不是一件容易的事。对于其他一些宝石来说,这几乎是不可能的。再次,我不建议这样做。