Capistrano + Git – "no se puede encontrar"

Tengo dificultades para configurar una estación de trabajo para usar Capistrano para implementar un proyecto. Es un proyecto en el que trabajé anteriormente, en casa para un cliente. Usamos Capistrano + Git en este proyecto de PHP sin dificultad.

Ahora estoy intentando volver a visitar el proyecto y estoy configurando una estación de trabajo para poder acceder al código a través de github y desplegarlo en el server del cliente a través de Capistrano.

No tengo problemas para conectarme a github en mi estación de trabajo o en el server del cliente. Puedo ejecutar SSH -vT [email protected] en mi estación de trabajo y get el resultado de éxito esperado.

Del mismo modo, puedo acceder al server y ejecutar el command para verificar que el server pueda acceder a github.com.

En el lado de la estación de trabajo, puedo clonar, extraer y enviar código sin dificultad.

Sin embargo, cuando bash ejecutar el script de deployment de capistrano, el script llega al punto de intentar ejecutar la primera recuperación (o clon) y genera un error "no se puede encontrar [confirmar SHA hash]".

El script de implementación no ha cambiado desde la última vez que lo implementé desde la oficina del cliente.

Aquí está el resultado de la implementación del límite:

* 2012-11-14 18:52:34 executing `dev' * 2012-11-14 18:52:34 executing `setbranch' * 2012-11-14 18:52:34 executing `deploy' * 2012-11-14 18:52:34 executing `deploy:update' ** transaction: start * 2012-11-14 18:52:34 executing `deploy:update_code' updating the cached checkout on all servers executing locally: "git ls-remote [email protected]:XXX123/reponame.git master" command finished in 2490ms * executing "if [ -d /home/serverusername/dev.site.com/code/shanetworking/cached-copy ]; then cd /home/serverusername/dev.site.com/code/shanetworking/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard 8d28f09e2b85ebac6da912-github-commit-sha && git clean -q -d -x -f; else git clone -q [email protected]:XXX123/reponame.git /home/serverusername/dev.site.com/code/shanetworking/cached-copy && cd /home/serverusername/dev.site.com/code/shanetworking/cached-copy && git checkout -q -b deploy 8d28f09e2b85ebac6da912-github-commit-sha; fi" servers: ["server.alias"] [server.alias] executing command ** [server.alias :: out] error: unable to find 8d28f09e2b85ebac6da912-github-commit-sha ** fatal: object 8d28f09e2b85ebac6da912-github-commit-sha not found command finished in 1681ms *** [deploy:update_code] rolling back * executing "rm -rf /home/serverusername/dev.site.com/code/releases/20121115025239; true" servers: ["server.alias"] [server.alias] executing command command finished in 293ms failed: "sh -c 'if [ -d /home/serverusername/dev.site.com/code/shanetworking/cached-copy ]; then cd /home/serverusername/dev.site.com/code/shanetworking/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard 8d28f09e2b85ebac6da912-github-commit-sha && git clean -q -d -x -f; else git clone -q [email protected]:XXX123/reponame.git /home/serverusername/dev.site.com/code/shanetworking/cached-copy && cd /home/serverusername/dev.site.com/code/shanetworking/cached-copy && git checkout -q -b deploy 8d28f09e2b85ebac6da912-github-commit-sha; fi'" on server.alias 

(He cambiado algunos de los nombres en el código de salida para proyectar el cliente).

Inicialmente encontré este problema mientras luchaba por configurar las cosas en una PC con Windows Vista. Al pensar que Windows era el problema, configuré un cuadro virtual de Ubuntu, lo puse en funcionamiento rápidamente y estoy teniendo el mismo resultado.

¿Alguien puede ayudar?

Estoy de acuerdo con Berkes en que la receta de tu gorra puede estar buscando el SHA equivocado, pero como informs que no ha cambiado, descartaré esta posibilidad ya que recientemente me sucedió a mí:

Asegúrese de que el SHA todavía exista en la twig.

Reescribimos parte de nuestra historia, y los SHA anteriores ya no estaban en el repository. git log para el SHA. Puede ser más rápido simplemente crear una twig descartable y restablecer a SHA git checkout -b lost_sha && git reset --hard 8d28f09e2b85ebac6da912 . Git se quejaba si no se encontraba SHA.

Es posible que su script no haya cambiado, pero el repository sí.