TL;DR
Si le gemfile n'a pas été mis à jour, vous irez voir le hachage de commit de revision dans gemfile.lock.
console
bundle update gem-name
Faisons le
Quand je suis allé à fork-> PR-> merge dans la bibliothèque utilisée dans l'entreprise et que j'ai essayé de la vérifier, il a été dit que la méthode qui aurait dû être ajoutée n'était pas définie.
Vérifiez d'abord ce que vous pouvez utiliser
rails_console
# respond_to?Est celui qui vérifie si une méthode existe
GemName respond_to? :configure #-> true
GemName respond_to? :new_added_method #-> false
#Notez qu'il n'y a pas de méthode qui aurait dû être incluse dans PR et vérifiez si la gemme elle-même est incluse sans problème
GemName.added_a_lomng_time_ago_method #->Passé
À ce stade, j'ai remarqué que le contenu du PR n'était pas complètement inclus et j'ai considéré que le HEAD pouvait être désaligné.
console
git clone [email protected]:my-org/gem-name #Cloner le référentiel d'origine au lieu de fork
git rev-parse HEAD #-> 00ff0012345
git rev-parse master #-> 00ff0012345(Confirmez qu'il s'agit de la même chose que HEAD)
Spécifiez le gem avec le hachage de validation comme essai car il n'est pas mal aligné
gemfile
gem 'gem-name', git: '[email protected]:my-org/gem-name', ref: '00ff0012345'
#installation groupée
rails_console
GemName.new_added_method #->J'ai réussi!
Donc, quand j'ai vérifié gemfile.lock, revision a changé. C'est la cause …………
Après ça
gemfile
gem 'gem-name', git: '[email protected]:my-org/gem-name', branch: 'master'
Mais il n'y avait aucun problème. Eh bien, cela est attendu parce que revision est devenu HEAD lorsque le hachage de validation a été spécifié.
Eh bien, l'installation se fait sur la base de gemfile.lock, donc c'est naturel, mais j'ai dû utiliser bundle update. J'étais complètement distrait par le fait que j'avais spécifié le référentiel directement et complètement oublié.
Si vous souhaitez mettre à jour en même temps que l'installation du bundle, vous devez créer un fichier exécutable pour tout faire en même temps.
Référence: https://stackoverflow.com/questions/8324334/bundler-always-use-latest-revision-of-git-branch-in-gemfile
Recommended Posts