Со второго раза выполнения bundle install зависимости загружаются из Gemfile.lock, пока Gemfile не изменяется.
Но мне интересно, как происходит обнаружение изменений между этими двумя файлами.
Например, если я добавляю новую зависимость непосредственно в Gemfile.lock, не добавляя ее в Gemfile (в отличие от лучшей практики, поскольку Gemfile.lock автоматически генерируется из Gemfile), будет ли bundle install считать Gemfile как изменено?
Действительно, обрабатывает ли процесс bundle install все деревья Gemfile и Gemfile.lock для обнаружения изменений?
Если это так, даже если я добавляю зависимость напрямую к Gemfile.lock, Gemfile будет обнаружен как измененный (с другой) и будет повторно удалять Gemfile.lock(так что потеряет добавленную зависимость...)
Каков процесс bundle install с момента запуска во второй раз?
Чтобы быть более ясным, мой вопрос:
Являются ли изменения основаны только на Gemfile? Это означает, что связующий будет хранить снимок Gemfile каждого номера выполнения bundle install N и просто сравнивает его с bundle install выполнением N + 1?
Или никакие снимки не создаются в памяти связки, а bundler делает сравнение с Gemfile.lock каждый раз, чтобы определить, следует ли рассматривать Gemfile как измененный.