[RUBY] Repository Das angegebene Juwel ist im Bundle installiert, aber nicht auf die neueste Version aktualisiert

TL;DR

Wenn die gemfile nicht aktualisiert wurde, sehen Sie den Commit-Hash von revision in gemfile.lock.

console


bundle update gem-name

Machen wir das

Problem

Als ich zu fork-> PR-> merge zu der in der Firma verwendeten Bibliothek ging und versuchte, sie zu überprüfen, wurde gesagt, dass die Methode, die hinzugefügt werden sollte, undefiniert war.

Was wurde gelöst

Überprüfen Sie zunächst, was Sie verwenden können

rails_console


# respond_to?Prüft, ob eine Methode vorhanden ist
GemName respond_to? :configure #-> true
GemName respond_to? :new_added_method #-> false

#Mir ist aufgefallen, dass es keine Methode gibt, die ich in PR hätte eingeben und prüfen sollen, ob der Edelstein selbst ohne Probleme enthalten ist
GemName.added_a_lomng_time_ago_method #->Bestanden

Zu diesem Zeitpunkt bemerkte ich, dass der Inhalt der PR nicht vollständig enthalten war, und dachte, dass der HEAD möglicherweise nicht richtig ausgerichtet ist.

console


git clone [email protected]:my-org/gem-name #Klonen Sie das ursprüngliche Repository anstelle von Fork
git rev-parse HEAD #-> 00ff0012345
git rev-parse master #-> 00ff0012345(Vergewissern Sie sich, dass es mit HEAD identisch ist)

Geben Sie den Edelstein mit Commit-Hash als Test an, da er nicht falsch ausgerichtet ist

gemfile


gem 'gem-name', git: '[email protected]:my-org/gem-name', ref: '00ff0012345'

#Bundle installieren

rails_console


GemName.new_added_method #->Ich bestand!

Als ich "gemfile.lock" überprüfte, änderte sich "revision". Dies ist die Ursache …………

Danach

gemfile


gem 'gem-name', git: '[email protected]:my-org/gem-name', branch: 'master'

Aber es gab kein Problem. Nun, es wird erwartet, weil "Revision" zu HEAD wurde, als ein Commit-Hash angegeben wurde.

Was ist zu tun

Nun, die Installation basiert auf gemfile.lock, also ist es natürlich, aber ich musste Bundle Update verwenden. Ich war völlig abgelenkt von der Tatsache, dass ich das Repository direkt angegeben und völlig vergessen habe. Wenn Sie gleichzeitig mit der Bundle-Installation aktualisieren möchten, müssen Sie eine ausführbare Datei erstellen, um alles auf einmal auszuführen.

Referenz: https://stackoverflow.com/questions/8324334/bundler-always-use-latest-revision-of-git-branch-in-gemfile

Recommended Posts

Repository Das angegebene Juwel ist im Bundle installiert, aber nicht auf die neueste Version aktualisiert
Was tun, wenn die App nicht mit der neuesten Rails-Version erstellt wurde, die bei neuen Rails installiert wurde?
Ich habe die Version und die Schienen neu angegeben, aber aus irgendeinem Grund ist die neueste Version enthalten ~
Was tun, wenn Sie Ruby mit rbenv installiert haben, die Version sich jedoch nicht ändert?
[Ruby] Ihre Ruby-Version ist 2.6.3, aber Ihre Gemfile hat 2.5.8 angegeben
Ihre Ruby-Version ist 2.4.6, aber Ihre Gemfile hat 2.6.4 angegeben
Der öffentliche Schlüssel für jenkins-2.249.1-1.1.noarch.rpm ist nicht installiert
[Ruby] Verwendung von rbenv (Version `x.x.x' ist nicht installiert)
Eine Geschichte darüber, dass die Installation aufgrund von gem'ffi 'plötzlich nicht mehr gebündelt werden kann.
[Ruby] Der Edelstein sollte in Vendor / Bundle installiert sein, aber in require tritt ein Fehler auf.
Was tun, wenn FacesMessage festgelegt, aber nicht angezeigt wird?
Aktualisieren Sie auf die neueste Version, ohne die Version mit dem Gradle-Wrapper anzugeben