What happens when modifying Gemfile.lock directly?
- by Mik378
Since the second time of bundle install execution, dependencies are loaded from Gemfile.lock when Gemfile isn't changed.
But I wonder how detection of changes is made between those two files.
For instance, if I'm adding a new dependency directly into Gemfile.lock without adding it into Gemfile (as opposed to the best practice since Gemfile.lock is auto-generated from Gemfile), would a bundle install consider Gemfile as changed ?
Indeed, does bundle install process compares the whole Gemfile and Gemfile.lock trees in order to detect changes?
If it is, even if I'm adding a dependency directly to Gemfile.lock, Gemfile would be detected as changed (since different) and would re-erase Gemfile.lock (so losing the added dependency...)
What is the process of bundle install since the launch for the second time ?
To be more clear, my question is:
Are changes based only from Gemfile ? That means bundler would keep a Gemfile snapshot of every bundle install execution number N and merely compares it to the bundle install execution N+1 ?
Or none snapshot are created in bundler memory and bundler makes a comparison with Gemfile.lock each time to detect if Gemfile must be considered as changed.