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?
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.
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
.
Pour ce faire, exécutez la commande suivante:
bundle update --source gem-name
Vous devez simplement spécifier le nom de la gemme sur la ligne de commande:
bundle update gem-name
Il semble qu'avec les nouvelles versions de bundler (> = 1.14):
bundle update --conservative gem-name
bundle update gem-name [--major|--patch|--minor]
Cela fonctionne aussi pour les dépendances.
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.
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)