Desde la segunda vez de la ejecución de bundle install
, las dependencias se cargan desde Gemfile.lock siempre que no se modifique Gemfile.¿Qué sucede al modificar Gemfile.lock directamente?
Pero me pregunto cómo se realiza la detección de cambios entre esos dos archivos.
Por ejemplo, si estoy agregando una nueva dependencia directamente en Gemfile.lock sin agregarlo a Gemfile (a diferencia de la mejor práctica ya que Gemfile.lock se genera automáticamente desde Gemfile), un bundle install
consideraría Gemfile como cambiado?
De hecho, ¿el proceso bundle install
compara todos los árboles Gemfile y Gemfile.lock para detectar cambios?
Si es así, incluso si estoy añadiendo una dependencia directa de Gemfile.lock, Gemfile se detectaría tan cambiado (ya que es diferente) y volvería a borrar Gemfile.lock (por lo que la pérdida de la dependencia añadido ...)
¿Cuál es el proceso de bundle install
desde su lanzamiento por segunda vez?
Para ser más claro, mi pregunta es:
se producen cambios basan sólo de Gemfile? Eso significa que bundler mantendría una instantánea de Gemfile de cada número de ejecución N bundle install
y simplemente lo compararía con la ejecución N + 1 de bundle install
.
O no se crean instantáneas en la memoria de bundler y bundler realiza una comparación con Gemfile.lock cada vez para detectar si se debe considerar que Gemfile ha cambiado.
simplemente elimine el archivo Gemlock, ponga sus gemas requeridas en el archivo gem y ejecute 'bundle install'. Eso es. No creo que sea una buena idea pensar mucho sobre el archivo de gemlock. ;) – uday
@uDaY Estoy de acuerdo contigo pero tengo curiosidad sobre el proceso bajo el capó de la instalación del paquete :) – Mik378
¿Has leído [esto] (http://gembundler.com/rationale.html) y [esto] (http://gembundler.com/man/bundle-install.1.html)? –