ruby – 直接修改Gemfile.lock会怎么样?

从第二次捆绑安装执行以来,只要Gemfile没有改变,从Gemfile.lock加载依赖关系.

但是我想知道如何检测这两个文件间的变化.

例如,如果我直接在Gemfile.lock中添加一个新的依赖关系,而不将其添加到Gemfile中(与Gemfile.lock从Gemfile自动生成的最佳做法相反),bundle安装是否会将Gemfile改为?

事实上,捆绑安装过程是否比较了整个Gemfile和Gemfile.lock树以检测更改?

如果是,即使我直接向Gemfile.lock添加依赖关系,Gemfile将被检测为已更改(因为不同),并将重新擦除Gemfile.lock(从而丢失添加的依赖关系…)

从第二次发布以来,捆绑安装的过程是什么?

更清楚的是,我的问题是:

是否仅基于Gemfile进行更改?这意味着捆绑包将保留每个捆绑包的Gemfile快照安装执行数N,并将其与捆绑安装执行N 1进行比较.

或者在bundler内存中不创建快照,并且bundler与Gemfile.lock进行比较,以便每次检测Gemfile是否必须被视为已更改.

解决方法

如果您编辑Gemfile.lock,则Rails应用程序将依赖于另一个版本的宝石…在这种情况下,您的gem版本系统的完整性将被破坏.直接编辑Gemfile.lock文件一个非常糟糕的主意.

请,成为一个好人,只与Gemfile交易

相关文章

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