Bundler: всегда используйте последнюю версию ветки git в Gemfile - PullRequest
12 голосов
/ 30 ноября 2011

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

gem 'magic_beans', :git => "git@git.example.com:magic_beans.git', :branch => 'super_beans'

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

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

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

Ответы [ 4 ]

20 голосов
/ 30 ноября 2011

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

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

bundle update magic_beans

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

gem "rails"

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

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

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

1 голос
/ 11 февраля 2015

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

bundle update magic_beans --source magic_beans

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

1 голос
/ 30 ноября 2011

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

Это поможет?

0 голосов
/ 11 июня 2018

delete .gemlock - это то, что у меня сработало: /

...