ruby - Aggiorna solo una gemma con il bundler



gemfile (5)

Io uso bundler per gestire le dipendenze nella mia app per rotaie e ho un gioiello ospitato in un repository git incluso come segue:

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

Per aggiornare questa gemma, bundle update ma aggiorna anche tutte le gemme menzionate in Gemfile. Allora, qual è il comando per aggiornare solo una gemma specifica?

https://ffff65535.com


Devi semplicemente specificare il nome della gemma sulla riga di comando:

bundle update gem-name

Ho usato l' bundle update --source mi bundle update --source da molto tempo ma ci sono degli scenari in cui non funziona. Fortunatamente, c'è una gemma chiamata bundler-patch che ha lo scopo di risolvere questa mancanza.

Ho anche scritto un breve post sul blog su come usare la bundler-patch e perché l' bundle update --source non funziona in modo coerente. Inoltre, assicurati di dare un'occhiata a un post di chrismo che spieghi dettagliatamente cosa fa l'opzione --source .


Sembra che con le versioni più recenti di bundler (> = 1.14) sia:

bundle update --conservative gem-name

Here puoi trovare una buona spiegazione sulla differenza tra

Aggiorna sia gem e dipendenze:

bundle update gem-name 

o

Aggiorna esclusivamente la gemma:

bundle update --source gem-name

insieme ad alcuni buoni esempi di possibili effetti collaterali.

Aggiornare

Come dice la risposta di @Time, a partire da Bundler 1.14 il modo ufficialmente supportato da questo è con l' bundle update --conservative gem-name .


bundler update --source gem-name aggiornerà l'hash di revisione in Gemfile.lock che puoi confrontare con l'ultimo hash del commit di quel ramo git (master di default).

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

può essere trovato su github.com/organization/repo-name/commits/c810f4a2 (ho usato l'hash del commit di 8 caratteri di stenografia per l'url)





bundler