Со второго раза выполнения 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 как измененный.