web-dev-qa-db-fra.com

Mettre à jour un seul bijou avec bundler

J'utilise bundler pour gérer les dépendances dans mon application Rails, et j'ai un bijou hébergé dans un référentiel git inclus comme suit:

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

Pour mettre à jour cette gemme, j'exécute bundle update mais il met également à jour toutes les gemmes mentionnées dans Gemfile. Alors, quelle est la commande pour mettre à jour un seul joyau spécifique?

215
sailor

Ici vous pouvez trouver une bonne explication sur la différence entre

Mettez à jour la gemme et les dépendances:

bundle update gem-name 

ou

Mettre à jour exclusivement la gemme:

bundle update --source gem-name

avec quelques beaux exemples d'effets secondaires possibles.

Mise à jour

Comme le dit la réponse de @ Tim, à partir de Bundler 1.14, la méthode officiellement prise en charge consiste à utiliser bundle update --conservative gem-name.

324
mseebacher

Pour ce faire, exécutez la commande suivante:

bundle update --source gem-name
183
dukz

Vous devez simplement spécifier le nom de la gemme sur la ligne de commande:

bundle update gem-name
23
Brandan

Il semble qu'avec les nouvelles versions de bundler (> = 1.14):

bundle update --conservative gem-name
22
Tim

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

Cela fonctionne aussi pour les dépendances.

4
Niko

J'ai utilisé _bundle update --source_ moi-même pendant longtemps, mais il existe des scénarios dans lesquels cela ne fonctionne pas. Heureusement, il existe une gemme appelée bundler-patch qui a pour objectif de remédier à cette lacune.

J'ai aussi écrit un court article article de blog sur la façon d'utiliser _bundler-patch_ et pourquoi _bundle update --source_ ne fonctionne pas de manière cohérente. Aussi, assurez-vous de vérifier n post de chrismo qui explique en détail ce que l'option _--source_ fait.

2
Kitto

bundler update --source gem-name mettra à jour le hachage de révision dans Gemfile.lock que vous pourrez comparer au dernier hachage de validation de cette branche git (maître par défaut).

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

peut être trouvé à github.com/organization/repo-name/commits/c810f4a2 (j'ai utilisé un raccourci de hachage de 8 caractères pour l'url)

0
shushugah