Обновите только один камень со связкой

Я использую bundler для управления зависимостями в моем приложении rails, и у меня есть жемчужина, размещенная в репозитории git, в который включены следующие:

gem 'gem-name', :git => 'path/to/my/gem.git'

Чтобы обновить этот камень, я выполняю bundle update, но он также обновляет все драгоценные камни, упомянутые в Gemfile. Итак, что такое команда для обновления только одного конкретного драгоценного камня?

Ответ 1

Here вы можете найти хорошее объяснение разницы между

Обновите оба драгоценных камня и зависимости:

bundle update gem-name 

или

Обновление исключительно драгоценного камня:

bundle update --source gem-name

вместе с некоторыми хорошими примерами возможных побочных эффектов.

Update

Как говорит @Tim ответ, как и у Bundler 1.14, официально поддерживаемый способ это с bundle update --conservative gem-name.

Ответ 2

Чтобы сделать это, выполните следующую команду:

bundle update --source gem-name

Ответ 3

Вам просто нужно указать имя gem в командной строке:

bundle update gem-name

Ответ 4

Похоже, что с более новыми версиями bundler ( >= 1.14) это:

bundle update --conservative gem-name

Ответ 5

Я использовал bundle update --source сам в течение длительного времени, но есть сценарии, где это не работает. К счастью, есть драгоценный камень под названием bundler-patch, целью которого является устранение этого недостатка.

Я также написал короткое сообщение о том, как использовать bundler-patch и почему bundle update --source не работает последовательно. Кроме того, не забудьте проверить сообщение от chrismo, в котором подробно объясняется, что делает опция --source.

Ответ 6

bundle update gem-name [--major|--patch|--minor]

Это также работает для зависимостей.

Ответ 7

bundler update --source gem-name обновит хэш-код ревизии в Gemfile.lock, который вы можете сравнить с последним хэшем фиксации этой ветки git (по умолчанию основной).

GIT remote: [email protected]:organization/repo-name.git revision: c810f4a29547b60ca8106b7a6b9a9532c392c954

можно найти в github.com/organization/repo-name/commits/c810f4a2 (я использовал сокращенный 8-символьный хеш-код для URL-адреса)