相关疑难解决方法(0)

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

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吗?

ruby windows ruby-on-rails heroku

13
推荐指数
1
解决办法
2561
查看次数

如何更新Docker主机上的Gemfile.lock?

在Docker容器中使用Rails时, 几个 帖子(包括docker.com上的一个帖子)使用以下模式:

  1. DockerfileADD GemfileADD Gemfile.lock,然后RUN bundle install.
  2. 使用创建一个新的Rails应用程序docker-compose run web rails new.

由于我们RUN bundle install要构建图像,因此docker-compose build web在更新之后似乎是合适的Gemfile.

这可以在图像内部更新gemset ,但是:

Gemfile.lock泊坞窗主机将不会被更新,以反映更改Gemfile.这是一个问题,因为:

  1. Gemfile.lock 应该在您的存储库中,并且:

  2. 它应该与你的当前一致Gemfile.


所以:

如何Gemfile.lock在主机上更新,以便可以检入版本控制?

ruby-on-rails bundler docker

12
推荐指数
2
解决办法
4395
查看次数

使用 Github Pages 托管的 Jekyll 站点是否需要 gemfile.lock 文件?

最近,我开始使用 Jekyll 来构建文档站点并将其托管在 Github Pages 上。据我所知,Github Pages 的插件列表非常有限。在进行一些漏洞测试时,我发现文件Gemfile.lock容易受到 XML 外部实体 (XXE) 注入的攻击。

在我的研究中,我读到:

阅读已接受的答案后:

假设您没有编写 ruby​​gem,Gemfile.lock 应该位于您的存储库中。它用作所有所需 gem 及其依赖项的快照。这样,bundler 就不必在每次部署等时重新计算所有 gem 依赖项。

但我无法控制 Jekyll 网站。如果我理解这个过程,但 Github Pages 构建了该网站,并且如果Gemfile.lock用于 Gems 的开发,并且这不是我可以控制的,那么可以删除该文件并添加到 .gitignore 吗请纠正我?

jekyll github-pages gemfile.lock xxe

7
推荐指数
1
解决办法
2335
查看次数

为什么没有"heroku捆绑更新"?

我不明白为什么我必须更新我的gems localy并将其推送到heroku,以获得它们的更新版本?

为什么没有heroku bundle update命令?

gem ruby-on-rails heroku bundler

6
推荐指数
1
解决办法
5368
查看次数

--deployment标志需要Gemfile.lock

我花了几个小时但无法解决这个问题.

当我尝试使用我的本地rails应用程序部署到生产服务器时,capistrano我得到以下错误:

The --deployment flag requires a Gemfile.lock. Please make sure you have checked your Gemfile.lock into version control before deploying.
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题的任何想法?

我的rails应用程序文件夹使用Git进行版本控制.我已将本地git repo推送到github,并且github上有Gemfile.lock.所以它受版本控制.然而,卡尼斯特拉诺继续给出同样的错误.

Deploy.rb文件:https://gist.github.com/brahmadpk/4748991

capistrano ruby-on-rails-3

6
推荐指数
2
解决办法
6736
查看次数

应该将Ruby on Rails项目的哪些部分检入存储库?

我正在为Ruby on Rails项目建立一个新的源代码控制库.我正在使用Mercurial,我想知道我的本地目录的哪一部分要检查.

我在项目工作区中本地设置它的方式是以下文件结构:

drwxr-xr-x 7 agenadinik agenadinik 4096 2011-04-27 09:58 app
drwxr-xr-x 5 agenadinik agenadinik 4096 2011-04-27 09:58 config
-rw-r--r-- 1 agenadinik agenadinik  154 2011-04-27 09:58 config.ru
drwxr-xr-x 3 agenadinik agenadinik 4096 2011-04-29 14:12 db
drwxr-xr-x 2 agenadinik agenadinik 4096 2011-04-27 09:58 doc
-rwxrwxrwx 1 agenadinik agenadinik  781 2011-05-05 18:57 Gemfile
-rw-r--r-- 1 agenadinik agenadinik 1745 2011-05-05 18:57 Gemfile.lock
drwxr-xr-x 3 agenadinik agenadinik 4096 2011-04-27 09:58 lib
drwxr-xr-x 2 agenadinik agenadinik 4096 2011-04-27 09:58 log
drwxr-xr-x 3 agenadinik agenadinik …
Run Code Online (Sandbox Code Playgroud)

mercurial ruby-on-rails

5
推荐指数
1
解决办法
602
查看次数

Git 不会忽略 Gemfile.lock

我有一个 Gemfile.lock,git 根本不会忽略它。它在我的 gitignore 文件中(见下文),但每当我bundle install. 还有其他人遇到过这样的事情吗?提前致谢。

我的 Gitignore 看起来像这样:

/.tags*
/log
/tmp
/db/*.sqlite3
/public/system
/coverage/
/spec/tmp
**.orig
rerun.txt
Gemfile.lock
...
Run Code Online (Sandbox Code Playgroud)

git ruby-on-rails gitignore ruby-on-rails-4 gemfile.lock

0
推荐指数
1
解决办法
791
查看次数

如何使用rails中的git管理Gemfile.lock

我试图摆脱我的"未提交的更改",我的Gemfile.lock不断重新出现作为一个非暂存文件.我相信这是因为我更新了bundler,因为更改是:

- 
- BUNDLED WITH
-    1.10.5
Run Code Online (Sandbox Code Playgroud)

首先,这些不起作用,因为Gemfile.lock会更新自己:

git checkout -- Gemfile.lock

git stash save --keep-index --include-untracked
git stash drop

git reset HEAD

git clean -df
git checkout -- .
Run Code Online (Sandbox Code Playgroud)

有用的是:

git update-index --assume-unchanged Gemfile.lock
Run Code Online (Sandbox Code Playgroud)

看起来没问题,运行"git status":

On branch develop
Your branch is up-to-date with 'origin/develop'.
nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)

我无法运行"git checkout origin/existing_branch"

error: Your local changes to the following files would be overwritten by checkout:
    Gemfile.lock
Please, commit your changes or stash them before you can switch …
Run Code Online (Sandbox Code Playgroud)

ruby git ruby-on-rails gemfile.lock

-1
推荐指数
1
解决办法
2093
查看次数