Dalla seconda volta dell'esecuzione bundle install
, le dipendenze vengono caricate da Gemfile.lock finché Gemfile non viene modificato.Cosa succede quando si modifica direttamente Gemfile.lock?
Ma mi chiedo come viene rilevata la modifica tra questi due file.
Per esempio, se io sono l'aggiunta di una nuova dipendenza direttamente in Gemfile.lock senza aggiungere in Gemfile (in contrasto con la migliore pratica in quanto Gemfile.lock è generato automaticamente da Gemfile), sarebbe un bundle install
considerare come Gemfile cambiato ?
Effettivamente, il processo bundle install
confronta gli interi alberi Gemfile e Gemfile.lock per rilevare le modifiche?
Se lo è, anche se sto aggiungendo una dipendenza direttamente a Gemfile.lock, Gemfile verrebbe rilevato come modificato (poiché diverso) e re-cancellerà Gemfile.lock (quindi perdendo la dipendenza aggiunta ...)
Qual è il processo di bundle install
dal momento del lancio per la seconda volta?
Per essere più chiari, la mia domanda è:
sono cambiamenti basati solo Gemfile? Ciò significa che bundler manterrebbe un'istantanea Gemfile di ogni numero di esecuzione N bundle install
e la confronta semplicemente con l'esecuzione N + 1 dello bundle install
?
Oppure nessun snapshot viene creato nella memoria di bundler e bundler effettua un confronto con Gemfile.lock ogni volta per rilevare se Gemfile deve essere considerato come modificato.
basta eliminare il file Gemlock, inserire le gemme richieste nel file gem ed eseguire 'bundle install'. Questo è tutto. Non penso sia una buona idea pensare molto al file gemlock. ;) – uday
@uDaY Sono d'accordo con te ma sono curioso del processo sotto il cofano dell'installazione di bundle :) – Mik378
Hai letto [questo] (http://gembundler.com/rationale.html) e [questo] (http://gembundler.com/man/bundle-install.1.html)? –