2010-11-23 26 views
22

Al tratar de "maestro git push heroku", sigo obteniendo el error:Gemfile.lock no protegido - Heroku

Counting objects: 266, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (239/239), done. 
Writing objects: 100% (266/266), 222.68 KiB, done. 
Total 266 (delta 55), reused 0 (delta 0) 

-----> Heroku receiving push 
-----> Rails app detected 
-----> Detected Rails is not set to serve static_assets 
     Installing rails3_serve_static_assets... done 
-----> Gemfile detected, running Bundler version 1.0.3 
     Unresolved dependencies detected; Installing... 
     Using --without development:test 
     You have modified your Gemfile in development but did not check 
     the resulting snapshot (Gemfile.lock) into version control 

     You have deleted from the Gemfile: 
     * version: 1.0.6 
     FAILED: http://docs.heroku.com/bundler 
!  Heroku push rejected, failed to install gems via Bundler 

error: hooks/pre-receive exited with error code 1 
To [email protected]:freezing-frost-65.git 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to '[email protected]:freezing-frost-65.git' 

He intentado añadir Gemfile y Gemfile.lock a git, pero en vano. Intenté eliminar el directorio .bundle y Gemfile.lock pero el mismo error.

+0

Relacionados: http://stackoverflow.com/questions/14034561/should-gem-file-lock-be-committed-to-source-control-on- windows – ripper234

Respuesta

6

Se deben incluir los archivos Gemfile y Gemfile.lock en el repositorio de git. Asegúrate de no ignorarlos en el archivo .gitignore.

Además, asegúrese de estar utilizando Bundler> = 1.0.0 en su máquina local para generar el Gemfile.lock. Si utiliza una versión desactualizada, como Bundler 0.9x, fallará.

Por último pero no menos importante, actualice su Gemfile.lock si tiene uno.

$ cd /path/to/project 
$ bundle update 
+0

Hice la actualización del paquete y mi .gitignore no tiene Gemfile o Gemfile.lock en él. – Ved

+0

paquete -v Bundler versión 1.0.6 – Ved

+1

También https: // github.com/antani/socal muestra ambos archivos en el repositorio. – Ved

15

Hay un problema con la versión 1.0.6 bundler Tiene que ejecutar "actualización joya bundler" en el equipo de desarrollo para actualizar bundler a 1.0.7. Luego debe ejecutar la actualización del paquete en su aplicación para generar un nuevo archivo Gemfile.lock. Verás que se actualiza Gemfile.lock. Confirma este nuevo Gemfile.lock y presiona a heroku nuevamente.

+0

Aditya, eso es correcto. Acabo de eliminar la etiqueta de la versión y las cosas funcionaron bien para mí. Pero intentaré este enfoque también. Gracias. – Ved

+0

hombre dulce. ¡Gracias! – s84

+0

Luego necesita ejecutar la actualización del paquete en su aplicación para generar un nuevo archivo Gemfile.lock. –

8

me fijo mío abriendo Gemfile.lock y eliminación de las dos líneas siguientes:

PLATFORMS 
    x86-mingw32 

por lo que ahora sólo hay que hacer un script que agrupa a continuación, quita que desde el archivo de bloqueo.

+0

¡Esto funcionó para mí! Parece que Heroku ignorará tu Gemfile. El bloqueo de estas líneas está presente. – automagic

3

Eliminé la línea "mingw" bajo PLATFORMS en mi archivo Gemfile.lock, agregué y me comprometí con git, lo empujé a git, luego lo puse todo en heroku y aparentemente funciona ahora.

0

En su directorio applicaton, en el bin subdirectorio modificar los archivos

bin/bundle 
bin/rails 
bin/rake 

En lugar de

'#!/usr/bin/env ruby.exe 

debe ser

'#!/usr/bin/env ruby 

(gracias a post anterior)

Asegúrate de que no haya referencias a las ventanas en el archivo gemfile.lock: solo se pueden eliminar.

Entonces

git push heroku master 

Si todavía hay problemas del consumo de heroku logs (copiar texto a un editor de texto hace que sea más fácil de cortar y pegar para las soluciones).