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
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.
Ü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.
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