wake-up-neo.com

Aktualisieren Sie nur ein Juwel mit Bundler

Ich verwende Bundler, um Abhängigkeiten in meiner Rails App zu verwalten, und ich habe ein Juwel in einem Git-Repository wie folgt enthalten:

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

Um dieses Juwel zu aktualisieren, führe ich bundle update aktualisiert aber auch alle in Gemfile genannten Edelsteine. Also, was ist der Befehl, um nur einen bestimmten Edelstein zu aktualisieren?

215
sailor

hier Hier finden Sie eine gute Erklärung für den Unterschied zwischen

Aktualisiere sowohl Juwel als auch Abhängigkeiten:

bundle update gem-name 

oder

Aktualisiere exklusiv den Edelstein:

bundle update --source gem-name

zusammen mit einigen schönen Beispielen möglicher Nebenwirkungen.

Aktualisieren

Wie @ Tims Antwort besagt, ist ab Bundler 1.14 der offiziell unterstützte Weg dorthin mit bundle update --conservative gem-name.

324
mseebacher

Um dies zu tun, führen Sie den folgenden Befehl aus:

bundle update --source gem-name
183
dukz

Sie müssen lediglich den Edelsteinnamen in der Befehlszeile angeben:

bundle update gem-name
23
Brandan

Es scheint, dass es mit neueren Versionen von Bundler (> = 1.14):

bundle update --conservative gem-name
22
Tim

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

Dies funktioniert auch für Abhängigkeiten.

4
Niko

Ich habe bundle update --source Ich selbst seit langer Zeit, aber es gibt Szenarien, in denen es nicht funktioniert. Zum Glück gibt es einen Edelstein namens bundler-patch welches das Ziel hat, dieses Manko zu beheben.

Ich schrieb auch ein kurzes Blogpost über die Verwendung von bundler-patch und warum bundle update --source funktioniert nicht konsequent. Schauen Sie sich auch einen Beitrag von chrismo an, der ausführlich erklärt, was das --source Option tut.

2
Kitto

bundler update --source gem-name aktualisiert den Revisions-Hash in Gemfile.lock, den Sie mit dem letzten Commit-Hash dieses Git-Zweigs vergleichen können (standardmäßig master).

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

finden Sie unter github.com/organization/repo-name/commits/c810f4a2 (Ich habe einen 8-stelligen Commit-Hash für die URL verwendet.)

0
shushugah