Bundler: всегда используйте последнюю версию ветки git в Gemfile

У меня есть Gemfile с частным репо git в следующем формате:

gem 'magic_beans', :git => "[email protected]:magic_beans.git', :branch => 'super_beans'

Когда я bundle install, Gemfile.lock привязывает его к конкретной ревизии SHA.

Могу ли я получить связку, чтобы всегда проверять и использовать последнюю фиксацию SHA и/или обновлять Gemfile.lock? Обратите внимание, что при отправке обновлений в ветку super_beans я не изменяю версию gem.

В идеале, каждый раз, когда я запускаю bundle, он проверяет upstream git repo для более новой ревизии SHA ветки.

Ответ 1

Это не работает пакет. Дело в том, чтобы обеспечить бесшовное управление версиями. (в частности, вы точно знаете, какая версия кода будет развернута в любой момент времени).

Если требуется последняя версия, вы должны просто запустить.

bundle update magic_beans

Это точно такая же функциональность, как если бы вы просто сказали

gem "rails"

Я бы предположил, что если у вас есть ряд конкретных вещей, которые вы хотите обновить затем добавьте пользовательский двоичный файл (скажем, исполняемый файл с именем bundle_update)

#!/usr/bin/env bash
bundle install
bundle update magic_beans

Затем просто сделайте ./bundle_update, если вы хотите обновить эти вещи.

Ответ 2

Вы можете запустить bundle update для обновления всех или конкретных драгоценных камней до их последней доступной версии, как указано в docs.

Помогло бы?

Ответ 3

После поиска документов я наконец нашел волшебный способ сделать это:

bundle update magic_beans --source magic_beans

То есть, чтобы обновить драгоценный камень magic_beans, но не касаться других заблокированных драгоценных камней. Документ об этом: http://bundler.io/man/bundle-update.1.html