2011-01-14 2 views
35

Esiste un modo per eseguire bundle update in modalità di simulazione, simile al flag -p (finto) per i generatori di Rails o cap - n (bandiera a secco)?Can bundler mi mostra quali gemme in Gemfile hanno versioni più recenti (ad esempio dry-run di aggiornamento bundle)

sto immaginando qualcosa di simile:

$> bundle update -p 
Fetching source index for http://rubygems.org/ 
The following gems have updated versions: 
... 
list of gems 
... 
+0

Stavo cercando qualcosa del genere anche solo pochi giorni fa, ma finora non ho avuto fortuna. Speriamo che presto abbiano qualcosa di simile se non esiste ancora. –

risposta

48

Bundler 1.1 ha introdotto una nuova funzionalità 'superata', che è esattamente quello che stavo cercando. Pat Shaughnessy ha un ottimo write-up sulle nuove funzionalità. Nelle sue parole, bundle outdated:

visualizza le gemme sarebbe scaricare e installare, ma senza in realtà farlo. Questo mi dà la libertà di ispezionare l'elenco e aggiornare solo le gemme che vorrei.

Questo dovrebbe rendere più semplice vedere quali gemme sono dovute per un aggiornamento senza effettivamente modificare le gemme di origine e locali. Grazie Bundler!

+7

Sembra che 'bundle superdated' mostrerà le nuove versioni di gems, ma non terrà conto dei limiti di versione specificati nel tuo' Gemfile', quindi potrebbe non visualizzare gli stessi risultati di un aggiornamento completo. Ad esempio, ho 'gem 'rails', '~> 3.1.3'' specificato nel mio Gemfile, e' bundle update rails' funziona come previsto, ma 'bundle outdated' mostra' * rails (3.2.8> 3.1. 3) '. –

+2

@zole, che può essere visto come un vantaggio o uno svantaggio. Per esempio, di solito specifichi le versioni gem per ogni gemma, quindi 'bundle obsoleto 'sarebbe inutile per me se guardasse a quelle versioni. Ma per qualcuno come te che limita solo le versioni di alcune gemme, starai meglio con il controllo della versione. Quindi penso che un argomento facoltativo sarebbe la soluzione per entrambi i nostri casi. – Cristian

+6

Sembra che l'opzione '--strict' sia stata aggiunta in version bundler v1.5. L'ho appena provato e sembra funzionare come mi aspettavo @zole. Fonte: http://bundler.io/v1.7/bundle_outdated.html – complistic

4
$ bundle update 
$ git diff Gemfile.lock 
$ git checkout Gemfile.lock 
+0

Questo non è affatto vicino alla risposta alla domanda. OP chiede di "bundler"; questa risposta fornisce una soluzione hacky che non ha nulla a che fare con le funzionalità di bundler. –

+1

Il tuo commento è sbagliato. Manca sia il punto - no, bundler non ha questo commento, ma ecco una soluzione - e il contesto - questa risposta è stata scritta prima di 'bundle superate 'o qualsiasi comando simile era in giro. – yfeldblum