INFO [050fe961] Running mkdir -p /home/rails/rails-
capistrano/releases/20140114234157 on staging-rails
DEBUG [050fe961] Command: cd /home/rails/rails-capistrano/repo && ( PATH=/opt/ruby/bin:$PATH GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/rails/git-ssh.sh mkdir -p /home/rails/rails-capistrano/releases/20140114234157 )
INFO [050fe961] Finished in 0.142 seconds with exit status 0 (successful).
INFO [2dea2fe5] Running git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157 on staging-rails
DEBUG [2dea2fe5] Command: cd /home/rails/rails-capistrano/repo && ( PATH=/opt/ruby/bin:$PATH GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/rails/git-ssh.sh git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157 )
DEBUG [2dea2fe5] fatal: Not a valid object name
DEBUG [2dea2fe5] tar: This does not look like a tar archive
DEBUG [2dea2fe5] tar:
DEBUG [2dea2fe5] Exiting with failure status due to previous errors
Estoy confundido por dos cosas:
¿Por qué Capistrano se está ejecutando
git archive
aquí?
git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157
¿Por qué está
tar
fallando?
capistrano
rvm-capistrano
capistrano3
Eric Francis
fuente
fuente
Eliminar app_name / repo también solucionó este problema para mí.
fuente
Esto sucede cuando el repositorio en el servidor para implementar está dañado. Estamos hablando del repositorio git desnudo que Capistrano colocaría por defecto
/var/www/$application/repo
(para referencia de otras personas).En su caso, no tiene una función local / rama Capistrano , por lo que cuando se ejecuta,
git archive feature/Capistrano
no se envía nada a esa|
tubería. Para confirmar, ssh en el servidor, cd en / home / rails / rails-capistrano / repo y ejecutagit branch
.Está ejecutando git archive como una forma de exportar el árbol de la rama seleccionada. git archive "lo escribe en la salida estándar", por lo que Capistrano lo redirige a tar para descomprimir el archivo inmediatamente en su nuevo directorio de lanzamiento. (Por qué Capistrano eligió esto en lugar de git checkout me derrota).
tar falla porque no recibe nada d:
Puedo pensar en dos posibles soluciones / formas de solucionar problemas:
git remote -v
); es posible que solo necesite actualizar su:repo_url
en deploy.rb (y eliminar el repo / dir).fuente
Creo que esa carpeta se llena a través de un git pull, por lo que no debería estar vacía. Si lo ve vacío, el problema es del git, no del tarball.
El problema que tuve fue que la URL de mi repositorio de capistrano deploy.rb estaba configurada en una diferente a la del proyecto en el que estaba trabajando. Para solucionar este problema, también tuve que iniciar sesión en el servidor y eliminar la carpeta app_name / repo que debe han estado almacenando en caché la URL remota incorrecta original.
fuente
Siempre que encontré este error fue porque la rama especificada en mi archivo deploy / environment .rb no se registró en git. Haga un add / commit / git push origin branch_name y eso probablemente hará que las cosas funcionen.
fuente
Estoy usando Bedrock Roots (wordpress) para desarrollo, capistrano para implementaciones y git flow. Me encontré con este error al intentar implementarlo, mientras estaba en la rama hotfix / xxx localmente. Así que terminé actual (cambios combinados para desarrollar la rama) y luego lo implementé con éxito.
fuente