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